@@ -1184,7 +1184,7 @@ static std::vector<ggml_backend_dev_t> parse_device_list(const std::string & val
11841184 } else {
11851185 for (const auto & device : dev_names) {
11861186 auto * dev = ggml_backend_dev_by_name (device.c_str ());
1187- if (!dev || ggml_backend_dev_type (dev) != GGML_BACKEND_DEVICE_TYPE_GPU ) {
1187+ if (!dev || ggml_backend_dev_type (dev) == GGML_BACKEND_DEVICE_TYPE_CPU ) {
11881188 throw std::invalid_argument (string_format (" invalid device: %s" , device.c_str ()));
11891189 }
11901190 devices.push_back (dev);
@@ -1194,7 +1194,7 @@ static std::vector<ggml_backend_dev_t> parse_device_list(const std::string & val
11941194 return devices;
11951195}
11961196
1197- static void add_rpc_devices (std::string servers) {
1197+ static void add_rpc_devices (const std::string & servers) {
11981198 auto rpc_servers = string_split<std::string>(servers, ' ,' );
11991199 if (rpc_servers.empty ()) {
12001200 throw std::invalid_argument (" no RPC servers specified" );
@@ -2396,24 +2396,15 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
23962396 {" --list-devices" },
23972397 " print list of available devices and exit" ,
23982398 [](common_params &) {
2399- std::vector<ggml_backend_dev_t > rpc_devices;
2400- std::vector<ggml_backend_dev_t > all_devices;
2399+ std::vector<ggml_backend_dev_t > devices;
24012400 for (size_t i = 0 ; i < ggml_backend_dev_count (); ++i) {
24022401 auto * dev = ggml_backend_dev_get (i);
2403- if (ggml_backend_dev_type (dev) == GGML_BACKEND_DEVICE_TYPE_GPU) {
2404- ggml_backend_reg_t reg = ggml_backend_dev_backend_reg (dev);
2405- if (ggml_backend_reg_name (reg) == std::string (" RPC" )) {
2406- rpc_devices.push_back (dev);
2407- } else {
2408- all_devices.push_back (dev);
2409- }
2402+ if (ggml_backend_dev_type (dev) != GGML_BACKEND_DEVICE_TYPE_CPU) {
2403+ devices.push_back (dev);
24102404 }
24112405 }
2412- // insert RPC devices in front
2413- all_devices.insert (all_devices.begin (), rpc_devices.begin (), rpc_devices.end ());
24142406 printf (" Available devices:\n " );
2415- for (size_t i = 0 ; i < all_devices.size (); ++i) {
2416- auto * dev = all_devices[i];
2407+ for (auto * dev : devices) {
24172408 size_t free, total;
24182409 ggml_backend_dev_memory (dev, &free, &total);
24192410 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