Diego Devesa commited on
Commit
9ac3c7e
·
1 Parent(s): 1ca87a8

ggml-backend : only offload from host buffers (fix) (llama/11124)

Browse files
ggml/src/ggml-backend.cpp CHANGED
@@ -761,10 +761,10 @@ static int ggml_backend_sched_backend_id_from_cur(ggml_backend_sched_t sched, st
761
  }
762
  // skip ROPE since the rope freqs tensor is too small to choose a backend based on it
763
  // not an ideal solution
764
- if (tensor->op != GGML_OP_ROPE && src->buffer != NULL && src->buffer->usage == GGML_BACKEND_BUFFER_USAGE_WEIGHTS && ggml_backend_buffer_is_host(src->buffer)) {
765
  int src_backend_id = ggml_backend_sched_backend_from_buffer(sched, src, tensor);
766
  // check if a backend with higher prio wants to offload the op
767
- if (src_backend_id == sched->n_backends - 1) {
768
  for (int b = 0; b < src_backend_id; b++) {
769
  if (ggml_backend_supports_op(sched->backends[b], tensor) && ggml_backend_offload_op(sched->backends[b], tensor)) {
770
  SET_CAUSE(tensor, "1.off");
 
761
  }
762
  // skip ROPE since the rope freqs tensor is too small to choose a backend based on it
763
  // not an ideal solution
764
+ if (tensor->op != GGML_OP_ROPE && src->buffer != NULL && src->buffer->usage == GGML_BACKEND_BUFFER_USAGE_WEIGHTS) {
765
  int src_backend_id = ggml_backend_sched_backend_from_buffer(sched, src, tensor);
766
  // check if a backend with higher prio wants to offload the op
767
+ if (src_backend_id == sched->n_backends - 1 && ggml_backend_buffer_is_host(src->buffer)) {
768
  for (int b = 0; b < src_backend_id; b++) {
769
  if (ggml_backend_supports_op(sched->backends[b], tensor) && ggml_backend_offload_op(sched->backends[b], tensor)) {
770
  SET_CAUSE(tensor, "1.off");
ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp CHANGED
@@ -4169,6 +4169,8 @@ static ggml_backend_buffer_t ggml_backend_cpu_aarch64_buffer_type_alloc_buffer(g
4169
  buffer->buft = buft;
4170
  buffer->iface.init_tensor = ggml_backend_cpu_aarch64_buffer_init_tensor;
4171
  buffer->iface.set_tensor = ggml_backend_cpu_aarch64_buffer_set_tensor;
 
 
4172
  return buffer;
4173
  }
4174
 
 
4169
  buffer->buft = buft;
4170
  buffer->iface.init_tensor = ggml_backend_cpu_aarch64_buffer_init_tensor;
4171
  buffer->iface.set_tensor = ggml_backend_cpu_aarch64_buffer_set_tensor;
4172
+ buffer->iface.get_tensor = nullptr;
4173
+ buffer->iface.cpy_tensor = nullptr;
4174
  return buffer;
4175
  }
4176