From 3cb9fbd03550586011c58fe47180238037f85d22 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 30 Jun 2025 12:46:20 +0300 Subject: [PATCH 1/3] metal : disable fast-math for some cpy kernels ggml-ci --- ggml/src/ggml-metal/ggml-metal.metal | 1 + 1 file changed, 1 insertion(+) diff --git a/ggml/src/ggml-metal/ggml-metal.metal b/ggml/src/ggml-metal/ggml-metal.metal index fc3cfe35a34bf..bdfd774b93cc5 100644 --- a/ggml/src/ggml-metal/ggml-metal.metal +++ b/ggml/src/ggml-metal/ggml-metal.metal @@ -203,6 +203,7 @@ void quantize_q5_0(device const float * src, device block_q5_0 & dst) { } void quantize_q5_1(device const float * src, device block_q5_1 & dst) { +#pragma METAL fp math_mode(safe) float max = src[0]; float min = src[0]; From b597b29af4c1865ac9ec6b28f0f35224871e35e4 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 30 Jun 2025 13:40:18 +0300 Subject: [PATCH 2/3] cont : disable for q4_1 ggml-ci --- ggml/src/ggml-metal/ggml-metal.metal | 1 + 1 file changed, 1 insertion(+) diff --git a/ggml/src/ggml-metal/ggml-metal.metal b/ggml/src/ggml-metal/ggml-metal.metal index bdfd774b93cc5..a96f7d1fc7fd3 100644 --- a/ggml/src/ggml-metal/ggml-metal.metal +++ b/ggml/src/ggml-metal/ggml-metal.metal @@ -138,6 +138,7 @@ void quantize_q4_0(device const float * src, device block_q4_0 & dst) { } void quantize_q4_1(device const float * src, device block_q4_1 & dst) { +#pragma METAL fp math_mode(safe) float min = FLT_MAX; float max = -FLT_MAX; From ca798ffdfd261e05cf537f7cc0e2853524b29d56 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 30 Jun 2025 13:53:44 +0300 Subject: [PATCH 3/3] cont : disable for iq4_nl ggml-ci --- ggml/src/ggml-metal/ggml-metal.metal | 1 + 1 file changed, 1 insertion(+) diff --git a/ggml/src/ggml-metal/ggml-metal.metal b/ggml/src/ggml-metal/ggml-metal.metal index a96f7d1fc7fd3..dac45c7a99b52 100644 --- a/ggml/src/ggml-metal/ggml-metal.metal +++ b/ggml/src/ggml-metal/ggml-metal.metal @@ -241,6 +241,7 @@ void quantize_q5_1(device const float * src, device block_q5_1 & dst) { } void quantize_iq4_nl(device const float * src, device block_iq4_nl & dst) { +#pragma METAL fp math_mode(safe) float amax = 0.0f; // absolute max float max = 0.0f;