| #pragma once |
|
|
| #include "ggml.h" |
| #include "ggml-backend.h" |
|
|
| #include <stdbool.h> |
| #include <stddef.h> |
| #include <stdint.h> |
|
|
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
|
|
| #define GGML_KOMPUTE_MAX_DEVICES 16 |
|
|
| struct ggml_vk_device { |
| int index; |
| int type; |
| size_t heapSize; |
| const char * name; |
| const char * vendor; |
| int subgroupSize; |
| uint64_t bufferAlignment; |
| uint64_t maxAlloc; |
| }; |
|
|
| struct ggml_vk_device * ggml_vk_available_devices(size_t memoryRequired, size_t * count); |
| bool ggml_vk_get_device(struct ggml_vk_device * device, size_t memoryRequired, const char * name); |
| bool ggml_vk_has_vulkan(void); |
| bool ggml_vk_has_device(void); |
| struct ggml_vk_device ggml_vk_current_device(void); |
|
|
| |
| |
| |
|
|
| |
| typedef struct ggml_backend * ggml_backend_t; |
|
|
| GGML_BACKEND_API ggml_backend_t ggml_backend_kompute_init(int device); |
|
|
| GGML_BACKEND_API bool ggml_backend_is_kompute(ggml_backend_t backend); |
|
|
| GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_kompute_buffer_type(int device); |
|
|
| GGML_BACKEND_API ggml_backend_reg_t ggml_backend_kompute_reg(void); |
|
|
| #ifdef __cplusplus |
| } |
| #endif |
|
|