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)
