@@ -1306,7 +1306,7 @@ static std::vector<ggml_backend_dev_t> parse_device_list(const std::string & val
13061306 } else {
13071307 for (const auto & device : dev_names) {
13081308 auto * dev = ggml_backend_dev_by_name (device.c_str ());
1309- if (!dev || ggml_backend_dev_type (dev) != GGML_BACKEND_DEVICE_TYPE_GPU ) {
1309+ if (!dev || ggml_backend_dev_type (dev) == GGML_BACKEND_DEVICE_TYPE_CPU ) {
13101310 throw std::invalid_argument (string_format (" invalid device: %s" , device.c_str ()));
13111311 }
13121312 devices.push_back (dev);
@@ -1316,7 +1316,7 @@ static std::vector<ggml_backend_dev_t> parse_device_list(const std::string & val
13161316 return devices;
13171317}
13181318
1319- static void add_rpc_devices (std::string servers) {
1319+ static void add_rpc_devices (const std::string & servers) {
13201320 auto rpc_servers = string_split<std::string>(servers, ' ,' );
13211321 if (rpc_servers.empty ()) {
13221322 throw std::invalid_argument (" no RPC servers specified" );
@@ -2518,24 +2518,15 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
25182518 {" --list-devices" },
25192519 " print list of available devices and exit" ,
25202520 [](common_params &) {
2521- std::vector<ggml_backend_dev_t > rpc_devices;
2522- std::vector<ggml_backend_dev_t > all_devices;
2521+ std::vector<ggml_backend_dev_t > devices;
25232522 for (size_t i = 0 ; i < ggml_backend_dev_count (); ++i) {
25242523 auto * dev = ggml_backend_dev_get (i);
2525- if (ggml_backend_dev_type (dev) == GGML_BACKEND_DEVICE_TYPE_GPU) {
2526- ggml_backend_reg_t reg = ggml_backend_dev_backend_reg (dev);
2527- if (ggml_backend_reg_name (reg) == std::string (" RPC" )) {
2528- rpc_devices.push_back (dev);
2529- } else {
2530- all_devices.push_back (dev);
2531- }
2524+ if (ggml_backend_dev_type (dev) != GGML_BACKEND_DEVICE_TYPE_CPU) {
2525+ devices.push_back (dev);
25322526 }
25332527 }
2534- // insert RPC devices in front
2535- all_devices.insert (all_devices.begin (), rpc_devices.begin (), rpc_devices.end ());
25362528 printf (" Available devices:\n " );
2537- for (size_t i = 0 ; i < all_devices.size (); ++i) {
2538- auto * dev = all_devices[i];
2529+ for (auto * dev : devices) {
25392530 size_t free, total;
25402531 ggml_backend_dev_memory (dev, &free, &total);
25412532 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