1# YAML schema for GGML remoting API functions
2# This defines the structure for generating the remoting layer code
3
4# Configuration for the generated files
5config:
6 # Base path for the generated files
7 base_path: "ggml/src"
8
9 # Header files to update
10 files:
11 apir_backend_header: "ggml-virtgpu-apir/backend/shared/apir_backend.gen.h"
12 backend_dispatched_header: "ggml-virtgpu-apir/backend/backend-dispatched.gen.h"
13 virtgpu_forward_header: "ggml-virtgpu-apir/virtgpu-forward.gen.h"
14
15# Simplified function definitions with grouping and metadata combined
16functions:
17 device:
18 group_description: "device"
19 functions:
20 get_device_count:
21 # No specific metadata - uses default void return and base params
22
23 get_count:
24 frontend_return: "int"
25
26 get_name:
27 frontend_return: "char *"
28
29 get_description:
30 frontend_return: "char *"
31
32 get_type:
33 frontend_return: "uint32_t"
34
35 get_memory:
36 frontend_return: "void"
37 frontend_extra_params:
38 - "size_t *free"
39 - "size_t *total"
40
41 supports_op:
42 frontend_return: "bool"
43 frontend_extra_params:
44 - "const ggml_tensor *op"
45
46 get_buffer_type:
47 frontend_return: "apir_buffer_type_host_handle_t"
48
49 get_props:
50 frontend_return: "void"
51 frontend_extra_params:
52 - "bool *async"
53 - "bool *host_buffer"
54 - "bool *buffer_from_host_ptr"
55 - "bool *events"
56
57 buffer_from_ptr:
58 frontend_return: "apir_buffer_context_t"
59 frontend_extra_params:
60 - "size_t size"
61 - "size_t max_tensor_size"
62
63 buffer_type:
64 group_description: "buffer-type"
65 functions:
66 get_name:
67 frontend_return: "char *"
68 frontend_extra_params:
69 - "apir_buffer_type_host_handle_t host_handle"
70
71 get_alignment:
72 frontend_return: "size_t"
73 frontend_extra_params:
74 - "apir_buffer_type_host_handle_t host_handle"
75
76 get_max_size:
77 frontend_return: "size_t"
78 frontend_extra_params:
79 - "apir_buffer_type_host_handle_t host_handle"
80
81 is_host:
82 deprecated: true
83
84 alloc_buffer:
85 frontend_return: "apir_buffer_context_t"
86 frontend_extra_params:
87 - "apir_buffer_type_host_handle_t host_handle"
88 - "size_t size"
89
90 get_alloc_size:
91 frontend_return: "size_t"
92 frontend_extra_params:
93 - "apir_buffer_type_host_handle_t host_handle"
94 - "const ggml_tensor *op"
95
96 buffer:
97 group_description: "buffer"
98 functions:
99 get_base:
100 frontend_return: "void *"
101 frontend_extra_params:
102 - "apir_buffer_context_t *buffer_context"
103
104 set_tensor:
105 frontend_return: "void"
106 frontend_extra_params:
107 - "apir_buffer_context_t *buffer_context"
108 - "ggml_tensor *tensor"
109 - "const void *data"
110 - "size_t offset"
111 - "size_t size"
112
113 get_tensor:
114 frontend_return: "void"
115 frontend_extra_params:
116 - "apir_buffer_context_t *buffer_context"
117 - "const ggml_tensor *tensor"
118 - "void *data"
119 - "size_t offset"
120 - "size_t size"
121
122 cpy_tensor:
123 frontend_return: "bool"
124 frontend_extra_params:
125 - "apir_buffer_context_t *buffer_context"
126 - "const ggml_tensor *src"
127 - "const ggml_tensor *dst"
128
129 clear:
130 frontend_return: "void"
131 frontend_extra_params:
132 - "apir_buffer_context_t *buffer_context"
133 - "uint8_t value"
134
135 free_buffer:
136 frontend_return: "void"
137 frontend_extra_params:
138 - "apir_buffer_context_t *buffer_context"
139
140 backend:
141 group_description: "backend"
142 functions:
143 graph_compute:
144 frontend_return: "ggml_status"
145 frontend_extra_params:
146 - "ggml_cgraph *cgraph"
147
148 graph_optimize:
149 frontend_return: "ggml_cgraph *"
150 frontend_extra_params:
151 - "ggml_cgraph *cgraph"
152 enabled: false
153
154# Naming patterns used for code generation
155naming_patterns:
156 # How to generate enum names
157 enum_prefix: "APIR_COMMAND_TYPE_"
158
159 # How to generate backend function names
160 backend_function_prefix: "backend_"
161
162 # How to generate frontend function names
163 frontend_function_prefix: "apir_"
164
165 # Standard frontend first parameter
166 frontend_base_param: "struct virtgpu *gpu"