mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-11-03 09:22:01 +00:00 
			
		
		
		
	* rpc : add support for multiple devices Allow rpc-server to expose multiple devices from a single endpoint. Change RPC protocol to include device identifier where needed. closes: #15210 * fixes * use ggml_backend_reg_t * address review comments * fix llama-bench backend report * address review comments, change device naming * fix cmd order
		
			
				
	
	
		
			33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include "ggml.h"
 | 
						|
#include "ggml-backend.h"
 | 
						|
 | 
						|
#ifdef  __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
#define RPC_PROTO_MAJOR_VERSION    3
 | 
						|
#define RPC_PROTO_MINOR_VERSION    0
 | 
						|
#define RPC_PROTO_PATCH_VERSION    0
 | 
						|
#define GGML_RPC_MAX_SERVERS       16
 | 
						|
 | 
						|
// backend API
 | 
						|
GGML_BACKEND_API ggml_backend_t ggml_backend_rpc_init(const char * endpoint, uint32_t device);
 | 
						|
GGML_BACKEND_API bool ggml_backend_is_rpc(ggml_backend_t backend);
 | 
						|
 | 
						|
GGML_BACKEND_API ggml_backend_buffer_type_t ggml_backend_rpc_buffer_type(const char * endpoint, uint32_t device);
 | 
						|
 | 
						|
GGML_BACKEND_API void ggml_backend_rpc_get_device_memory(const char * endpoint, uint32_t device, size_t * free, size_t * total);
 | 
						|
 | 
						|
GGML_BACKEND_API void ggml_backend_rpc_start_server(const char * endpoint, const char * cache_dir,
 | 
						|
                                                    size_t n_threads, size_t n_devices,
 | 
						|
                                                    ggml_backend_dev_t * devices, size_t * free_mem, size_t * total_mem);
 | 
						|
 | 
						|
GGML_BACKEND_API ggml_backend_reg_t ggml_backend_rpc_reg(void);
 | 
						|
GGML_BACKEND_API ggml_backend_reg_t ggml_backend_rpc_add_server(const char * endpoint);
 | 
						|
 | 
						|
#ifdef  __cplusplus
 | 
						|
}
 | 
						|
#endif
 |