#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>
Go to the source code of this file.
|
| #define | LUX_DECLARE_KERNEL(name, lang) |
| |
| #define | LUX_DEFINE_KERNEL(name, source_str) |
| |
| #define | LUX_KERNEL_ENTRY(name, entry, lang) { #name, entry, lang, lux_kernel_##name##_source, lux_kernel_##name##_source_len, NULL, 0 } |
| |
| #define | LUX_KERNEL_ENTRY_BINARY(name, entry, lang, bin, bin_len) { #name, entry, lang, NULL, 0, bin, bin_len } |
| |
|
| const LuxKernelRegistry * | lux_kernel_registry_get (const char *backend) |
| |
| const LuxEmbeddedKernel * | lux_kernel_registry_find (const LuxKernelRegistry *registry, const char *name) |
| |
| LuxKernelCache * | lux_kernel_cache_create (void) |
| |
| void | lux_kernel_cache_destroy (LuxKernelCache *cache) |
| |
| LuxKernel * | lux_kernel_cache_get (LuxKernelCache *cache, const LuxKernelVariant *variant) |
| |
| void | lux_kernel_cache_put (LuxKernelCache *cache, const LuxKernelVariant *variant, LuxKernel *kernel) |
| |
| void | lux_kernel_cache_clear (LuxKernelCache *cache) |
| |
| void | lux_kernel_cache_stats (LuxKernelCache *cache, size_t *count, size_t *memory_bytes) |
| |
| LuxKernel * | lux_kernel_compile (void *device_context, const LuxKernelSource *source) |
| |
| LuxKernel * | lux_kernel_load_binary (void *device_context, const void *binary, size_t binary_len, const char *entry_point) |
| |
| void | lux_kernel_destroy (LuxKernel *kernel) |
| |
| const char * | lux_kernel_entry_point (LuxKernel *kernel) |
| |
◆ LUX_DECLARE_KERNEL
| #define LUX_DECLARE_KERNEL |
( |
|
name, |
|
|
|
lang |
|
) |
| |
Value: extern const char lux_kernel_##name##_source[]; \
extern const size_t lux_kernel_##name##_source_len;
Definition at line 161 of file kernel_loader.h.
◆ LUX_DEFINE_KERNEL
| #define LUX_DEFINE_KERNEL |
( |
|
name, |
|
|
|
source_str |
|
) |
| |
Value: const char lux_kernel_##name##_source[] = source_str; \
const size_t lux_kernel_##name##_source_len = sizeof(lux_kernel_##name##_source) - 1;
Definition at line 166 of file kernel_loader.h.
◆ LUX_KERNEL_ENTRY
| #define LUX_KERNEL_ENTRY |
( |
|
name, |
|
|
|
entry, |
|
|
|
lang |
|
) |
| { #name, entry, lang, lux_kernel_##name##_source, lux_kernel_##name##_source_len, NULL, 0 } |
◆ LUX_KERNEL_ENTRY_BINARY
| #define LUX_KERNEL_ENTRY_BINARY |
( |
|
name, |
|
|
|
entry, |
|
|
|
lang, |
|
|
|
bin, |
|
|
|
bin_len |
|
) |
| { #name, entry, lang, NULL, 0, bin, bin_len } |
◆ LuxKernel
◆ LuxKernelCache
◆ LuxKernelLanguage
| Enumerator |
|---|
| LUX_KERNEL_LANG_METAL | |
| LUX_KERNEL_LANG_CUDA | |
| LUX_KERNEL_LANG_PTX | |
| LUX_KERNEL_LANG_WGSL | |
| LUX_KERNEL_LANG_SPIRV | |
Definition at line 34 of file kernel_loader.h.
◆ LuxKernelSourceType
| Enumerator |
|---|
| LUX_KERNEL_SOURCE_EMBEDDED | |
| LUX_KERNEL_SOURCE_FILE | |
| LUX_KERNEL_SOURCE_BINARY | |
Definition at line 28 of file kernel_loader.h.
◆ lux_kernel_cache_clear()
◆ lux_kernel_cache_create()
◆ lux_kernel_cache_destroy()
◆ lux_kernel_cache_get()
◆ lux_kernel_cache_put()
◆ lux_kernel_cache_stats()
| void lux_kernel_cache_stats |
( |
LuxKernelCache * |
cache, |
|
|
size_t * |
count, |
|
|
size_t * |
memory_bytes |
|
) |
| |
◆ lux_kernel_compile()
◆ lux_kernel_destroy()
| void lux_kernel_destroy |
( |
LuxKernel * |
kernel | ) |
|
◆ lux_kernel_entry_point()
| const char * lux_kernel_entry_point |
( |
LuxKernel * |
kernel | ) |
|
◆ lux_kernel_load_binary()
| LuxKernel * lux_kernel_load_binary |
( |
void * |
device_context, |
|
|
const void * |
binary, |
|
|
size_t |
binary_len, |
|
|
const char * |
entry_point |
|
) |
| |
◆ lux_kernel_registry_find()
◆ lux_kernel_registry_get()