From 7c1ab98183e80da15c3528c90b559120410c4041 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 15 Apr 2024 22:48:39 +0300 Subject: [PATCH] metal : require contiguousness for float4 unary kernels --- ggml-metal.m | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ggml-metal.m b/ggml-metal.m index b0c6a191c..63a7a4ef6 100644 --- a/ggml-metal.m +++ b/ggml-metal.m @@ -1149,7 +1149,7 @@ static enum ggml_status ggml_metal_graph_compute( id pipeline = nil; - if (n % 4 == 0) { + if (n % 4 == 0 && ggml_is_contiguous(src0)) { n /= 4; pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SCALE_4].pipeline; } else { @@ -1214,7 +1214,7 @@ static enum ggml_status ggml_metal_graph_compute( id pipeline = nil; - if (n%4 == 0) { + if (n % 4 == 0 && ggml_is_contiguous(src0)) { pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GELU_4].pipeline; n /= 4; } else { @@ -1233,7 +1233,7 @@ static enum ggml_status ggml_metal_graph_compute( id pipeline = nil; - if (n%4 == 0) { + if (n % 4 == 0 && ggml_is_contiguous(src0)) { pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GELU_QUICK_4].pipeline; n /= 4; } else { @@ -1252,7 +1252,7 @@ static enum ggml_status ggml_metal_graph_compute( id pipeline = nil; - if (n%4 == 0) { + if (n % 4 == 0 && ggml_is_contiguous(src0)) { pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SILU_4].pipeline; n /= 4; } else {