Skip to content

Commit 6da5bec

Browse files
authored
rpc : better caching of the base buffer pointer (#11331)
There is no need to use map, just store the base pointer in the buffer context.
1 parent 2e2f8f0 commit 6da5bec

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

ggml/src/ggml-rpc/ggml-rpc.cpp

+6-7
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ struct ggml_backend_rpc_context {
181181

182182
struct ggml_backend_rpc_buffer_context {
183183
std::shared_ptr<socket_t> sock;
184-
std::unordered_map<ggml_backend_buffer_t, void *> base_cache;
184+
void * base_ptr;
185185
uint64_t remote_ptr;
186186
};
187187

@@ -423,16 +423,15 @@ static void ggml_backend_rpc_buffer_free_buffer(ggml_backend_buffer_t buffer) {
423423

424424
static void * ggml_backend_rpc_buffer_get_base(ggml_backend_buffer_t buffer) {
425425
ggml_backend_rpc_buffer_context * ctx = (ggml_backend_rpc_buffer_context *)buffer->context;
426-
if (ctx->base_cache.find(buffer) != ctx->base_cache.end()) {
427-
return ctx->base_cache[buffer];
426+
if (ctx->base_ptr != nullptr) {
427+
return ctx->base_ptr;
428428
}
429429
rpc_msg_buffer_get_base_req request = {ctx->remote_ptr};
430430
rpc_msg_buffer_get_base_rsp response;
431431
bool status = send_rpc_cmd(ctx->sock, RPC_CMD_BUFFER_GET_BASE, &request, sizeof(request), &response, sizeof(response));
432432
GGML_ASSERT(status);
433-
void * base_ptr = reinterpret_cast<void *>(response.base_ptr);
434-
ctx->base_cache[buffer] = base_ptr;
435-
return base_ptr;
433+
ctx->base_ptr = reinterpret_cast<void *>(response.base_ptr);
434+
return ctx->base_ptr;
436435
}
437436

438437
static rpc_tensor serialize_tensor(const ggml_tensor * tensor) {
@@ -557,7 +556,7 @@ static ggml_backend_buffer_t ggml_backend_rpc_buffer_type_alloc_buffer(ggml_back
557556
if (response.remote_ptr != 0) {
558557
ggml_backend_buffer_t buffer = ggml_backend_buffer_init(buft,
559558
ggml_backend_rpc_buffer_interface,
560-
new ggml_backend_rpc_buffer_context{sock, {}, response.remote_ptr},
559+
new ggml_backend_rpc_buffer_context{sock, nullptr, response.remote_ptr},
561560
response.remote_size);
562561
return buffer;
563562
} else {

0 commit comments

Comments
 (0)