MCPcopy Create free account
hub / github.com/Tiiny-AI/PowerInfer / main

Function main

smallthinker/tools/rpc/rpc-server.cpp:263–322  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

261}
262
263int main(int argc, char * argv[]) {
264 ggml_backend_load_all();
265
266 rpc_server_params params;
267 if (!rpc_server_params_parse(argc, argv, params)) {
268 fprintf(stderr, "Invalid parameters\n");
269 return 1;
270 }
271
272 if (params.host != "127.0.0.1") {
273 fprintf(stderr, "\n");
274 fprintf(stderr, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
275 fprintf(stderr, "WARNING: Host ('%s') is != '127.0.0.1'\n", params.host.c_str());
276 fprintf(stderr, " Never expose the RPC server to an open network!\n");
277 fprintf(stderr, " This is an experimental feature and is not secure!\n");
278 fprintf(stderr, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
279 fprintf(stderr, "\n");
280 }
281
282 ggml_backend_t backend = create_backend(params);
283 if (!backend) {
284 fprintf(stderr, "Failed to create backend\n");
285 return 1;
286 }
287 std::string endpoint = params.host + ":" + std::to_string(params.port);
288 size_t free_mem, total_mem;
289 if (params.backend_mem > 0) {
290 free_mem = params.backend_mem;
291 total_mem = params.backend_mem;
292 } else {
293 get_backend_memory(backend, &free_mem, &total_mem);
294 }
295 const char * cache_dir = nullptr;
296 std::string cache_dir_str;
297 if (params.use_cache) {
298 cache_dir_str = fs_get_cache_directory() + "rpc/";
299 if (!fs_create_directory_with_parents(cache_dir_str)) {
300 fprintf(stderr, "Failed to create cache directory: %s\n", cache_dir_str.c_str());
301 return 1;
302 }
303 cache_dir = cache_dir_str.c_str();
304 }
305
306 ggml_backend_reg_t reg = ggml_backend_reg_by_name("RPC");
307 if (!reg) {
308 fprintf(stderr, "Failed to find RPC backend\n");
309 return 1;
310 }
311
312 auto start_server_fn = (decltype(ggml_backend_rpc_start_server)*) ggml_backend_reg_get_proc_address(reg, "ggml_backend_rpc_start_server");
313 if (!start_server_fn) {
314 fprintf(stderr, "Failed to obtain RPC backend start server function\n");
315 return 1;
316 }
317
318 start_server_fn(backend, endpoint.c_str(), cache_dir, free_mem, total_mem);
319
320 ggml_backend_free(backend);

Callers

nothing calls this directly

Calls 12

ggml_backend_load_allFunction · 0.85
rpc_server_params_parseFunction · 0.85
fprintfFunction · 0.85
create_backendFunction · 0.85
get_backend_memoryFunction · 0.85
ggml_backend_reg_by_nameFunction · 0.85
fs_get_cache_directoryFunction · 0.70
to_stringFunction · 0.50
ggml_backend_freeFunction · 0.50
c_strMethod · 0.45

Tested by

no test coverage detected