]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commitdiff
ggml-backend : sync remnant
authorGeorgi Gerganov <redacted>
Mon, 12 Feb 2024 07:27:57 +0000 (09:27 +0200)
committerGeorgi Gerganov <redacted>
Mon, 12 Feb 2024 07:31:12 +0000 (09:31 +0200)
ggml-backend.c
ggml-metal.h

index c0d89d31f850d21550c69c389f2edede6abc2b81..9ee81b766f1a81a688a2a056298e129472d9e94d 100644 (file)
@@ -475,7 +475,7 @@ ggml_backend_buffer_t ggml_backend_reg_alloc_buffer(size_t i, size_t size) {
 
 // backend CPU
 
-static const size_t TENSOR_ALIGNMENT = 64; // should be enough for AVX 512
+static const size_t TENSOR_ALIGNMENT = 32; // required for mmap as gguf only guarantees 32-byte alignment
 
 GGML_CALL static const char * ggml_backend_cpu_buffer_name(ggml_backend_buffer_t buffer) {
     return "CPU";
@@ -818,6 +818,7 @@ void ggml_backend_cpu_set_abort_callback(ggml_backend_t backend_cpu, ggml_abort_
 }
 
 GGML_CALL ggml_backend_buffer_t ggml_backend_cpu_buffer_from_ptr(void * ptr, size_t size) {
+    GGML_ASSERT((uintptr_t)ptr % TENSOR_ALIGNMENT == 0 && "buffer pointer must be aligned");
     return ggml_backend_buffer_init(ggml_backend_cpu_buffer_type(), cpu_backend_buffer_i_from_ptr, ptr, size);
 }
 
@@ -1411,6 +1412,8 @@ static bool ggml_backend_sched_alloc_splits(ggml_backend_sched_t sched) {
             return false;
         }
     }
+
+    return true;
 }
 
 static bool ggml_backend_sched_compute_splits(ggml_backend_sched_t sched) {
index e8ceb1bd762f75b62949eab94b831a7f67b6d6ed..a5c542189c295e504d0f281ed3492888f6389db0 100644 (file)
@@ -27,7 +27,6 @@
 
 // max memory buffers that can be mapped to the device
 #define GGML_METAL_MAX_BUFFERS 64
-#define GGML_METAL_MAX_COMMAND_BUFFERS 32
 
 struct ggml_tensor;
 struct ggml_cgraph;