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

Function main

tools/rpc/rpc-server.cpp:290–342  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

288}
289
290int main(int argc, char * argv[]) {
291 std::setlocale(LC_NUMERIC, "C");
292
293 ggml_backend_load_all();
294
295 rpc_server_params params;
296 if (!rpc_server_params_parse(argc, argv, params)) {
297 fprintf(stderr, "Invalid parameters\n");
298 return 1;
299 }
300
301 if (params.host != "127.0.0.1") {
302 fprintf(stderr, "\n");
303 fprintf(stderr, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
304 fprintf(stderr, "WARNING: Host ('%s') is != '127.0.0.1'\n", params.host.c_str());
305 fprintf(stderr, " Never expose the RPC server to an open network!\n");
306 fprintf(stderr, " This is an experimental feature and is not secure!\n");
307 fprintf(stderr, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
308 fprintf(stderr, "\n");
309 }
310
311 auto devices = get_devices(params);
312 if (devices.empty()) {
313 fprintf(stderr, "No devices found\n");
314 return 1;
315 }
316 std::string endpoint = params.host + ":" + std::to_string(params.port);
317 const char * cache_dir = nullptr;
318 std::string cache_dir_str;
319 if (params.use_cache) {
320 cache_dir_str = fs_get_cache_directory() + "rpc/";
321 if (!fs_create_directory_with_parents(cache_dir_str)) {
322 fprintf(stderr, "Failed to create cache directory: %s\n", cache_dir_str.c_str());
323 return 1;
324 }
325 cache_dir = cache_dir_str.c_str();
326 }
327
328 ggml_backend_reg_t reg = ggml_backend_reg_by_name("RPC");
329 if (!reg) {
330 fprintf(stderr, "Failed to find RPC backend\n");
331 return 1;
332 }
333
334 auto start_server_fn = (decltype(ggml_backend_rpc_start_server)*) ggml_backend_reg_get_proc_address(reg, "ggml_backend_rpc_start_server");
335 if (!start_server_fn) {
336 fprintf(stderr, "Failed to obtain RPC backend start server function\n");
337 return 1;
338 }
339
340 start_server_fn(endpoint.c_str(), cache_dir, params.n_threads, devices.size(), devices.data());
341 return 0;
342}

Callers

nothing calls this directly

Calls 11

ggml_backend_load_allFunction · 0.85
rpc_server_params_parseFunction · 0.85
get_devicesFunction · 0.85
ggml_backend_reg_by_nameFunction · 0.85
fs_get_cache_directoryFunction · 0.70
to_stringFunction · 0.50
emptyMethod · 0.45
sizeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected