diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2026-02-12 20:57:17 +0100 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2026-02-12 20:57:17 +0100 |
| commit | b333b06772c89d96aacb5490d6a219fba7c09cc6 (patch) | |
| tree | 211df60083a5946baa2ed61d33d8121b7e251b06 /llama.cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched.cpp | |
| download | llmnpc-b333b06772c89d96aacb5490d6a219fba7c09cc6.tar.gz | |
Engage!
Diffstat (limited to 'llama.cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched.cpp')
| -rw-r--r-- | llama.cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/llama.cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched.cpp b/llama.cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched.cpp new file mode 100644 index 0000000..64152ee --- /dev/null +++ b/llama.cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched.cpp | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | #include "backend-dispatched.h" | ||
| 2 | #include "backend-virgl-apir.h" | ||
| 3 | |||
| 4 | #include "ggml-backend-impl.h" | ||
| 5 | #include "ggml-backend.h" | ||
| 6 | #include "ggml-impl.h" | ||
| 7 | |||
| 8 | #include <cstdint> | ||
| 9 | |||
| 10 | ggml_backend_reg_t reg = NULL; | ||
| 11 | ggml_backend_dev_t dev = NULL; | ||
| 12 | ggml_backend_t bck = NULL; | ||
| 13 | |||
| 14 | uint64_t timer_start = 0; | ||
| 15 | uint64_t timer_total = 0; | ||
| 16 | uint64_t timer_count = 0; | ||
| 17 | |||
| 18 | uint32_t backend_dispatch_initialize(void * ggml_backend_reg_fct_p) { | ||
| 19 | if (reg != NULL) { | ||
| 20 | GGML_LOG_WARN(GGML_VIRTGPU_BCK "%s: already initialized\n", __func__); | ||
| 21 | return APIR_BACKEND_INITIALIZE_ALREADY_INITED; | ||
| 22 | } | ||
| 23 | ggml_backend_reg_t (*ggml_backend_reg_fct)(void) = (ggml_backend_reg_t (*)()) ggml_backend_reg_fct_p; | ||
| 24 | |||
| 25 | reg = ggml_backend_reg_fct(); | ||
| 26 | if (reg == NULL) { | ||
| 27 | GGML_LOG_ERROR(GGML_VIRTGPU_BCK "%s: backend registration failed\n", __func__); | ||
| 28 | return APIR_BACKEND_INITIALIZE_BACKEND_REG_FAILED; | ||
| 29 | } | ||
| 30 | |||
| 31 | if (!reg->iface.get_device_count(reg)) { | ||
| 32 | GGML_LOG_ERROR(GGML_VIRTGPU_BCK "%s: backend initialization failed: no device found\n", __func__); | ||
| 33 | return APIR_BACKEND_INITIALIZE_NO_DEVICE; | ||
| 34 | } | ||
| 35 | |||
| 36 | dev = reg->iface.get_device(reg, 0); | ||
| 37 | |||
| 38 | if (!dev) { | ||
| 39 | GGML_LOG_ERROR(GGML_VIRTGPU_BCK "%s: backend initialization failed: no device received\n", __func__); | ||
| 40 | return APIR_BACKEND_INITIALIZE_NO_DEVICE; | ||
| 41 | } | ||
| 42 | |||
| 43 | bck = dev->iface.init_backend(dev, NULL); | ||
| 44 | |||
| 45 | return APIR_BACKEND_INITIALIZE_SUCCESS; | ||
| 46 | } | ||
