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"