Skip to content

Commit 9f7504d

Browse files
committed
llama : allow using iGPUs with --device
1 parent f088b6a commit 9f7504d

File tree

1 file changed

+6
-15
lines changed

1 file changed

+6
-15
lines changed

common/arg.cpp

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)