MCPcopy Create free account
hub / github.com/antirez/llama.cpp-deepseek-v4-flash / get_devices

Function get_devices

tools/rpc/rpc-server.cpp:248–288  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

246}
247
248static std::vector<ggml_backend_dev_t> get_devices(const rpc_server_params & params) {
249 std::vector<ggml_backend_dev_t> devices;
250 if (!params.devices.empty()) {
251 for (auto device : params.devices) {
252 ggml_backend_dev_t dev = ggml_backend_dev_by_name(device.c_str());
253 if (dev) {
254 devices.push_back(dev);
255 } else {
256 fprintf(stderr, "error: unknown device: %s\n", device.c_str());
257 fprintf(stderr, "available devices:\n");
258 for (size_t i = 0; i < ggml_backend_dev_count(); i++) {
259 auto * dev = ggml_backend_dev_get(i);
260 size_t free, total;
261 ggml_backend_dev_memory(dev, &free, &total);
262 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);
263 }
264 return {};
265 }
266 }
267 }
268
269 // Try non-CPU devices first
270 if (devices.empty()) {
271 for (size_t i = 0; i < ggml_backend_dev_count(); i++) {
272 ggml_backend_dev_t dev = ggml_backend_dev_get(i);
273 if (ggml_backend_dev_type(dev) != GGML_BACKEND_DEVICE_TYPE_CPU) {
274 devices.push_back(dev);
275 }
276 }
277 }
278
279 // If there are no accelerators, fallback to CPU device
280 if (devices.empty()) {
281 ggml_backend_dev_t dev = ggml_backend_dev_by_type(GGML_BACKEND_DEVICE_TYPE_CPU);
282 if (dev) {
283 devices.push_back(dev);
284 }
285 }
286
287 return devices;
288}
289
290int main(int argc, char * argv[]) {
291 std::setlocale(LC_NUMERIC, "C");

Callers 1

mainFunction · 0.85

Calls 10

ggml_backend_dev_by_nameFunction · 0.85
ggml_backend_dev_countFunction · 0.85
ggml_backend_dev_getFunction · 0.85
ggml_backend_dev_memoryFunction · 0.85
ggml_backend_dev_nameFunction · 0.85
ggml_backend_dev_by_typeFunction · 0.85
ggml_backend_dev_typeFunction · 0.50
emptyMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected