Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package clpeak for openSUSE:Factory checked 
in at 2026-06-27 18:06:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/clpeak (Old)
 and      /work/SRC/openSUSE:Factory/.clpeak.new.11887 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "clpeak"

Sat Jun 27 18:06:25 2026 rev:13 rq:1361855 version:2.0.16

Changes:
--------
--- /work/SRC/openSUSE:Factory/clpeak/clpeak.changes    2026-06-25 
10:59:53.234905683 +0200
+++ /work/SRC/openSUSE:Factory/.clpeak.new.11887/clpeak.changes 2026-06-27 
18:08:13.388286146 +0200
@@ -1,0 +2,13 @@
+Fri Jun 26 07:41:06 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to 2.0.16:
+  * The downstream fix to install the binary into the standard
+    bindir is now upstream (PR #178); install the LICENSE file via
+    CMake again.
+  * Raise the build to C++14 to fix aggregate brace-initialization
+    on strict clang.
+  * New GPU support: CUDA Blackwell Ultra (B300/GB300), GB10 and
+    Jetson Thor.
+- Drop clpeak-install-bindir.patch, merged upstream.
+
+-------------------------------------------------------------------

Old:
----
  clpeak-2.0.14.tar.gz
  clpeak-install-bindir.patch

New:
----
  clpeak-2.0.16.tar.gz

----------(Old B)----------
  Old:    Jetson Thor.
- Drop clpeak-install-bindir.patch, merged upstream.
----------(Old E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ clpeak.spec ++++++
--- /var/tmp/diff_new_pack.oK50vL/_old  2026-06-27 18:08:15.344352386 +0200
+++ /var/tmp/diff_new_pack.oK50vL/_new  2026-06-27 18:08:15.372353335 +0200
@@ -18,14 +18,12 @@
 
 
 Name:           clpeak
-Version:        2.0.14
+Version:        2.0.16
 Release:        0
 Summary:        Find peak OpenCL capacities like bandwidth & compute
 License:        LicenseRef-SUSE-Public-Domain
 URL:            https://github.com/krrishnarraj/clpeak
 Source:         
https://github.com/krrishnarraj/clpeak/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM clpeak-install-bindir.patch -- install the binary into 
bindir, not the prefix root
-Patch0:         clpeak-install-bindir.patch
 BuildRequires:  cmake
 BuildRequires:  gcc-c++
 BuildRequires:  opencl-cpp-headers

++++++ clpeak-2.0.14.tar.gz -> clpeak-2.0.16.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-2.0.14/CMakeLists.txt 
new/clpeak-2.0.16/CMakeLists.txt
--- old/clpeak-2.0.14/CMakeLists.txt    2026-06-23 12:53:08.000000000 +0200
+++ new/clpeak-2.0.16/CMakeLists.txt    2026-06-26 07:07:02.000000000 +0200
@@ -70,6 +70,9 @@
     set(CMAKE_BUILD_TYPE "Release")
 endif()
 
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
 # Backend options
 option(CLPEAK_ENABLE_OPENCL "Build OpenCL backend" ON)
 option(CLPEAK_ENABLE_VULKAN "Build Vulkan backend" ON)
@@ -267,8 +270,8 @@
 message(STATUS 
"===============================================================")
 message(STATUS "")
 
-install(TARGETS clpeak RUNTIME DESTINATION .)
-install(FILES LICENSE DESTINATION .)
+install(TARGETS clpeak RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+install(FILES LICENSE DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/clpeak")
 enable_testing()
 add_test(clpeak_test_run clpeak)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-2.0.14/include/cuda/cuda_peak.h 
new/clpeak-2.0.16/include/cuda/cuda_peak.h
--- old/clpeak-2.0.14/include/cuda/cuda_peak.h  2026-06-23 12:53:08.000000000 
+0200
+++ new/clpeak-2.0.16/include/cuda/cuda_peak.h  2026-06-26 07:07:02.000000000 
+0200
@@ -43,15 +43,22 @@
   bool wmmaSupported;            // cc >= 7.0 (Volta) -- fp16 wmma
   bool wmmaInt8Supported;        // cc >= 7.2 (Turing) -- int8 wmma fragments
   bool fp8MmaSupported;          // cc >= 8.9 (Ada) -- inline 
mma.sync.e4m3/e5m2
-  bool fp4MmaSupported;          // cc >= 12.0 (Blackwell) -- sm_120a mma 
FP4/MXFP4
-  bool fp4MmaSparseSupported;    // cc >= 12.0 (Blackwell) -- sm_120a mma.sp 
FP4 2:4
+  bool fp4MmaSupported;          // cc 12.x (consumer Blackwell) -- 
sm_120a/121a
+                                 // raw mma.sync FP4/MXFP4 microbench kernels
+  bool fp4MmaSparseSupported;    // cc 12.x (consumer Blackwell) -- 
sm_120a/121a
+                                 // raw mma.sp FP4 2:4 microbench kernels
+  bool fp4GemmSupported;         // cc >= 10.0 (all Blackwell) -- block-scaled
+                                 // FP4 GEMM via cuBLASLt; covers datacenter
+                                 // (sm_100/103, tcgen05) too, where the raw
+                                 // mma.sync kernels above do not apply. 
cuBLASLt
+                                 // self-skips (0 heuristics) if truly absent.
   bool tf32GemmSupported;        // cc >= 8.0 (Ampere) -- TF32 tensor cores
   bool int8GemmSupported;        // cc >= 7.5 (Turing) -- imma int8 GEMM
   bool int4GemmSupported;        // cc >= 9.0 (Hopper)  -- imma int4 GEMM
   bool dpTensorSupported;        // cc >= 8.0 (Ampere) -- fp64 wmma m8n8k4
-  bool int4MmaSupported;         // cc 7.5..8.9 (Turing/Ampere/Ada) -- s4 
mma.sync;
-                                 // dropped on sm_90+ (Hopper) where the s4 
imma
-                                 // path was removed.
+  bool int4MmaSupported;         // cc 7.5..8.9 (Turing/Ampere/Ada) + 12.1 
(GB10)
+                                 // -- s4 mma.sync; dropped on 
Hopper/datacenter
+                                 // Blackwell, re-added on consumer Blackwell 
GB10.
   bool int8MmaSparseSupported;   // cc >= 8.0 (Ampere+) -- mma.sp.s8 2:4 
sparsity
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-2.0.14/packaging/flatpak/AGENTS.md 
new/clpeak-2.0.16/packaging/flatpak/AGENTS.md
--- old/clpeak-2.0.14/packaging/flatpak/AGENTS.md       2026-06-23 
12:53:08.000000000 +0200
+++ new/clpeak-2.0.16/packaging/flatpak/AGENTS.md       2026-06-26 
07:07:02.000000000 +0200
@@ -11,6 +11,14 @@
 | `io.github.krrishnarraj.clpeak.yaml` | Flatpak manifest. Enables 
Vulkan+OpenCL+CPU only; builds `shaderc` (for `glslc`) and the OpenCL ICD 
loader, then clpeak pinned to a git tag+commit. |
 | `io.github.krrishnarraj.clpeak.metainfo.xml` | AppStream MetaInfo. 
`console-application` component — no `.desktop`/icon needed. |
 
+## Local Build
+
+```console
+flatpak run org.flatpak.Builder --force-clean --user --install build-dir 
packaging/flatpak/io.github.krrishnarraj.clpeak.yaml
+flatpak run io.github.krrishnarraj.clpeak --list-devices
+flatpak uninstall -y clpeak
+```
+
 ## Notes
 - App ID `io.github.krrishnarraj.clpeak` (Flathub form for GitHub-hosted 
projects).
 - The manifest pins clpeak to a release tag+commit; bump both on each release 
and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clpeak-2.0.14/packaging/flatpak/io.github.krrishnarraj.clpeak.metainfo.xml 
new/clpeak-2.0.16/packaging/flatpak/io.github.krrishnarraj.clpeak.metainfo.xml
--- 
old/clpeak-2.0.14/packaging/flatpak/io.github.krrishnarraj.clpeak.metainfo.xml  
    2026-06-23 12:53:08.000000000 +0200
+++ 
new/clpeak-2.0.16/packaging/flatpak/io.github.krrishnarraj.clpeak.metainfo.xml  
    2026-06-26 07:07:02.000000000 +0200
@@ -64,6 +64,7 @@
   <content_rating type="oars-1.1" />
 
   <releases>
+    <release version="2.0.14" date="2026-06-23" />
     <release version="2.0.13" date="2026-06-10" />
     <release version="2.0.12" date="2026-06-10" />
     <release version="2.0.11" date="2026-06-09" />
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clpeak-2.0.14/packaging/flatpak/io.github.krrishnarraj.clpeak.yaml 
new/clpeak-2.0.16/packaging/flatpak/io.github.krrishnarraj.clpeak.yaml
--- old/clpeak-2.0.14/packaging/flatpak/io.github.krrishnarraj.clpeak.yaml      
2026-06-23 12:53:08.000000000 +0200
+++ new/clpeak-2.0.16/packaging/flatpak/io.github.krrishnarraj.clpeak.yaml      
2026-06-26 07:07:02.000000000 +0200
@@ -90,22 +90,13 @@
       - -DCLPEAK_ENABLE_CUDA=OFF
       - -DCLPEAK_ENABLE_ROCM=OFF
       - -DCLPEAK_ENABLE_ONEAPI=OFF
-    # The in-tree `install(TARGETS clpeak RUNTIME DESTINATION .)` rule lands 
the
-    # binary at /app/clpeak and LICENSE at /app/LICENSE (kept flat for the
-    # release zips).  Relocate to the FHS layout Flatpak expects.
     post-install:
-      - install -Dm755 /app/clpeak /app/bin/clpeak
-      - rm -f /app/clpeak
-      - install -Dm644 /app/LICENSE 
/app/share/licenses/io.github.krrishnarraj.clpeak/LICENSE
-      - rm -f /app/LICENSE
-      - install -Dm644 io.github.krrishnarraj.clpeak.metainfo.xml
+      - install -Dm644 /app/share/clpeak/LICENSE 
/app/share/licenses/io.github.krrishnarraj.clpeak/LICENSE
+      - rm -f /app/share/clpeak/LICENSE
+      - install -Dm644 
packaging/flatpak/io.github.krrishnarraj.clpeak.metainfo.xml
           /app/share/metainfo/io.github.krrishnarraj.clpeak.metainfo.xml
     sources:
       - type: git
         url: https://github.com/krrishnarraj/clpeak.git
-        tag: '2.0.13'
-        commit: fc0325cb1860f6eea5da6802c39393578b91a79d
-      # The MetaInfo ships in the Flathub submission repo next to this manifest
-      # (tag 2.0.13 predates it), so it is pulled in as a separate file source.
-      - type: file
-        path: io.github.krrishnarraj.clpeak.metainfo.xml
+        tag: '2.0.15'
+        commit: 5d7b3da31023054c0d8aa7b354647141d85f47ee
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-2.0.14/packaging/homebrew/AGENTS.md 
new/clpeak-2.0.16/packaging/homebrew/AGENTS.md
--- old/clpeak-2.0.14/packaging/homebrew/AGENTS.md      2026-06-23 
12:53:08.000000000 +0200
+++ new/clpeak-2.0.16/packaging/homebrew/AGENTS.md      2026-06-26 
07:07:02.000000000 +0200
@@ -6,6 +6,18 @@
 |------|---------|
 | `clpeak.rb` | The formula. Builds via CMake; enables 
Metal/OpenCL/Vulkan(MoltenVK) on macOS and Vulkan/OpenCL/CPU on Linux. 
CUDA/ROCm/oneAPI are disabled (no vendor toolkits in Homebrew). |
 
+## Local Build
+
+```console
+brew tap-new local/clpeak
+cp packaging/homebrew/clpeak.rb "$(brew 
--repository)/Library/Taps/local/homebrew-clpeak/Formula/"
+brew install --build-from-source --verbose -y local/clpeak/clpeak
+brew test clpeak
+brew audit --strict --online local/clpeak/clpeak
+brew uninstall clpeak
+brew untap local/clpeak
+```
+
 ## Notes
 - Source is a **git URL pinned to `tag` + `revision`** (not a tarball) so
   `git describe` in `src/common/cmake/version.cmake` reports the real version.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-2.0.14/packaging/homebrew/clpeak.rb 
new/clpeak-2.0.16/packaging/homebrew/clpeak.rb
--- old/clpeak-2.0.14/packaging/homebrew/clpeak.rb      2026-06-23 
12:53:08.000000000 +0200
+++ new/clpeak-2.0.16/packaging/homebrew/clpeak.rb      2026-06-26 
07:07:02.000000000 +0200
@@ -1,10 +1,3 @@
-# Homebrew formula for clpeak — intended for Homebrew/homebrew-core.
-#
-# Copy this file to `Formula/c/clpeak.rb` in a homebrew-core PR (or a tap).
-# Bump `tag` + `revision` on every release; `revision` is the full commit SHA
-# the tag points at (git rev-parse <tag>).  Homebrew CI appends the `bottle do`
-# block — do not add it by hand.
-#
 # Why a git URL instead of a release tarball: clpeak derives its version from
 # `git describe` (src/common/cmake/version.cmake).  A GitHub source tarball has
 # no .git, so the build would fall back to a stale hardcoded version.  Passing
@@ -13,8 +6,8 @@
   desc "Benchmark to measure peak compute, bandwidth, and latency of GPU/CPU 
devices"
   homepage "https://github.com/krrishnarraj/clpeak";
   url "https://github.com/krrishnarraj/clpeak.git";,
-      tag:      "2.0.13",
-      revision: "fc0325cb1860f6eea5da6802c39393578b91a79d"
+      tag:      "2.0.15",
+      revision: "5d7b3da31023054c0d8aa7b354647141d85f47ee"
   license "Apache-2.0"
   head "https://github.com/krrishnarraj/clpeak.git";, branch: "master"
 
@@ -57,7 +50,7 @@
     # Build with clang for the CPU-backend codegen.  macOS already uses
     # AppleClang; on Linux point CMake at the brewed LLVM clang explicitly.
     if OS.linux?
-      llvm = Formula["llvm"].opt_bin
+      llvm = formula_opt_bin("llvm")
       args << "-DCMAKE_C_COMPILER=#{llvm}/clang"
       args << "-DCMAKE_CXX_COMPILER=#{llvm}/clang++"
     end
@@ -65,9 +58,7 @@
     system "cmake", "-S", ".", "-B", "build", "-G", "Ninja",
                     "-DCMAKE_BUILD_TYPE=Release", *args, *std_cmake_args
     system "cmake", "--build", "build"
-    # The in-tree install rule keeps a flat layout for the release zips; 
install
-    # the binary into Homebrew's bin/ directly instead.
-    bin.install "build/clpeak"
+    system "cmake", "--install", "build"
   end
 
   test do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-2.0.14/snap/snapcraft.yaml 
new/clpeak-2.0.16/snap/snapcraft.yaml
--- old/clpeak-2.0.14/snap/snapcraft.yaml       2026-06-23 12:53:08.000000000 
+0200
+++ new/clpeak-2.0.16/snap/snapcraft.yaml       2026-06-26 07:07:02.000000000 
+0200
@@ -20,7 +20,7 @@
 
 apps:
   clpeak:
-    command: usr/local/clpeak
+    command: usr/local/bin/clpeak
 
 parts:
   clpeak:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-2.0.14/src/common/CMakeLists.txt 
new/clpeak-2.0.16/src/common/CMakeLists.txt
--- old/clpeak-2.0.14/src/common/CMakeLists.txt 2026-06-23 12:53:08.000000000 
+0200
+++ new/clpeak-2.0.16/src/common/CMakeLists.txt 2026-06-26 07:07:02.000000000 
+0200
@@ -15,7 +15,6 @@
     ${CMAKE_CURRENT_LIST_DIR}/../../include
     ${CMAKE_CURRENT_LIST_DIR}/../../include/common
 )
-target_compile_features(peak_common PUBLIC cxx_std_11)
 if(MSVC)
     # Covers clang-cl too: -fPIC is meaningless on Windows (warns), and
     # clang-cl aliases -Wall to MSVC /Wall (≈ -Weverything spam), so route the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-2.0.14/src/cpu/CMakeLists.txt 
new/clpeak-2.0.16/src/cpu/CMakeLists.txt
--- old/clpeak-2.0.14/src/cpu/CMakeLists.txt    2026-06-23 12:53:08.000000000 
+0200
+++ new/clpeak-2.0.16/src/cpu/CMakeLists.txt    2026-06-26 07:07:02.000000000 
+0200
@@ -51,7 +51,6 @@
 endif()
 target_include_directories(peak_cpu PUBLIC  
${CMAKE_CURRENT_LIST_DIR}/../../include)
 target_include_directories(peak_cpu PRIVATE ${CMAKE_CURRENT_LIST_DIR})
-target_compile_features(peak_cpu PRIVATE cxx_std_17)
 target_compile_definitions(peak_cpu    PRIVATE ENABLE_CPU)
 target_compile_definitions(peak_common PRIVATE ENABLE_CPU)
 
@@ -116,7 +115,6 @@
     add_library(${_t} OBJECT ${CMAKE_CURRENT_LIST_DIR}/cpu_kernels_tu.cpp)
     target_include_directories(${_t} PRIVATE
         ${CMAKE_CURRENT_LIST_DIR}/../../include ${CMAKE_CURRENT_LIST_DIR})
-    target_compile_features(${_t} PRIVATE cxx_std_17)
     target_compile_definitions(${_t} PRIVATE ENABLE_CPU CLPEAK_ISA_TAG=${tag} 
${CLPEAK_CPU_TU_DEFS})
     target_compile_options(${_t} PRIVATE ${CLPEAK_CPU_OPT} ${ARGN})
     target_link_libraries(peak_cpu PRIVATE ${_t})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-2.0.14/src/cuda/CMakeLists.txt 
new/clpeak-2.0.16/src/cuda/CMakeLists.txt
--- old/clpeak-2.0.14/src/cuda/CMakeLists.txt   2026-06-23 12:53:08.000000000 
+0200
+++ new/clpeak-2.0.16/src/cuda/CMakeLists.txt   2026-06-26 07:07:02.000000000 
+0200
@@ -60,7 +60,7 @@
 # Kernels are grouped by the compute capabilities they are valid for so nvcc is
 # never asked to target an arch a kernel cannot build for (e.g. fp8 < sm_89,
 # int4 removed on sm_90+, fp4 only on sm_120a).
-set(CLPEAK_CUDA_ARCHS "70;75;80;86;89;90;100;120" CACHE STRING
+set(CLPEAK_CUDA_ARCHS "70;75;80;86;89;90;100;103;110;120;121" CACHE STRING
     "CUDA compute capabilities to bake into the fatbins (ascending)")
 
 include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/EmbedCudaKernels.cmake)
@@ -75,8 +75,10 @@
 embed_cuda_kernels(TARGET peak_cuda MASTER_ARCHS "${CLPEAK_CUDA_ARCHS}" 
MIN_ARCH 72
     KERNELS wmma_int8)
 
-# INT4 mma.sync -- sm_75..sm_89 only (removed on Hopper+).
-embed_cuda_kernels(TARGET peak_cuda MASTER_ARCHS "${CLPEAK_CUDA_ARCHS}" 
MIN_ARCH 75 MAX_ARCH 89
+# INT4 mma.sync -- sm_75..sm_89, removed on Hopper/datacenter Blackwell, but
+# re-added on consumer Blackwell sm_121 (GB10); hence the explicit EXTRA_ARCHS
+# after the MAX_ARCH 89 cutoff. (sm_120 not yet listed -- needs verification.)
+embed_cuda_kernels(TARGET peak_cuda MASTER_ARCHS "${CLPEAK_CUDA_ARCHS}" 
MIN_ARCH 75 MAX_ARCH 89 EXTRA_ARCHS "121"
     KERNELS wmma_int4)
 
 # Ampere+ tensor cores: bf16 / tf32 / fp64 / int8 m16n8k32 + int8 2:4 sparse
@@ -88,8 +90,10 @@
 embed_cuda_kernels(TARGET peak_cuda MASTER_ARCHS "${CLPEAK_CUDA_ARCHS}" 
MIN_ARCH 89
     KERNELS wmma_fp8_e4m3 wmma_fp8_e5m2)
 
-# FP4 / MXFP4 / NVFP4 mma.sync (dense + 2:4 sparse) -- Blackwell sm_120a.
+# FP4 / MXFP4 / NVFP4 mma.sync (dense + 2:4 sparse) -- consumer Blackwell
+# sm_120a (RTX 50) and sm_121a (GB10). Datacenter Blackwell (sm_100a/103a) uses
+# the tcgen05 path instead and is not covered by these mma.sync kernels.
 embed_cuda_kernels(TARGET peak_cuda MASTER_ARCHS "${CLPEAK_CUDA_ARCHS}" 
MIN_ARCH 999
-    EXTRA_ARCHS "120a"
+    EXTRA_ARCHS "120a;121a"
     KERNELS wmma_fp4_e2m1 wmma_mxf4_e2m1 wmma_nvf4_e2m1
             wmma_mxf4_sparse wmma_nvf4_sparse)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-2.0.14/src/cuda/cuda_blas.cpp 
new/clpeak-2.0.16/src/cuda/cuda_blas.cpp
--- old/clpeak-2.0.14/src/cuda/cuda_blas.cpp    2026-06-23 12:53:08.000000000 
+0200
+++ new/clpeak-2.0.16/src/cuda/cuda_blas.cpp    2026-06-26 07:07:02.000000000 
+0200
@@ -614,9 +614,12 @@
 
         // mxfp4 / nvfp4: block-scaled 4-bit GEMM on Blackwell tensor cores.
         // Same dtypes the wmma microbench measures (mxf4_e2m1 / nvf4_e2m1), so
-        // the cublas-fp rows line up against the wmma rows.
+        // the cublas-fp rows line up against the wmma rows.  Gated on
+        // fp4GemmSupported (all Blackwell) rather than fp4MmaSupported (the
+        // consumer-only raw-mma microbench): the library FP4 path runs on
+        // datacenter sm_100/103 as well, and self-skips where it can't.
 #if defined(CLPEAK_CUBLASLT_HAS_FP4)
-        if (dev.info.fp4MmaSupported)
+        if (dev.info.fp4GemmSupported)
         {
             // 0x7F = 1.0 in UE8M0 (exponent-only, bias 127);
             // 0x38 = 1.0 in UE4M3 (e4m3, bias 7).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-2.0.14/src/cuda/cuda_device.cpp 
new/clpeak-2.0.16/src/cuda/cuda_device.cpp
--- old/clpeak-2.0.14/src/cuda/cuda_device.cpp  2026-06-23 12:53:08.000000000 
+0200
+++ new/clpeak-2.0.16/src/cuda/cuda_device.cpp  2026-06-26 07:07:02.000000000 
+0200
@@ -86,15 +86,21 @@
   info.fp8MmaSupported = (info.major >= 9) || (info.major == 8 && info.minor 
>= 9);
   info.fp4MmaSupported = (info.major >= 12);
   info.fp4MmaSparseSupported = (info.major >= 12);
+  // Block-scaled FP4 GEMM via cuBLASLt exists across the whole Blackwell line
+  // (datacenter sm_100/103 + consumer sm_120/121), unlike the raw mma.sync FP4
+  // microbench which is consumer-only.  cuBLASLt returns 0 heuristics where it
+  // can't actually run, so this gate only decides whether we *attempt* it.
+  info.fp4GemmSupported = (info.major >= 10);
   info.tf32GemmSupported = (info.major >= 8);
   info.int8GemmSupported = (info.major > 7) || (info.major == 7 && info.minor 
>= 5);
   info.int4GemmSupported = (info.major >= 9);
   info.dpTensorSupported = (info.major >= 8);
   // s4 mma.sync was added on Turing (sm_75), kept on Ampere/Ada, removed on
-  // Hopper+ (sm_90+).  Allow 7.5..8.9 inclusive.
+  // Hopper and datacenter Blackwell, but re-added on consumer Blackwell GB10
+  // (sm_121).  Allow 7.5..8.9 inclusive, plus 12.1.
   {
     int cc = info.major * 10 + info.minor;
-    info.int4MmaSupported = (cc >= 75) && (cc <= 89);
+    info.int4MmaSupported = ((cc >= 75) && (cc <= 89)) || (cc == 121);
   }
   info.int8MmaSparseSupported = (info.major >= 8);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-2.0.14/src/oneapi/CMakeLists.txt 
new/clpeak-2.0.16/src/oneapi/CMakeLists.txt
--- old/clpeak-2.0.14/src/oneapi/CMakeLists.txt 2026-06-23 12:53:08.000000000 
+0200
+++ new/clpeak-2.0.16/src/oneapi/CMakeLists.txt 2026-06-26 07:07:02.000000000 
+0200
@@ -21,7 +21,6 @@
 target_include_directories(peak_oneapi PUBLIC
     ${CMAKE_CURRENT_LIST_DIR}/../../include
 )
-target_compile_features(peak_oneapi PRIVATE cxx_std_17)
 target_compile_definitions(peak_oneapi PRIVATE ENABLE_ONEAPI)
 target_compile_definitions(peak_common  PRIVATE ENABLE_ONEAPI)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clpeak-2.0.14/src/rocm/CMakeLists.txt 
new/clpeak-2.0.16/src/rocm/CMakeLists.txt
--- old/clpeak-2.0.14/src/rocm/CMakeLists.txt   2026-06-23 12:53:08.000000000 
+0200
+++ new/clpeak-2.0.16/src/rocm/CMakeLists.txt   2026-06-26 07:07:02.000000000 
+0200
@@ -38,7 +38,6 @@
 target_include_directories(peak_rocm PUBLIC
     ${CMAKE_CURRENT_LIST_DIR}/../../include
 )
-target_compile_features(peak_rocm PRIVATE cxx_std_14)
 
 set(_clpeak_rocm_inc "/opt/rocm/include")
 if(TARGET hip::host)

Reply via email to