Lux GPU Core 0.2.0
Lightweight plugin-based GPU acceleration for blockchain and ML
Loading...
Searching...
No Matches
backend_plugin.h File Reference
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include "lux/gpu/crypto.h"

Go to the source code of this file.

Data Structures

struct  LuxBackendDeviceInfo
 
struct  lux_gpu_backend_vtbl
 
struct  lux_gpu_backend_desc
 

Macros

#define LUX_GPU_BACKEND_ABI_VERSION   5
 
#define LUX_CAP_TENSOR_OPS   (1u << 0)
 
#define LUX_CAP_MATMUL   (1u << 1)
 
#define LUX_CAP_NTT   (1u << 2)
 
#define LUX_CAP_MSM   (1u << 3)
 
#define LUX_CAP_UNIFIED_MEMORY   (1u << 4)
 
#define LUX_CAP_FHE   (1u << 5)
 
#define LUX_CAP_TFHE   (1u << 6)
 
#define LUX_CAP_REDUCE   (1u << 7)
 
#define LUX_CAP_SOFTMAX   (1u << 8)
 
#define LUX_CAP_UNARY   (1u << 9)
 
#define LUX_CAP_NORMALIZATION   (1u << 10)
 
#define LUX_CAP_BLS12_381   (1u << 11)
 
#define LUX_CAP_BN254   (1u << 12)
 
#define LUX_CAP_KZG   (1u << 13)
 
#define LUX_CAP_POSEIDON2   (1u << 14)
 
#define LUX_CAP_BLAKE3   (1u << 15)
 
#define LUX_CAP_KECCAK256   (1u << 16)
 
#define LUX_CAP_ECRECOVER   (1u << 17)
 
#define LUX_CAP_BLIND_ROTATE   (1u << 18)
 
#define LUX_CAP_POLY_MUL   (1u << 19)
 
#define LUX_CAP_MLDSA   (1u << 20)
 
#define LUX_CAP_MLKEM   (1u << 21)
 
#define LUX_CAP_SLHDSA   (1u << 22)
 
#define LUX_CAP_RINGTAIL   (1u << 23)
 
#define LUX_CAP_FROST   (1u << 24)
 
#define LUX_CAP_CGGMP21   (1u << 25)
 
#define LUX_CAP_ED25519   (1u << 26)
 
#define LUX_CAP_SR25519   (1u << 27)
 
#define LUX_GPU_BACKEND_INIT_SYMBOL   "lux_gpu_backend_init"
 
#define LUX_GPU_BACKEND_EXPORT   __attribute__((visibility("default")))
 
#define LUX_GPU_DECLARE_BACKEND(init_func)
 

Typedefs

typedef struct LuxBackendContext LuxBackendContext
 
typedef struct LuxBackendBuffer LuxBackendBuffer
 
typedef struct lux_gpu_backend_vtbl lux_gpu_backend_vtbl
 
typedef bool(* lux_gpu_backend_init_fn) (lux_gpu_backend_desc *out)
 

Enumerations

enum  LuxBackendError {
  LUX_BACKEND_OK = 0 , LUX_BACKEND_ERROR_INVALID_ARGUMENT = 1 , LUX_BACKEND_ERROR_OUT_OF_MEMORY = 2 , LUX_BACKEND_ERROR_NOT_SUPPORTED = 3 ,
  LUX_BACKEND_ERROR_DEVICE_LOST = 4 , LUX_BACKEND_ERROR_INTERNAL = 5
}
 

Macro Definition Documentation

◆ LUX_CAP_BLAKE3

#define LUX_CAP_BLAKE3   (1u << 15)

Definition at line 402 of file backend_plugin.h.

◆ LUX_CAP_BLIND_ROTATE

#define LUX_CAP_BLIND_ROTATE   (1u << 18)

Definition at line 405 of file backend_plugin.h.

◆ LUX_CAP_BLS12_381

#define LUX_CAP_BLS12_381   (1u << 11)

Definition at line 398 of file backend_plugin.h.

◆ LUX_CAP_BN254

#define LUX_CAP_BN254   (1u << 12)

Definition at line 399 of file backend_plugin.h.

◆ LUX_CAP_CGGMP21

#define LUX_CAP_CGGMP21   (1u << 25)

Definition at line 412 of file backend_plugin.h.

◆ LUX_CAP_ECRECOVER

#define LUX_CAP_ECRECOVER   (1u << 17)

Definition at line 404 of file backend_plugin.h.

◆ LUX_CAP_ED25519

#define LUX_CAP_ED25519   (1u << 26)

Definition at line 413 of file backend_plugin.h.

◆ LUX_CAP_FHE

#define LUX_CAP_FHE   (1u << 5)

Definition at line 392 of file backend_plugin.h.

◆ LUX_CAP_FROST

#define LUX_CAP_FROST   (1u << 24)

Definition at line 411 of file backend_plugin.h.

◆ LUX_CAP_KECCAK256

#define LUX_CAP_KECCAK256   (1u << 16)

Definition at line 403 of file backend_plugin.h.

◆ LUX_CAP_KZG

#define LUX_CAP_KZG   (1u << 13)

Definition at line 400 of file backend_plugin.h.

◆ LUX_CAP_MATMUL

#define LUX_CAP_MATMUL   (1u << 1)

Definition at line 388 of file backend_plugin.h.

◆ LUX_CAP_MLDSA

#define LUX_CAP_MLDSA   (1u << 20)

Definition at line 407 of file backend_plugin.h.

◆ LUX_CAP_MLKEM

#define LUX_CAP_MLKEM   (1u << 21)

Definition at line 408 of file backend_plugin.h.

◆ LUX_CAP_MSM

#define LUX_CAP_MSM   (1u << 3)

Definition at line 390 of file backend_plugin.h.

◆ LUX_CAP_NORMALIZATION

#define LUX_CAP_NORMALIZATION   (1u << 10)

Definition at line 397 of file backend_plugin.h.

◆ LUX_CAP_NTT

#define LUX_CAP_NTT   (1u << 2)

Definition at line 389 of file backend_plugin.h.

◆ LUX_CAP_POLY_MUL

#define LUX_CAP_POLY_MUL   (1u << 19)

Definition at line 406 of file backend_plugin.h.

◆ LUX_CAP_POSEIDON2

#define LUX_CAP_POSEIDON2   (1u << 14)

Definition at line 401 of file backend_plugin.h.

◆ LUX_CAP_REDUCE

#define LUX_CAP_REDUCE   (1u << 7)

Definition at line 394 of file backend_plugin.h.

◆ LUX_CAP_RINGTAIL

#define LUX_CAP_RINGTAIL   (1u << 23)

Definition at line 410 of file backend_plugin.h.

◆ LUX_CAP_SLHDSA

#define LUX_CAP_SLHDSA   (1u << 22)

Definition at line 409 of file backend_plugin.h.

◆ LUX_CAP_SOFTMAX

#define LUX_CAP_SOFTMAX   (1u << 8)

Definition at line 395 of file backend_plugin.h.

◆ LUX_CAP_SR25519

#define LUX_CAP_SR25519   (1u << 27)

Definition at line 414 of file backend_plugin.h.

◆ LUX_CAP_TENSOR_OPS

#define LUX_CAP_TENSOR_OPS   (1u << 0)

Definition at line 387 of file backend_plugin.h.

◆ LUX_CAP_TFHE

#define LUX_CAP_TFHE   (1u << 6)

Definition at line 393 of file backend_plugin.h.

◆ LUX_CAP_UNARY

#define LUX_CAP_UNARY   (1u << 9)

Definition at line 396 of file backend_plugin.h.

◆ LUX_CAP_UNIFIED_MEMORY

#define LUX_CAP_UNIFIED_MEMORY   (1u << 4)

Definition at line 391 of file backend_plugin.h.

◆ LUX_GPU_BACKEND_ABI_VERSION

#define LUX_GPU_BACKEND_ABI_VERSION   5

Definition at line 33 of file backend_plugin.h.

◆ LUX_GPU_BACKEND_EXPORT

#define LUX_GPU_BACKEND_EXPORT   __attribute__((visibility("default")))

Definition at line 429 of file backend_plugin.h.

◆ LUX_GPU_BACKEND_INIT_SYMBOL

#define LUX_GPU_BACKEND_INIT_SYMBOL   "lux_gpu_backend_init"

Definition at line 424 of file backend_plugin.h.

◆ LUX_GPU_DECLARE_BACKEND

#define LUX_GPU_DECLARE_BACKEND (   init_func)
Value:
extern "C" LUX_GPU_BACKEND_EXPORT bool \
lux_gpu_backend_init(lux_gpu_backend_desc* out) { return init_func(out); }
#define LUX_GPU_BACKEND_EXPORT

Definition at line 433 of file backend_plugin.h.

Typedef Documentation

◆ lux_gpu_backend_init_fn

typedef bool(* lux_gpu_backend_init_fn) (lux_gpu_backend_desc *out)

Definition at line 422 of file backend_plugin.h.

◆ lux_gpu_backend_vtbl

◆ LuxBackendBuffer

Definition at line 40 of file backend_plugin.h.

◆ LuxBackendContext

Definition at line 39 of file backend_plugin.h.

Enumeration Type Documentation

◆ LuxBackendError

Enumerator
LUX_BACKEND_OK 
LUX_BACKEND_ERROR_INVALID_ARGUMENT 
LUX_BACKEND_ERROR_OUT_OF_MEMORY 
LUX_BACKEND_ERROR_NOT_SUPPORTED 
LUX_BACKEND_ERROR_DEVICE_LOST 
LUX_BACKEND_ERROR_INTERNAL 

Definition at line 46 of file backend_plugin.h.