mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2025-07-27 11:43:35 -04:00
Mtmd: add a way to select device for vision encoder (#14236)
* Mtmd: add a way to select device for vision encoder * simplify * format * Warn user if manual device selection failed * initialize backend to nullptr
This commit is contained in:
@ -367,8 +367,8 @@ struct clip_ctx {
|
|||||||
std::vector<ggml_backend_t> backend_ptrs;
|
std::vector<ggml_backend_t> backend_ptrs;
|
||||||
std::vector<ggml_backend_buffer_type_t> backend_buft;
|
std::vector<ggml_backend_buffer_type_t> backend_buft;
|
||||||
|
|
||||||
ggml_backend_t backend;
|
ggml_backend_t backend = nullptr;
|
||||||
ggml_backend_t backend_cpu;
|
ggml_backend_t backend_cpu = nullptr;
|
||||||
ggml_backend_buffer_ptr buf;
|
ggml_backend_buffer_ptr buf;
|
||||||
|
|
||||||
int max_nodes = 8192;
|
int max_nodes = 8192;
|
||||||
@ -384,9 +384,18 @@ struct clip_ctx {
|
|||||||
if (!backend_cpu) {
|
if (!backend_cpu) {
|
||||||
throw std::runtime_error("failed to initialize CPU backend");
|
throw std::runtime_error("failed to initialize CPU backend");
|
||||||
}
|
}
|
||||||
backend = ctx_params.use_gpu
|
if (ctx_params.use_gpu) {
|
||||||
? ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_GPU, nullptr)
|
auto backend_name = std::getenv("MTMD_BACKEND_DEVICE");
|
||||||
: nullptr;
|
if (backend_name != nullptr) {
|
||||||
|
backend = ggml_backend_init_by_name(backend_name, nullptr);
|
||||||
|
if (!backend) {
|
||||||
|
LOG_WRN("%s: Warning: Failed to initialize \"%s\" backend, falling back to default GPU backend\n", __func__, backend_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!backend) {
|
||||||
|
backend = ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_GPU, nullptr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (backend) {
|
if (backend) {
|
||||||
LOG_INF("%s: CLIP using %s backend\n", __func__, ggml_backend_name(backend));
|
LOG_INF("%s: CLIP using %s backend\n", __func__, ggml_backend_name(backend));
|
||||||
|
Reference in New Issue
Block a user