metal : proper assert for mat-mat memory alignment

ggml-ci
This commit is contained in:
Georgi Gerganov 2024-03-22 09:47:56 +02:00
parent 95d576b48e
commit 2f8be164ad
No known key found for this signature in database
GPG Key ID: BF970631944C16B7

View File

@ -1392,6 +1392,10 @@ static enum ggml_status ggml_metal_graph_compute(
(ne11 > ne11_mm_min || (ggml_is_quantized(src0t) && ne12 > 1))) {
//printf("matrix: ne00 = %6d, ne01 = %6d, ne02 = %6d, ne11 = %6d, ne12 = %6d\n", ne00, ne01, ne02, ne11, ne12);
// some Metal matrix data types require alignment to 16 bytes
// ref: https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf (Table 2.5)
GGML_ASSERT(nb01 % 16 == 0);
id<MTLComputePipelineState> pipeline = nil;
switch (src0->type) {
@ -1706,6 +1710,10 @@ static enum ggml_status ggml_metal_graph_compute(
ne20 % 32 == 0 && ne20 >= 64 &&
ne11 > ne11_mm_min) {
// some Metal matrix data types require alignment to 16 bytes
// ref: https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf (Table 2.5)
GGML_ASSERT(nb01 % 16 == 0);
id<MTLComputePipelineState> pipeline = nil;
switch (src2->type) {