mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-30 08:42:00 +00: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
	 stduhpf
					stduhpf