Skip to content

Commit a7fb802

Browse files
committed
llava: Fix cpu-only clip image encoding
1 parent e8a6263 commit a7fb802

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

examples/llava/clip.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,7 @@ struct clip_ctx {
337337
? ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_GPU, nullptr)
338338
: nullptr);
339339

340+
ggml_backend_t backend_cpu_raw_ptr = backend_cpu.get();
340341
if (backend) {
341342
LOG_INF("%s: CLIP using %s backend\n", __func__, ggml_backend_name(backend.get()));
342343
backend_ptrs.push_back(backend.get());
@@ -346,8 +347,8 @@ struct clip_ctx {
346347
LOG_INF("%s: CLIP using CPU backend\n", __func__);
347348
}
348349

349-
backend_ptrs.push_back(backend_cpu.get());
350-
backend_buft.push_back(ggml_backend_get_default_buffer_type(backend_cpu.get()));
350+
backend_ptrs.push_back(backend_cpu_raw_ptr);
351+
backend_buft.push_back(ggml_backend_get_default_buffer_type(backend_cpu_raw_ptr));
351352

352353
sched.reset(
353354
ggml_backend_sched_new(backend_ptrs.data(), backend_buft.data(), backend_ptrs.size(), 8192, false)
@@ -2610,7 +2611,9 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima
26102611
}
26112612
}
26122613

2613-
ggml_backend_cpu_set_n_threads(ctx->backend_cpu.get(), n_threads);
2614+
ggml_backend_t cpu_backend_raw_ptr =
2615+
ggml_backend_is_cpu(ctx->backend.get()) ? ctx->backend.get() : ctx->backend_cpu.get();
2616+
ggml_backend_cpu_set_n_threads(cpu_backend_raw_ptr, n_threads);
26142617

26152618
auto status = ggml_backend_sched_graph_compute(ctx->sched.get(), gf);
26162619
if (status != GGML_STATUS_SUCCESS) {

0 commit comments

Comments
 (0)