Skip to content

Commit b83034a

Browse files
committed
rpc: fix register position
Signed-off-by: thxCode <[email protected]>
1 parent f35726c commit b83034a

File tree

4 files changed

+12
-6
lines changed

4 files changed

+12
-6
lines changed

common/arg.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ static void add_rpc_devices(std::string servers) {
403403
for (const auto & server : rpc_servers) {
404404
ggml_backend_dev_t dev = ggml_backend_rpc_add_device_fn(server.c_str());
405405
if (dev) {
406-
ggml_backend_device_register(dev);
406+
ggml_backend_device_register(dev, true);
407407
} else {
408408
throw std::invalid_argument("failed to register RPC device");
409409
}

ggml/include/ggml-backend.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ extern "C" {
203203
// Backend registry
204204
//
205205

206-
GGML_API void ggml_backend_device_register(ggml_backend_dev_t device);
206+
GGML_API void ggml_backend_device_register(ggml_backend_dev_t device, bool front);
207207

208208
// Backend (reg) enumeration
209209
GGML_API size_t ggml_backend_reg_count(void);

ggml/src/ggml-backend-reg.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,11 +210,15 @@ struct ggml_backend_registry {
210210
}
211211
}
212212

213-
void register_device(ggml_backend_dev_t device) {
213+
void register_device(ggml_backend_dev_t device, bool front = false) {
214214
#ifndef NDEBUG
215215
GGML_LOG_DEBUG("%s: registered device %s (%s)\n", __func__, ggml_backend_dev_name(device), ggml_backend_dev_description(device));
216216
#endif
217-
devices.push_back(device);
217+
if (front) {
218+
devices.insert(devices.begin(), device);
219+
} else {
220+
devices.push_back(device);
221+
}
218222
}
219223

220224
ggml_backend_reg_t load_backend(const std::wstring & path, bool silent) {
@@ -298,8 +302,8 @@ void ggml_backend_register(ggml_backend_reg_t reg) {
298302
get_reg().register_backend(reg);
299303
}
300304

301-
void ggml_backend_device_register(ggml_backend_dev_t device) {
302-
get_reg().register_device(device);
305+
void ggml_backend_device_register(ggml_backend_dev_t device, bool front) {
306+
get_reg().register_device(device, front);
303307
}
304308

305309
// Backend (reg) enumeration

src/llama-model.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1303,10 +1303,12 @@ bool llama_model::load_tensors(llama_model_loader & ml) {
13031303
const int act_gpu_layers = devices.empty() ? 0 : std::min(n_gpu_layers, (int)n_layer + 1);
13041304
auto get_layer_buft_list = [&](int il) -> llama_model::impl::layer_dev {
13051305
if (il < i_gpu_start || (il - i_gpu_start) >= act_gpu_layers) {
1306+
LLAMA_LOG_DEBUG("load_tensors: layer %3d assigned to device %s\n", il, ggml_backend_dev_name(cpu_dev));
13061307
return {cpu_dev, &pimpl->cpu_buft_list};
13071308
}
13081309
const int layer_gpu = std::upper_bound(splits.begin(), splits.begin() + n_devices(), float(il - i_gpu_start)/act_gpu_layers) - splits.begin();
13091310
auto * dev = devices.at(layer_gpu);
1311+
LLAMA_LOG_DEBUG("load_tensors: layer %3d assigned to device %s\n", il, ggml_backend_dev_name(dev));
13101312
return {dev, &pimpl->gpu_buft_list.at(dev)};
13111313
};
13121314

0 commit comments

Comments
 (0)