Skip to content

Commit fbbf620

Browse files
slarenSilver267
authored andcommitted
llama : fix quantize with dl backends (ggml-org#13539)
1 parent 8553934 commit fbbf620

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

src/llama-model-loader.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -822,13 +822,18 @@ void llama_model_loader::init_mappings(bool prefetch, llama_mlocks * mlock_mmaps
822822
mappings.reserve(files.size());
823823
mmaps_used.reserve(files.size());
824824
for (const auto & file : files) {
825-
auto * reg = ggml_backend_dev_backend_reg(ggml_backend_dev_by_type(GGML_BACKEND_DEVICE_TYPE_CPU));
826-
if (!reg) {
827-
throw std::runtime_error(format("%s: no CPU backend found", __func__));
825+
bool is_numa = false;
826+
827+
auto * dev = ggml_backend_dev_by_type(GGML_BACKEND_DEVICE_TYPE_CPU);
828+
if (dev) {
829+
auto * reg = ggml_backend_dev_backend_reg(dev);
830+
auto * is_numa_fn = (decltype(ggml_is_numa) *) ggml_backend_reg_get_proc_address(reg, "ggml_backend_cpu_is_numa");
831+
if (is_numa_fn) {
832+
is_numa = is_numa_fn();
833+
}
828834
}
829835

830-
auto * is_numa_fn = (decltype(ggml_is_numa) *) ggml_backend_reg_get_proc_address(reg, "ggml_backend_cpu_is_numa");
831-
std::unique_ptr<llama_mmap> mapping = std::make_unique<llama_mmap>(file.get(), prefetch ? -1 : 0, is_numa_fn());
836+
std::unique_ptr<llama_mmap> mapping = std::make_unique<llama_mmap>(file.get(), prefetch ? -1 : 0, is_numa);
832837
mmaps_used.emplace_back(mapping->size(), 0);
833838
if (mlock_mmaps) {
834839
std::unique_ptr<llama_mlock> mlock_mmap(new llama_mlock());

0 commit comments

Comments
 (0)