llama: use dynamic backend loading for mllama and clip (#8835)

This commit is contained in:
Jeffrey Morgan 2025-02-05 09:46:56 -08:00 committed by GitHub
parent c852b8e021
commit cd3fbf1c49
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 36 additions and 82 deletions

View file

@ -1235,35 +1235,15 @@ struct clip_ctx * clip_model_load(const char * fname, const int verbosity = 1) {
}
}
#ifdef GGML_USE_CUDA
new_clip->backend = ggml_backend_cuda_init(0);
LOG_INF("%s: CLIP using CUDA backend\n", __func__);
#endif
#ifdef GGML_USE_METAL
new_clip->backend = ggml_backend_metal_init();
LOG_INF("%s: CLIP using Metal backend\n", __func__);
#endif
#ifdef GGML_USE_CANN
new_clip->backend = ggml_backend_cann_init(0);
LOG_INF("%s: CLIP using CANN backend\n", __func__);
#endif
#ifdef GGML_USE_VULKAN
new_clip->backend = ggml_backend_vk_init(0);
LOG_INF("%s: CLIP using Vulkan backend\n", __func__);
#endif
#ifdef GGML_USE_SYCL
new_clip->backend = ggml_backend_sycl_init(0);
LOG_INF("%s: CLIP using SYCL backend\n", __func__);
#endif
if (!new_clip->backend) {
new_clip->backend = ggml_backend_cpu_init();
LOG_INF("%s: CLIP using CPU backend\n", __func__);
ggml_backend_t backend = ggml_backend_init_best();
if (backend == nullptr) {
LOG_ERR("%s: failed to initialize backend\n", __func__);
clip_free(new_clip);
gguf_free(ctx);
return nullptr;
}
LOG_INF("%s: using %s backend\n", __func__, ggml_backend_name(backend));
new_clip->backend = backend;
// model size and capabilities
{