@@ -1304,7 +1304,7 @@ static std::vector<ggml_backend_dev_t> parse_device_list(const std::string & val
1304
1304
} else {
1305
1305
for (const auto & device : dev_names) {
1306
1306
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 ) {
1308
1308
throw std::invalid_argument (string_format (" invalid device: %s" , device.c_str ()));
1309
1309
}
1310
1310
devices.push_back (dev);
@@ -1314,7 +1314,7 @@ static std::vector<ggml_backend_dev_t> parse_device_list(const std::string & val
1314
1314
return devices;
1315
1315
}
1316
1316
1317
- static void add_rpc_devices (std::string servers) {
1317
+ static void add_rpc_devices (const std::string & servers) {
1318
1318
auto rpc_servers = string_split<std::string>(servers, ' ,' );
1319
1319
if (rpc_servers.empty ()) {
1320
1320
throw std::invalid_argument (" no RPC servers specified" );
@@ -2516,24 +2516,15 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
2516
2516
{" --list-devices" },
2517
2517
" print list of available devices and exit" ,
2518
2518
[](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;
2521
2520
for (size_t i = 0 ; i < ggml_backend_dev_count (); ++i) {
2522
2521
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);
2530
2524
}
2531
2525
}
2532
- // insert RPC devices in front
2533
- all_devices.insert (all_devices.begin (), rpc_devices.begin (), rpc_devices.end ());
2534
2526
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) {
2537
2528
size_t free, total;
2538
2529
ggml_backend_dev_memory (dev, &free, &total);
2539
2530
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