@@ -1304,7 +1304,7 @@ static std::vector<ggml_backend_dev_t> parse_device_list(const std::string & val
13041304 } else {
13051305 for (const auto & device : dev_names) {
13061306 auto * dev = ggml_backend_dev_by_name (device.c_str ());
1307- if (!dev || ggml_backend_dev_type (dev) != GGML_BACKEND_DEVICE_TYPE_GPU ) {
1307+ if (!dev || ggml_backend_dev_type (dev) == GGML_BACKEND_DEVICE_TYPE_CPU ) {
13081308 throw std::invalid_argument (string_format (" invalid device: %s" , device.c_str ()));
13091309 }
13101310 devices.push_back (dev);
@@ -1314,7 +1314,7 @@ static std::vector<ggml_backend_dev_t> parse_device_list(const std::string & val
13141314 return devices;
13151315}
13161316
1317- static void add_rpc_devices (std::string servers) {
1317+ static void add_rpc_devices (const std::string & servers) {
13181318 auto rpc_servers = string_split<std::string>(servers, ' ,' );
13191319 if (rpc_servers.empty ()) {
13201320 throw std::invalid_argument (" no RPC servers specified" );
@@ -2516,24 +2516,15 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
25162516 {" --list-devices" },
25172517 " print list of available devices and exit" ,
25182518 [](common_params &) {
2519- std::vector<ggml_backend_dev_t > rpc_devices;
2520- std::vector<ggml_backend_dev_t > all_devices;
2519+ std::vector<ggml_backend_dev_t > devices;
25212520 for (size_t i = 0 ; i < ggml_backend_dev_count (); ++i) {
25222521 auto * dev = ggml_backend_dev_get (i);
2523- if (ggml_backend_dev_type (dev) == GGML_BACKEND_DEVICE_TYPE_GPU) {
2524- ggml_backend_reg_t reg = ggml_backend_dev_backend_reg (dev);
2525- if (ggml_backend_reg_name (reg) == std::string (" RPC" )) {
2526- rpc_devices.push_back (dev);
2527- } else {
2528- all_devices.push_back (dev);
2529- }
2522+ if (ggml_backend_dev_type (dev) != GGML_BACKEND_DEVICE_TYPE_CPU) {
2523+ devices.push_back (dev);
25302524 }
25312525 }
2532- // insert RPC devices in front
2533- all_devices.insert (all_devices.begin (), rpc_devices.begin (), rpc_devices.end ());
25342526 printf (" Available devices:\n " );
2535- for (size_t i = 0 ; i < all_devices.size (); ++i) {
2536- auto * dev = all_devices[i];
2527+ for (auto * dev : devices) {
25372528 size_t free, total;
25382529 ggml_backend_dev_memory (dev, &free, &total);
25392530 printf (" %s: %s (%zu MiB, %zu MiB free)\n " , ggml_backend_dev_name (dev), ggml_backend_dev_description (dev), total / 1024 / 1024 , free / 1024 / 1024 );
0 commit comments