From: Sigbjørn Skjæret Date: Tue, 26 Aug 2025 06:51:43 +0000 (+0200) Subject: metal : remove contiguous assertion for src0 in IM2COL (llama/15577) X-Git-Tag: v0.9.1~148 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=4cbe48d033be9e6e9c6f97845e93131807d49680;p=pkg%2Fggml%2Fsources%2Fggml metal : remove contiguous assertion for src0 in IM2COL (llama/15577) * remove contiguous assertion for src0 in IM2COL * add contiguous check in supports_op --- diff --git a/src/ggml-metal/ggml-metal.m b/src/ggml-metal/ggml-metal.m index de52b3a4..dcd816a4 100644 --- a/src/ggml-metal/ggml-metal.m +++ b/src/ggml-metal/ggml-metal.m @@ -1876,7 +1876,7 @@ static bool ggml_metal_supports_op(const struct ggml_backend_metal_device_contex case GGML_OP_ROPE: return true; case GGML_OP_IM2COL: - return op->src[1]->type == GGML_TYPE_F32 && (op->type == GGML_TYPE_F16 || op->type == GGML_TYPE_F32); + return ggml_is_contiguous(op->src[1]) && op->src[1]->type == GGML_TYPE_F32 && (op->type == GGML_TYPE_F16 || op->type == GGML_TYPE_F32); case GGML_OP_POOL_1D: return false; case GGML_OP_UPSCALE: @@ -4731,7 +4731,6 @@ static int ggml_metal_encode_node( } break; case GGML_OP_IM2COL: { - GGML_ASSERT(ggml_is_contiguous(src0)); GGML_ASSERT(ggml_is_contiguous(src1)); GGML_ASSERT(src1->type == GGML_TYPE_F32); GGML_ASSERT( dst->type == GGML_TYPE_F16 || dst->type == GGML_TYPE_F32);