1#pragma once
2
3#include "ggml.h"
4#include "ggml-backend.h"
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10#define GGML_VK_NAME "Vulkan"
11#define GGML_VK_MAX_DEVICES 16
12
13// backend API
14GGML_BACKEND_API ggml_backend_t ggml_backend_vk_init(size_t dev_num);
15
16GGML_BACKEND_API bool ggml_backend_is_vk(ggml_backend_t backend);
17GGML_BACKEND_API int ggml_backend_vk_get_device_count(void);
18GGML_BACKEND_API void ggml_backend_vk_get_device_description(int device, char * description, size_t description_size);
19GGML_BACKEND_API void ggml_backend_vk_get_device_memory(int device, size_t * free, size_t * total);
20
21GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_vk_buffer_type(size_t dev_num);
22// pinned host buffer for use with the CPU backend for faster copies between CPU and GPU
23GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_vk_host_buffer_type(void);
24
25GGML_BACKEND_API ggml_backend_reg_t ggml_backend_vk_reg(void);
26
27#ifdef __cplusplus
28}
29#endif
30