pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/math/ggml



Module Name:    pkgsrc
Committed By:   wiz
Date:           Wed Nov  4 17:07:04 UTC 2026

Modified Files:
        pkgsrc/math/ggml: Makefile distinfo
Added Files:
        pkgsrc/math/ggml/patches: patch-tests_test-quantize-fns.cpp

Log Message:
ggml: update to 0.29.0.

ggml v0.29.0 adds an OCP FP8 E4M3 tensor type, a new
ggml_flash_attn_ext_rows op where each query slice attends to its
own list of K/V rows, a batched tensor copy API, and initial support
for multi-node tensor parallelism through a new multi-process
communicator interface. Core improvements include bounding tensor
views by the bytes their strides reach, zero-copy GGUF export of
host-buffer tensors, and vm_allocate-based allocations on Apple
platforms. Performance work spans all major backends: new SVE
kernels in the CPU backend, DPAS flash attention for quantized KV
in SYCL, fused MoE MMQ in CUDA, faster MXFP4 mat-vec in Metal,
split-K tuning in Vulkan, and a large expansion of quantized
GEMM/GEMV coverage in OpenCL. The Hexagon backend gains support
for several new ops, including the lightning indexer, top-k mask,
conv2d and upscale.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 pkgsrc/math/ggml/Makefile \
    pkgsrc/math/ggml/distinfo
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/math/ggml/patches/patch-tests_test-quantize-fns.cpp

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/math/ggml/Makefile
diff -u pkgsrc/math/ggml/Makefile:1.17 pkgsrc/math/ggml/Makefile:1.18
--- pkgsrc/math/ggml/Makefile:1.17      Sun Nov  1 09:33:04 2026
+++ pkgsrc/math/ggml/Makefile   Wed Nov  4 17:07:04 2026
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.17 2026/11/01 09:33:04 wiz Exp $
+# $NetBSD: Makefile,v 1.18 2026/11/04 17:07:04 wiz Exp $
 
-DISTNAME=      ggml-0.28.0
+DISTNAME=      ggml-0.29.0
 CATEGORIES=    math
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=ggml-org/}
 GITHUB_TAG=    v${PKGVERSION_NOREV}
Index: pkgsrc/math/ggml/distinfo
diff -u pkgsrc/math/ggml/distinfo:1.17 pkgsrc/math/ggml/distinfo:1.18
--- pkgsrc/math/ggml/distinfo:1.17      Sun Nov  1 09:33:04 2026
+++ pkgsrc/math/ggml/distinfo   Wed Nov  4 17:07:04 2026
@@ -1,5 +1,6 @@
-$NetBSD: distinfo,v 1.17 2026/11/01 09:33:04 wiz Exp $
+$NetBSD: distinfo,v 1.18 2026/11/04 17:07:04 wiz Exp $
 
-BLAKE2s (ggml-0.28.0.tar.gz) = 462e77d5d8f7daa8a355dd011afc8efc90177f4a685d7d099b54343a020be28a
-SHA512 (ggml-0.28.0.tar.gz) = 0bc6f3f39af912dcbafb4fded7e6c5f58a3e9257fe85e6bc9e864ac32b69ae56482f990729c094ec6885387ab4da88ef4c42aa79ff7bad191b28b0e5b51f2c38
-Size (ggml-0.28.0.tar.gz) = 4415832 bytes
+BLAKE2s (ggml-0.29.0.tar.gz) = 7a866404d2a9bc1393d921e9c0f000aba27786b3b50060b506c61064be17dc77
+SHA512 (ggml-0.29.0.tar.gz) = 4bf83e4f3f20b364003f74d16f97aed14bdc2af609d7b9980db90b415290eff6d90e5db85c72b1f3a4715647216fdac7fc41990593d8d02d48a5d0c7c0327c68
+Size (ggml-0.29.0.tar.gz) = 4599304 bytes
+SHA1 (patch-tests_test-quantize-fns.cpp) = d12060c276a02ac897f661e85e2b56911e94fcab

Added files:

Index: pkgsrc/math/ggml/patches/patch-tests_test-quantize-fns.cpp
diff -u /dev/null pkgsrc/math/ggml/patches/patch-tests_test-quantize-fns.cpp:1.1
--- /dev/null   Wed Nov  4 17:07:04 2026
+++ pkgsrc/math/ggml/patches/patch-tests_test-quantize-fns.cpp  Wed Nov  4 17:07:04 2026
@@ -0,0 +1,41 @@
+$NetBSD: patch-tests_test-quantize-fns.cpp,v 1.1 2026/11/04 17:07:04 wiz Exp $
+
+error: 'isnan' was not declared in this scope; did you mean 'std::isnan'?
+error: 'signbit' was not declared in this scope; did you mean 'std::signbit'?
+https://github.com/ggml-org/ggml/issues/1681
+
+--- tests/test-quantize-fns.cpp.orig   2026-11-04 17:03:17.251240863 +0000
++++ tests/test-quantize-fns.cpp
+@@ -177,10 +177,10 @@ static uint8_t fp32_to_f8_e4m3_ref(float value) {
+ };
+ 
+ static uint8_t fp32_to_f8_e4m3_ref(float value) {
+-    if (isnan(value)) {
++    if (std::isnan(value)) {
+         return 0x7F;
+     }
+-    const uint8_t sign = signbit(value) ? 0x80 : 0;
++    const uint8_t sign = std::signbit(value) ? 0x80 : 0;
+     const double magnitude = fabs((double) value);
+     if (magnitude >= F8_E4M3_VALUES[126]) {
+         return sign | 126;
+@@ -222,8 +222,8 @@ static int test_f8_e4m3(bool verbose) {
+     for (int i = 0; i < 256; ++i) {
+         const bool is_nan = (i & 0x7F) == 0x7F;
+         const float expected = is_nan ? NAN : copysignf(F8_E4M3_VALUES[i & 0x7F], i & 0x80 ? -1.0f : 1.0f);
+-        const bool decode_failed = is_nan ? !isnan(decoded[i])
+-            : decoded[i] != expected || (expected == 0.0f && signbit(decoded[i]) != signbit(expected));
++        const bool decode_failed = is_nan ? !std::isnan(decoded[i])
++            : decoded[i] != expected || (expected == 0.0f && std::signbit(decoded[i]) != std::signbit(expected));
+         const bool encode_failed = !is_nan && roundtrip[i] != encoded[i];
+         if (decode_failed || encode_failed) {
+             num_failed++;
+@@ -293,7 +293,7 @@ static int test_f8_e4m3(bool verbose) {
+         x[0] = x.back() = code;
+         float actual;
+         traits_cpu->vec_dot(x.size(), &actual, 0, x.data(), 0, y.data(), 0, 1);
+-        num_failed += !isnan(actual);
++        num_failed += !std::isnan(actual);
+     }
+ 
+     if (verbose || num_failed) {



Home | Main Index | Thread Index | Old Index