| 902 | } |
| 903 | |
| 904 | bool rpc_server::alloc_buffer(const rpc_msg_alloc_buffer_req & request, rpc_msg_alloc_buffer_rsp & response) { |
| 905 | uint32_t dev_id = request.device; |
| 906 | if (dev_id >= backends.size()) { |
| 907 | return false; |
| 908 | } |
| 909 | ggml_backend_buffer_type_t buft = ggml_backend_get_default_buffer_type(backends[dev_id]); |
| 910 | ggml_backend_buffer_t buffer = ggml_backend_buft_alloc_buffer(buft, request.size); |
| 911 | response.remote_ptr = 0; |
| 912 | response.remote_size = 0; |
| 913 | if (buffer != nullptr) { |
| 914 | response.remote_ptr = reinterpret_cast<uint64_t>(buffer); |
| 915 | response.remote_size = buffer->size; |
| 916 | LOG_DBG("[%s] device: %d, size: %" PRIu64 " -> remote_ptr: %" PRIx64 ", remote_size: %" PRIu64 "\n", |
| 917 | __func__, dev_id, request.size, response.remote_ptr, response.remote_size); |
| 918 | buffers.insert(buffer); |
| 919 | } else { |
| 920 | LOG_DBG("[%s] device: %d, size: %" PRIu64 " -> failed\n", __func__, dev_id, request.size); |
| 921 | } |
| 922 | return true; |
| 923 | } |
| 924 | |
| 925 | bool rpc_server::get_alignment(const rpc_msg_get_alignment_req & request, rpc_msg_get_alignment_rsp & response) { |
| 926 | uint32_t dev_id = request.device; |
no test coverage detected