ggml-kompute.h 1.13 KB
Newer Older
xuxzh1's avatar
init  
xuxzh1 committed
1
2
3
4
5
6
7
8
9
10
11
12
13
#pragma once

#include "ggml.h"
#include "ggml-backend.h"

#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

xuxzh1's avatar
update  
xuxzh1 committed
14
15
#define GGML_KOMPUTE_MAX_DEVICES 16

xuxzh1's avatar
init  
xuxzh1 committed
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
struct ggml_vk_device {
    int index;
    int type; // same as VkPhysicalDeviceType
    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);

//
// backend API
//

// forward declaration
typedef struct ggml_backend * ggml_backend_t;

xuxzh1's avatar
update  
xuxzh1 committed
40
41
42
GGML_BACKEND_API ggml_backend_t ggml_backend_kompute_init(int device);

GGML_BACKEND_API bool ggml_backend_is_kompute(ggml_backend_t backend);
xuxzh1's avatar
init  
xuxzh1 committed
43

xuxzh1's avatar
update  
xuxzh1 committed
44
GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_kompute_buffer_type(int device);
xuxzh1's avatar
init  
xuxzh1 committed
45

xuxzh1's avatar
update  
xuxzh1 committed
46
GGML_BACKEND_API ggml_backend_reg_t ggml_backend_kompute_reg(void);
xuxzh1's avatar
init  
xuxzh1 committed
47
48
49
50

#ifdef __cplusplus
}
#endif