@@ -835,9 +835,10 @@ static ggml_backend_i ggml_backend_rpc_interface = {
835835ggml_backend_buffer_type_t ggml_backend_rpc_buffer_type (const char * endpoint, uint32_t device) {
836836 static std::mutex mutex;
837837 std::lock_guard<std::mutex> lock (mutex);
838+ std::string dev_name = " RPC" + std::to_string (device) + " [" + std::string (endpoint) + " ]" ;
838839 // NOTE: buffer types are allocated and never freed; this is by design
839840 static std::unordered_map<std::string, ggml_backend_buffer_type_t > buft_map;
840- auto it = buft_map.find (endpoint );
841+ auto it = buft_map.find (dev_name );
841842 if (it != buft_map.end ()) {
842843 return it->second ;
843844 }
@@ -848,7 +849,6 @@ ggml_backend_buffer_type_t ggml_backend_rpc_buffer_type(const char * endpoint, u
848849 }
849850 size_t alignment = get_alignment (sock, device);
850851 size_t max_size = get_max_size (sock, device);
851- std::string dev_name = " RPC" + std::to_string (device) + " [" + std::string (endpoint) + " ]" ;
852852 ggml_backend_rpc_buffer_type_context * buft_ctx = new ggml_backend_rpc_buffer_type_context {
853853 /* .endpoint = */ endpoint,
854854 /* .device = */ device,
@@ -862,7 +862,7 @@ ggml_backend_buffer_type_t ggml_backend_rpc_buffer_type(const char * endpoint, u
862862 /* .device = */ ggml_backend_rpc_add_device (endpoint, device),
863863 /* .context = */ buft_ctx
864864 };
865- buft_map[endpoint ] = buft;
865+ buft_map[dev_name ] = buft;
866866 return buft;
867867}
868868
@@ -1686,6 +1686,8 @@ static void rpc_serve_client(const std::vector<ggml_backend_t> & backends, const
16861686 rpc_msg_get_device_memory_rsp response;
16871687 response.free_mem = free_mem[dev_id];
16881688 response.total_mem = total_mem[dev_id];
1689+ LOG_DBG (" [get_device_mem] device: %u, free_mem: %zu, total_mem: %zu\n " , dev_id,
1690+ response.free_mem , response.total_mem );
16891691 if (!send_msg (sockfd, &response, sizeof (response))) {
16901692 return ;
16911693 }
@@ -1834,7 +1836,7 @@ static bool ggml_backend_rpc_device_supports_buft(ggml_backend_dev_t dev, ggml_b
18341836 }
18351837 ggml_backend_rpc_buffer_type_context * buft_ctx = (ggml_backend_rpc_buffer_type_context *)buft->context ;
18361838 ggml_backend_rpc_device_context * dev_ctx = (ggml_backend_rpc_device_context *)dev->context ;
1837- return buft_ctx->endpoint == dev_ctx->endpoint ;
1839+ return buft_ctx->endpoint == dev_ctx->endpoint && buft_ctx-> device == dev_ctx-> device ;
18381840}
18391841
18401842static const struct ggml_backend_device_i ggml_backend_rpc_device_i = {
0 commit comments