|
| 1 | +#pragma once |
| 2 | + |
| 3 | +#include "ggml-metal-device.h" |
| 4 | + |
| 5 | +#ifdef __cplusplus |
| 6 | +extern "C" { |
| 7 | +#endif |
| 8 | + |
| 9 | +// |
| 10 | +// MTLFunctionConstantValues wrapper |
| 11 | +// |
| 12 | + |
| 13 | +typedef struct ggml_metal_cv * ggml_metal_cv_t; |
| 14 | + |
| 15 | +ggml_metal_cv_t ggml_metal_cv_init(void); |
| 16 | +void ggml_metal_cv_free(ggml_metal_cv_t cv); |
| 17 | + |
| 18 | +void ggml_metal_cv_set_int32(ggml_metal_cv_t cv, int32_t value, int32_t idx); |
| 19 | +void ggml_metal_cv_set_bool (ggml_metal_cv_t cv, bool value, int32_t idx); |
| 20 | + |
| 21 | +// |
| 22 | +// backend |
| 23 | +// |
| 24 | + |
| 25 | +typedef struct ggml_metal * ggml_metal_t; |
| 26 | + |
| 27 | +ggml_metal_t ggml_metal_init(ggml_metal_device_t ctx_dev); |
| 28 | +void ggml_metal_free(ggml_metal_t ctx); |
| 29 | + |
| 30 | +typedef void * ggml_metal_pipeline_t; |
| 31 | + |
| 32 | +ggml_metal_pipeline_t ggml_metal_get_pipeline(ggml_metal_t ctx, const char * name); |
| 33 | + |
| 34 | +ggml_metal_pipeline_t ggml_metal_compile_pipeline(ggml_metal_t ctx, const char * base, const char * name, ggml_metal_cv_t cv); |
| 35 | + |
| 36 | +void ggml_metal_synchronize(ggml_metal_t ctx); |
| 37 | + |
| 38 | +void ggml_metal_set_tensor_async(ggml_metal_t ctx, struct ggml_tensor * tensor, const void * data, size_t offset, size_t size); |
| 39 | +void ggml_metal_get_tensor_async(ggml_metal_t ctx, const struct ggml_tensor * tensor, void * data, size_t offset, size_t size); |
| 40 | + |
| 41 | +enum ggml_status ggml_metal_graph_compute(ggml_metal_t ctx, struct ggml_cgraph * gf); |
| 42 | + |
| 43 | +void ggml_metal_graph_optimize(ggml_metal_t ctx, struct ggml_cgraph * gf); |
| 44 | + |
| 45 | +void ggml_metal_set_n_cb (ggml_metal_t ctx, int n_cb); |
| 46 | +void ggml_metal_set_abort_callback (ggml_metal_t ctx, ggml_abort_callback abort_callback, void * user_data); |
| 47 | +bool ggml_metal_supports_family (ggml_metal_t ctx, int family); |
| 48 | +void ggml_metal_capture_next_compute(ggml_metal_t ctx); |
| 49 | + |
| 50 | +#ifdef __cplusplus |
| 51 | +} |
| 52 | +#endif |
0 commit comments