Release Notes#
cuBLASMp v0.11.0#
Released: October 28, 2026
New features#
Added device-side
alpha/betasupport for cublasMpMatmul via theCUBLASMP_MATMUL_DESCRIPTOR_ATTRIBUTE_POINTER_MODEattribute (cublasMpPointerMode_t). InCUBLASMP_POINTER_MODE_DEVICEthealphaandbetascalars are read from device memory on the stream, avoiding a device-to-host copy and synchronization when they are produced by a preceding GPU kernel. Device pointer mode supports null C, including mixed C/D types, and ignores beta in that case. The handle must outlive captured graphs that use device pointer mode. Explicit FUSED Matmul + AllReduce requests returnCUBLASMP_STATUS_NOT_SUPPORTEDin device pointer mode.Added GB300 (Compute Capability 10.3) support for fused Matmul + AllReduce.
AllGather + cublasMpMatmul now leaves the gathered B at the start of the device workspace, followed by the gathered B scale tensors when B uses block or vector scaling. Applications can reuse the gathered operand in later operations instead of gathering it again; see Reusing the Gathered B.
FP8 cublasMpMatmul for regular 2D block-cyclic layouts in which no single process holds all of sub(A), sub(B), sub(C), and sub(D) now supports FP8 D, the AMAX of D, every combination of
TRANSAandTRANSB, and matrix dimensions, block sizes, and submatrix offsets that are not multiples of 16, with the default algorithm, the default epilogue, and scalar or no scaling factors.
Performance improvements#
Improved performance of cublasMpMatmul and cublasMpGemm for regular 2D block-cyclic layouts in which one input matrix is much larger than the output, such as
nmuch smaller thanmandk. Results of these calls can differ from earlier releases in the last bits because of a different summation order, and the workspace size returned by the corresponding_bufferSizefunction can be larger.Improved performance of cublasMpMatmul and cublasMpGemm for regular 2D block-cyclic layouts in which A or B uses a different process-grid mapping than C, and for complex inputs with one transposed and one conjugate-transposed operand.
Removed redundant device-to-device output staging from cublasMpTradd diagonal updates.
Improved performance of cublasMpMatmul and cublasMpGemm for regular 2D block-cyclic layouts with more than one block of the inner dimension. The workspace size returned by the corresponding
_bufferSizefunction can be larger.Improved performance of FP8 cublasMpMatmul for regular 2D block-cyclic layouts in which no single process holds all of sub(A), sub(B), sub(C), and sub(D). Results of these calls can differ from earlier releases, because partial sums are no longer rounded to the type of D before the final result, and the workspace size returned by cublasMpMatmul_bufferSize can be larger.
Improved performance of Matmul + ReduceScatter and Matmul + AllReduce, most with the default epilogue and scalar or no C and D scaling factors, and of FP8 cublasMpMatmul for regular 2D block-cyclic layouts in which no single process holds all of sub(A), sub(B), sub(C), and sub(D).
Bug fixes#
Fixed GELU AUX-AMAX in Matmul + ReduceScatter and Matmul + AllReduce to report the maximum before AUX scaling, matching cuBLASLt.
Fixed incorrect results of FP8 cublasMpMatmul with A, B, or C scaling factors for regular 2D block-cyclic layouts in which no single process holds all of sub(A), sub(B), sub(C), and sub(D). The bug existed in 0.10.0.
Fixed FP8 cublasMpMatmul for regular 2D block-cyclic layouts in which no single process holds all of sub(A), sub(B), sub(C), and sub(D) hanging, or failing on only some ranks, for example with the
NTformat or with dimensions that are not multiples of 16. Such configurations are now supported (see New features), and the remaining unsupported ones, such as type combinations that cuBLASLt does not support, returnCUBLASMP_STATUS_NOT_SUPPORTEDon every rank. The bug existed in 0.10.0.Fixed cublasMpMatmul and cublasMpGemm with a transposed or conjugate-transposed input, and cublasMpGeadd with a transposition, returning
CUBLASMP_STATUS_NOT_SUPPORTEDon a rank that passed null pointers for matrices it holds no elements of, while the other ranks succeeded. Matmul and GEMM could hang when that rank held part of the output. The bug existed in 0.10.0.Fixed cublasMpSetStream reading freed memory when the previously bound stream had been destroyed after its work completed: the same-context validation interrogated the previous stream instead of the handle’s CUDA context, which could crash or silently read stale memory depending on heap reuse. The previously bound stream is no longer accessed when rebinding, and cublasMpCreate now rejects a stream from a different CUDA context with
CUBLASMP_STATUS_INVALID_VALUE. The bug existed in all previous versions with this API (0.3.0 and later).Fixed incorrect or non-finite results in Hopper FP8 fused Matmul + AllReduce with VEC128/VEC128, VEC128/BLK128x128, or BLK128x128/VEC128 input scaling.
Fixed cublasMpTradd to bound lower-triangular diagonal-tile accesses by the actual column count on rectangular tail tiles.
Fixed cublasMpTradd to skip empty off-diagonal updates after partial final diagonal tiles instead of passing nonpositive extents to cublasMpGeadd.
Fixed multicast Matmul reductions with non-16-byte-aligned internal chunks to reject explicit multicast requests and use a safe fallback when the default algorithm is selected.
Fixed explicit Matmul algorithm requests to return
CUBLASMP_STATUS_NOT_SUPPORTEDinstead of silently using another implementation when the requested algorithm is unavailable.Fixed incorrect VEC16, VEC32, VEC128, and BLK128x128 matrix B scale-tensor slicing in split Matmul + ReduceScatter and Matmul + AllReduce algorithms. Explicit split requests now accept independently padded cuBLASLt B-scale chunks for VEC16/VEC32/VEC128, supporting partial 128-column pages and multiple local VEC128 K blocks without extra library workspace. Such callers must supply the new chunk-packed layout with one chunk per rank for both operations, independent of AllReduce split-count environment tuning; DEFAULT and NO_OVERLAP keep the full rank-local scale layout. BLK128x128 split restrictions remain unchanged.
Removed unnecessary B-scale column-chunk restrictions from deprecated atomic Matmul + ReduceScatter, which uses one full-matrix GEMM rather than independent per-chunk GEMMs.
Fixed 2D block-cyclic Matmul workspace sizing for transposed operands with rectangular matrix block sizes.
Fixed B-scale chunk offsets when the default split Matmul algorithm operates on a submatrix of a wider B descriptor.
Fixed no-overlap Matmul + ReduceScatter to use the requested GEMM dimensions with oversized A/B descriptors.
Fixed cublasMpMatmul computing incorrect results and writing outside sub(D) when a submatrix ends within a block of a larger matrix, for regular 2D block-cyclic layouts in which A or B uses a different process-grid mapping than C, for complex inputs with one transposed and one conjugate-transposed operand, and for FP8 inputs. The bug existed in 0.10.0.
Fixed FP8/FP4 Matmul auxiliary-buffer type handling so all algorithm families follow the loaded cuBLASLt version’s default when
EPILOGUE_AUX_DATA_TYPEis unset, without constraining epilogues that do not use an auxiliary buffer. As in cuBLASLt, a non-bitmask auxiliary epilogue is unsupported when the resolved auxiliary type isCUDA_R_16BFand CType isCUDA_R_16F; users can select an explicitly supported auxiliary type instead. ReLU bit-mask epilogues now reject auxiliary data types other thanCUDA_R_8U.Fixed Matmul + AllReduce and Matmul + ReduceScatter post-processing for outputs with more than 1,048,560 local columns.
cuBLASMp v0.10.0#
Released: July 13, 2026
New features#
Added
CUBLASMP_MATMUL_ALGO_TYPE_FUSEDfor Matmul + AllReduce on supported NVSwitch systems.Added single-process multi-GPU (SPMG) support (CUDA 13+), allowing one host process to drive multiple GPUs.
Performance improvements#
Improved performance of cublasMpMatmul, including Matmul + AllReduce, Matmul + ReduceScatter, and general 2D block-cyclic layouts.
Improved performance of ReLU epilogues with auxiliary output.
Bug fixes#
Fixed correctness issues in cublasMpMatmul, including conjugate-transposed operands,
beta == 0handling, block scaling, and bias-gradient epilogues in Matmul + AllReduce.Fixed cublasMpMatmul support for regular 2D block-cyclic inputs whose descriptors use distinct grid objects with the same process-grid mapping.
Fixed the fallback P2P Matmul path to accept A/B descriptors on same-parent grids with different process-grid mappings when C/D output tiles are co-located.
Fixed correctness issues in symmetric/Hermitian rank-k routines, triangular routines, matrix redistribution, and matrix-add routines across complex scalars, empty-k updates, small blocks, large matrices, and sub-matrix edge cases.
Improved workspace size reporting and workspace validation across several APIs.
Improved validation and error reporting across the library so unsupported inputs and internal failures return error statuses more consistently.
cuBLASMp v0.9.1#
Released: June 4, 2026
New features#
cublasMpTrsm supports more flexible sub-matrix inputs, including non-tile-aligned offsets and independent A/B block sizes.
cublasMpMatmul has improved performance for additional matrix layouts that previously used a slower fallback implementation.
cublasMpGeadd has improved performance and lower workspace requirements for redistribution cases.
Bug fixes#
Fixed correctness issues for operations on embedded sub-matrices in cublasMpTrsm, symmetric/Hermitian rank-k routines, cublasMpTrmm, and cublasMpSymm.
Fixed edge-case correctness and validation issues in cublasMpMatmul, including null C inputs with
beta == 0.Fixed cublasMpGeadd and cublasMpTradd edge cases involving in-place operation and non-square block sizes.
Improved input validation across several APIs so invalid arguments return
CUBLASMP_STATUS_INVALID_VALUEmore consistently.
cuBLASMp v0.9.0#
Released: May 12, 2026
New features#
Added FP64 fixed-point emulation support (requires CTK 13.0.2+). New APIs: cublasMpSetFixedPointEmulationMantissaControl, cublasMpSetFixedPointEmulationMaxMantissaBitCount, cublasMpSetFixedPointEmulationMantissaBitOffset, cublasMpSetEmulationSpecialValuesSupport, cublasMpSetFixedPointEmulationMantissaBitCountPointer, and their corresponding getters.
Added cublasMpSyr2k for distributed symmetric rank-2k update (SYR2K).
Added cublasMpSyrkx for distributed extended symmetric rank-k update (SYRKX).
Added cublasMpSymm for distributed symmetric matrix-matrix multiply (SYMM).
Added cublasMpHerk for distributed Hermitian rank-k update (HERK).
Added cublasMpHer2k for distributed Hermitian rank-2k update (HER2K).
Added cublasMpHerkx for distributed extended Hermitian rank-k update (HERKX).
Added cublasMpHemm for distributed Hermitian matrix-matrix multiply (HEMM).
Added cublasMpTrmm for distributed triangular matrix-matrix multiply (TRMM).
Added COMMUNICATION_TYPE support to Matmul + AllReduce.
Added
d_out_scalesupport for Matmul + AllReduce.Improved performance of cublasMpSyrk.
Improved performance of cublasMpTrsm.
Bug fixes#
Fixed incorrect
beta * Cresults in Matmul + AllReduce whenbeta != 0.Fixed epilogue correctness in Matmul + AllReduce.
cuBLASMp v0.8.1#
Released: March 24, 2026
New features#
Added COMMUNICATION_TYPE support to all Matmul + ReduceScatter variants.
Added
d_out_scalesupport for all Matmul + ReduceScatter variants.Added FP4 output support to Matmul + ReduceScatter with the
NO_OVERLAPalgorithm.Added DRELU and DRELU_BGRAD epilogues support to AllGather + Matmul, Matmul + ReduceScatter, and Matmul + AllReduce variants.
Reduced workspace size required for Matmul + AllReduce.
Bug fixes#
Fixed Vec16/Vec32 scale tensor layout in Matmul + ReduceScatter and Matmul + AllReduce.
Fixed epilogue accuracy issue in Matmul + ReduceScatter when using FP4/FP8 output and communication type.
cuBLASMp v0.8.0#
Released: February 9, 2026
New features#
Replaced NVSHMEM with NCCL Symmetric Memory.
Added cublasMpGetStatusString API to get the status string of a given cublasMpStatus_t.
Added cublasMpBufferRegister and cublasMpBufferDeregister APIs for registering workspace buffers with NCCL symmetric memory. These APIs support buffers allocated with ncclMemAlloc, CUDA Virtual Memory Management (VMM), or other VMM-compatible CUDA memory allocation functions.
Added cublasMpMalloc and cublasMpFree convenience APIs that combine memory allocation with buffer registration.
Added CUBLASMP_MATMUL_DESCRIPTOR_ATTRIBUTE_COMMUNICATION_TYPE to allow setting the communication type. Currently relevant only for Matmul + ReduceScatter with SPLIT_P2P algorithm.
Added CUBLASMP_MATMUL_DESCRIPTOR_ATTRIBUTE_BIAS_RESULT_SCHEME to control the bias gradient result scheme for the Matmul + ReduceScatter operation. See cublasMpResultScheme_t for supported values.
Breaking changes#
Removed NVSHMEM support. Users should migrate to NCCL symmetric memory using the new buffer registration APIs (cublasMpBufferRegister, cublasMpBufferDeregister) or the convenience functions (cublasMpMalloc, cublasMpFree).
Renamed
cublasMpStreamSetAPI tocublasMpSetStream.Renamed
cublasMpStreamGetAPI tocublasMpGetStream.Renamed
cublasMpMatmulDescriptorAttributeSetAPI tocublasMpMatmulDescriptorSetAttribute.Renamed
cublasMpMatmulDescriptorAttributeGetAPI tocublasMpMatmulDescriptorGetAttribute.
Bug fixes#
Fixed AMAX_D output to be pre-quantization.
Fixed an issue that the auxiliary buffer had to be initialized with zeros by the users.
cuBLASMp v0.7.0#
Released: November 24, 2025
New features#
Added FP32 emulation support.
Added FP4 output support.
Added
CUBLASMP_MATMUL_ALGO_TYPE_NO_OVERLAPalgorithm type for cublasMpMatmul API. These algorithms may perform better on non-NVLINK multi-node systems.Added
CUBLASMP_DISABLE_NVSHMEMenvironment variable to disable NVSHMEM usage at runtime. When set to 1, cuBLASMp will not initialize or use NVSHMEM, which can be useful for debugging or on platforms where NVSHMEM is not supported.
Bug fixes#
Fixed epilogue related issues in AllGather + Matmul and Matmul + ReduceScatter.
Fixed a bug that prevented NVSHMEM from being finalized.
cuBLASMp v0.6.0#
Released: September 9, 2025
Added NVFP4 support (Compute Capability 10.0+).
Added support for block scaling for cublasMpMatmul API with FP4 and FP8 inputs (Compute Capability 9.0+). It can be used via cublasMpMatmulDescriptorSetAttribute (see cublasMpMatmulDescriptorAttribute_t and cublasMpMatmulMatrixScale_t).
Added support for Compute Capability 7.5 (Turing) with CUDA 13 builds.
Bug fixes#
Fixed redistribution functions (cublasMpGemr2D, cublasMpTrmr2D) to work with unified memory.
Fixed Matmul when C matrix is nullptr and D matrix type is BF16 or FP32.
Fixed a bug in multicast-based algorithms when used with communicator different from the one used for initialization.
cuBLASMp v0.5.1#
Released: August 11, 2025
Added support for CUDA 13 on devices with Compute Capability 8.0 (Ampere) and above.
cuBLASMp v0.5.0#
Released: June 16, 2025
Breaking changes#
- cuBLASMp has transitioned from using the Communication Abstraction Library (libcal) to using NCCL directly. This is a breaking change and requires changes to cuBLASMp initialization in the user application.
See Migrating from CAL to NCCL for steps to transition the application from libcal to NCCL.
The steps to initialize cuBLASMp with NCCL are described in NCCL Initialization.
libcal documentation page is still available at CAL Initialization (Legacy) but it is only applicable to cuBLASMp versions older than 0.5.0.
New features#
Added support for NT and TT cases in AllGather + Matmul and Matmul + ReduceScatter variants of the cublasMpMatmul API.
Added support for epilogues in the cublasMpMatmul API. See cublasMpMatmulEpilogue_t for more details. Epilogues can be set using cublasMpMatmulDescriptorSetAttribute.
Added support for tensor-wide scaling for cublasMpMatmul API with FP8 inputs (Compute Capability 9.0+). It can be used via cublasMpMatmulDescriptorSetAttribute (see cublasMpMatmulDescriptorAttribute_t and cublasMpMatmulMatrixScale_t).
cuBLASMp v0.4.0#
Released: March 10, 2025
Added support for NVIDIA Blackwell GPU architecture.
Added support for Matmul + AllReduce using the cublasMpMatmul API.
Added support for NN cases in AllGather + Matmul and Matmul + ReduceScatter variants of the cublasMpMatmul API.
Bug fixes.
Deprecated functionality: atomic Matmul with multicast communication (i.e., cublasMpMatmul with cublasMpMatmulAlgoType_t = CUBLASMP_MATMUL_ALGO_TYPE_ATOMIC_MULTICAST). The functional implementation remains available but it is not performant and will be removed in a future release.
cuBLASMp v0.3.1#
Released: December 10, 2024
Add option to set the amount of SMs to be used for communication (currently relevant only for Atomic Matmul + ReduceScatter).
Decrease workspace size requirement in TP overlap Matmuls.
Remove extra synchronization in TP overlap Matmuls.
Allow C matrix to be null when beta is 0.
Fix GEMM implementation for complex types with
transA/transBbeingCUBLAS_OP_T.
cuBLASMp v0.3.0#
Released: November 4, 2024
Added new cublasMpMatmul API.
Added Matmul fast paths required for tensor parallelism (communication-computation-overlapped AllGather + Matmul and Matmul + ReduceScatter).
Added FP8 support.
Added cublasMpStatus_t.
Added cublasMpSetStream and cublasMpGetStream.
Added cublasMpMatrixDescriptorInit API to allow reusing matrix descriptors.
Added NVSHMEM dependency.
Added Matmul helper APIs: cublasMpMatmulDescriptorCreate, cublasMpMatmulDescriptorDestroy, cublasMpMatmulDescriptorSetAttribute, cublasMpMatmulDescriptorGetAttribute.
Dropped support for CUDA 11.x.
Bug fixes.
Breaking changes#
Removed the cublasMpHandle_t parameter from cublasMpGridCreate, cublasMpGridDestroy, cublasMpMatrixDescriptorCreate, cublasMpMatrixDescriptorDestroy, cublasMpGetVersion APIs.
Changed the return status of all functions to cublasMpStatus_t.
Removed
cublasMpSetMathModeandcublasMpGetMathModeAPIs.
cuBLASMp v0.2.1#
Released: May 29, 2024
Added mixed and lower precision support.
Bug fixes.
cuBLASMp v0.2.0#
Released: April 4, 2024
Improved performance of cublasMpGemm.
Bug fixes.
cuBLASMp v0.1.2#
Released: February 22, 2024
Added cublasMpGeadd.
Added cublasMpTradd.
Improved performance of cublasMpGemm.
Improved performance of cublasMpTrsm.
cuBLASMp v0.1.1#
Released: January 11, 2024
Added
rsrcandcsrcsupport.Added cublasMpGemr2D.
Added cublasMpTrmr2D.
cuBLASMp v0.1.0#
Released: December 11, 2023
Early access release.
This release focuses on functionality.