@@ -248,6 +248,8 @@ std::vector<std::string> common_arg::get_env() const {
248248
249249// Helper function to parse tensor buffer override strings
250250static void parse_tensor_buffer_overrides (const std::string & value, std::vector<llama_model_tensor_buft_override> & overrides) {
251+ ggml_backend_load_all ();
252+
251253 std::map<std::string, ggml_backend_buffer_type_t > buft_list;
252254 for (size_t i = 0 ; i < ggml_backend_dev_count (); ++i) {
253255 auto * dev = ggml_backend_dev_get (i);
@@ -803,6 +805,7 @@ static std::vector<ggml_backend_dev_t> parse_device_list(const std::string & val
803805 if (dev_names.size () == 1 && dev_names[0 ] == " none" ) {
804806 devices.push_back (nullptr );
805807 } else {
808+ ggml_backend_load_all ();
806809 for (const auto & device : dev_names) {
807810 auto * dev = ggml_backend_dev_by_name (device.c_str ());
808811 if (!dev || ggml_backend_dev_type (dev) == GGML_BACKEND_DEVICE_TYPE_CPU ) {
@@ -820,6 +823,7 @@ static void add_rpc_devices(const std::string & servers) {
820823 if (rpc_servers.empty ()) {
821824 throw std::invalid_argument (" no RPC servers specified" );
822825 }
826+ ggml_backend_load_all ();
823827 ggml_backend_reg_t rpc_reg = ggml_backend_reg_by_name (" RPC" );
824828 if (!rpc_reg) {
825829 throw std::invalid_argument (" failed to find RPC backend" );
@@ -1016,9 +1020,6 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
10161020
10171021 params.use_color = tty_can_use_colors ();
10181022
1019- // load dynamic backends
1020- ggml_backend_load_all ();
1021-
10221023 common_params_context ctx_arg (params);
10231024 ctx_arg.print_usage = print_usage;
10241025 ctx_arg.ex = ex;
@@ -2275,6 +2276,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
22752276 {" --list-devices" },
22762277 " print list of available devices and exit" ,
22772278 [](common_params &) {
2279+ ggml_backend_load_all ();
22782280 std::vector<ggml_backend_dev_t > devices;
22792281 for (size_t i = 0 ; i < ggml_backend_dev_count (); ++i) {
22802282 auto * dev = ggml_backend_dev_get (i);
0 commit comments