| | #include "../../include/ggml-virtgpu.h"
|
| | #include "ggml-remoting.h"
|
| |
|
| | static const char * ggml_backend_remoting_get_name(ggml_backend_t backend) {
|
| | UNUSED(backend);
|
| |
|
| | return "API Remoting backend";
|
| | }
|
| |
|
| | static void ggml_backend_remoting_free(ggml_backend_t backend) {
|
| | delete backend;
|
| | }
|
| |
|
| | static ggml_status ggml_backend_remoting_graph_compute(ggml_backend_t backend, ggml_cgraph * cgraph) {
|
| | virtgpu * gpu = DEV_TO_GPU(backend->device);
|
| |
|
| | return apir_backend_graph_compute(gpu, cgraph);
|
| | }
|
| |
|
| | static void ggml_backend_remoting_graph_optimize(ggml_backend_t backend, ggml_cgraph * cgraph) {
|
| | virtgpu * gpu = DEV_TO_GPU(backend->device);
|
| | #if true
|
| | UNUSED(gpu);
|
| | UNUSED(cgraph);
|
| | #else
|
| |
|
| |
|
| | apir_backend_graph_optimize(gpu, cgraph);
|
| | #endif
|
| | }
|
| |
|
| | static ggml_backend_i ggml_backend_remoting_interface = {
|
| | ggml_backend_remoting_get_name,
|
| | ggml_backend_remoting_free,
|
| | NULL,
|
| | NULL,
|
| | NULL,
|
| | NULL,
|
| | NULL,
|
| | NULL,
|
| | NULL,
|
| | NULL,
|
| | ggml_backend_remoting_graph_compute,
|
| | NULL,
|
| | NULL,
|
| | ggml_backend_remoting_graph_optimize,
|
| | };
|
| |
|
| | static ggml_guid_t ggml_backend_remoting_guid() {
|
| | static ggml_guid guid = { 0xb8, 0xf7, 0x4f, 0x86, 0x14, 0x03, 0x86, 0x02,
|
| | 0x91, 0xc8, 0xdd, 0xe9, 0x02, 0x3f, 0xc0, 0x2b };
|
| |
|
| | return &guid;
|
| | }
|
| |
|
| | ggml_backend_t ggml_backend_remoting_device_init(ggml_backend_dev_t dev, const char * params) {
|
| | UNUSED(params);
|
| |
|
| | ggml_backend_remoting_device_context * ctx = (ggml_backend_remoting_device_context *) dev->context;
|
| |
|
| | ggml_backend_t remoting_backend = new ggml_backend{
|
| | ggml_backend_remoting_guid(),
|
| | ggml_backend_remoting_interface,
|
| | ggml_backend_reg_dev_get(ggml_backend_virtgpu_reg(), ctx->device),
|
| | ctx,
|
| | };
|
| |
|
| | return remoting_backend;
|
| | }
|
| |
|