SDK release note
PPU SDK v1.4.3-hotfix release notes
1. Main features and bug fixes
Adds support for VLLM 0.7.3 and SGLang 0.4.3, improving Deepseek-V3/R1 inference performance.
Initially optimized the Deepseek-V3/R1 MLA kernel (on single-node VLLM, compared to v1.4.2), delivering:
Average throughput increase of 27.69%
Average Time to First Token (TTFT) reduction of 8.14%
Average Time Per Output Token (TPOT) reduction of 29.99%
Enabled multi-node CUDA Graph functionality.
Fixed an error where torch.nn.functional.conv2d returned: "GET was unable to find an engine to execute this computation".
Fixed a memory leak in pccl send/recv calls that occurred in scenarios such as using MoE models or pipeline parallel for large model training and inference.
2. Known issues
The operator library has a corner case where Gemm computations using FP32 tensor cores may produce incorrect results. A fix is scheduled for the next release.
PPU SDK v1.4.2 release notes
1. Main features and bug fixes
Added support for Ubuntu 24.04.
Added support for VLLM 0.7.2 and SGLang 0.4.2, improving support for Deepseek-V3, Deepseek-R1, and Qwen2.5-Max.
Fixed a hang in the custom allreduce kernel that occurred when VLLM loaded LoRA with tensor parallelism enabled.
Fixed an issue preventing the PPU from functioning correctly in a container with the
SYS_ADMINpermission.
2. Known issues
Computing library: In the operator library, a corner case in Gemm computations using FP32 tensor cores can produce incorrect results. A fix is planned for the next version.
The cross-node CUDA Graph feature has known issues in this version. A fix is planned for the next version.
PPU SDK v1.4.1 release notes
1. Main features and bug fixes
User-mode driver/runtime
Added basic texture support.
Fixed a hang that occurred when the
HGGC_AUTO_DISPATCH_BARRIERenvironment variable was enabled.Fixed a bug that prevented
ppu-smifrom displaying the process list for device 0 when using PPU SDK v1.4 with KMD driver versions earlier than v1.4.
Compute library
Added support for the following acsolver interfaces: Xgetrf, Xgetrs, Spotrf, Dpotrf, Spotrs, and Dpotrs.
Fixed an error in gemm computations where excessively large m-dimensions caused
grid.y > 65536.
Communication library
Optimized allreduce performance for small, latency-sensitive scenarios on single-node systems. The
ext-kernel pluginis now enabled by default.Optimized the
topo graph searchlogic on multi-node Zhenwu 810E clusters, fixing a performance regression for key operators caused by device id changes.Enhanced the PcclStateMonitor feature to ensure it has no performance impact on operators when disabled.
Fixed a potential conflict between memory initialization during the
send/recv preconnectphase and kernel execution.pccl perf tools:
Added support for new operators, including
scatter/gather/sendrecv/hypercube.Added the
-aparameter to select the statistical method for operator timing from AVG, MIN, or MAX.Added support for
NCCL_TESTS_SPLIT_MASK.
Image preprocessing
Added support for DALI 1.20 (CUDA 11.6 and earlier).
Added support for DALI 1.44 (CUDA 11.8 and later).
2. Known issues
Compute library: In certain corner cases, gemm computations using an FP32 tensor core may produce incorrect results. This issue is scheduled to be fixed in the next minor release.
PPU SDK v1.4 release notes
1. Version overview
1.1 Software stack

1.2 Core components
Component | Description |
Firmware | PPU firmware |
KMD | PPU kernel driver |
UMD / HGGC | PPU user-mode driver and runtime |
Compiler | PPU compiler toolchain |
Acompute | PPU compute acceleration library |
Acext | PPU quantization acceleration library |
PCCL | PPU interconnection acceleration library |
PPU SMI | PPU device management tool |
PPU DCGM | PPU online monitoring tool |
Asight System | PPU performance analysis tool |
Asight Compute | PPU performance analysis tool |
PPU GDB | PPU debugging tool |
PPU MemCheck | PPU Sanitizer tool |
PPU hgobjdump | PPU device binary tool |
CUDA SDK Wrapper | CUDA API compatibility library |
1.3 Key features
1.3.1 Firmware
Supports installation from binary packages (RPM or DEB).
Supports dynamic power management. By default, the PPU firmware dynamically adjusts the core frequency (from 200 MHz to the maximum operating frequency) and voltage based on real-time workload, temperature, and power consumption.
Supports PPU frequency locking. For more information, see Device Management Tool PPU-SMI.
Supports secure firmware signing and a dual-backup mechanism to ensure firmware integrity and reliability.
Supports firmware upgrades for the power management chip.
Supports out-of-band management through a Baseboard Management Controller (BMC), including device status monitoring and out-of-band firmware upgrades.
1.3.2 Kernel driver
Supports installation from binary packages (RPM or DEB) and a runfile package.
The kernel driver is decoupled from the PPU SDK, allowing versions released after v1.0 to be used with any PPU SDK version.
Supports flexible machine configurations, including single-node single-card, single-node 8-card/16-card (ICN interconnect), multi-node multi-card (ICN interconnect), and multi-node multi-card (GDR). Using the GDR feature requires that the
alixpu-peermemkernel module, which is released with the PPU kernel driver, is installed.Supports PPU fault reporting and handling.
Includes an
auto-resetfeature that automatically resets the PPU device upon detecting akill overtimeorcp invalid cmderror, enabling automatic recovery. This feature is enabled by default, and its status can be queried or disabled using ppu-smi.Supports Multi-Pipe Service (MPS), which you can enable or disable by running
ppudbg --config_submit_mode 1/0.Supports mixed-workload scenarios with both small and large models in MPS mode.
Supports the collection of NVML Generic Performance Metrics (GPM), including SM utilization, SM occupancy, tensor core utilization, graphics memory bandwidth utilization, PCIe read/write speeds, and ICN link read/write speeds.
Supports multi-instance GPU (MIG), allowing a single PPU to be partitioned into up to 8 instances. Note that the ICN interconnect feature cannot be used when MIG is enabled.
Supports full-card passthrough for virtualization. You can unbind the PPU driver on the host machine and pass the entire device through to a virtual machine. When doing so, you must ensure proper ICN isolation between different virtual machines.
Supports SR-IOV virtualization, allowing a single PPU to be divided into up to 8 Virtual Functions (VFs). Note that when SR-IOV and ICN interconnect are enabled simultaneously, only one VF can access the ICN interconnect.
Supports hot upgrade of the PPU driver on the host machine in SR-IOV virtualization mode, allowing driver updates without interrupting workloads in the virtual machines.
Supports hot migration of virtual machines in SR-IOV virtualization mode. This feature is limited to single-card configurations and does not yet support migration over ICN interconnect.
Adds official support for single-node 16-card Zhenwu 810E configurations and optimizes the default PPU device ordering (sorted from the rear of the chassis).
Adds GPM collection for L1/L2 cache hit rates, which are queryable via the DCGM tool.
Fixes high CPU usage when collecting PPU utilization metrics with driver versions v1.2 or v1.2.1.
Fixes an issue where creating a new CUDA context during a switch in MPS mixed-workload mode could cause the application to hang.
Fixes a system crash that could occur when a PPU device reset and GPM metric monitoring happened simultaneously.
Fixes an issue where frequent binding and unbinding of a PPU device in RUND scenarios could lead to MCU timeouts or cause the card to become unresponsive.
Adjusts the logical numbering scheme for 16-card Zhenwu 810E devices to improve interconnect performance.
Optimizes driver loading time and memory footprint.
Adds support for querying the status of the MPS mixed-workload mode.
Adds support for querying XID error information.
Adds support for querying, enabling, and disabling GPM status.
Fixes a discrepancy between process utilization and full-card utilization data reported by the ppu-smi tool.
Fixes a discrepancy between process graphics memory usage and full-card graphics memory usage reported by the ppu-smi tool.
Fixes an issue that could randomly cause system hangs when using unified memory (
cudaMallocManaged).Fixes an issue where the ECC page retirement pending flag was not cleared during DCGM stress tests.
Disables XID error reporting for HBM parity errors.
1.3.3 User-mode driver and runtime
Provides compatibility with most CUDA Runtime APIs (cudaXXX) and CUDA Driver APIs (cuXXX).
Adds more detailed error logging for XID 896 errors to simplify debugging.
Optimized the performance of cudaMemcpy and cudaMemset for 2D and 3D operations.
Fixes an intermittent
hgpti activity record cycle invaliderror that could occur duringasysprofiling.Supports a circular print buffer to enhance the
printffunctionality in CUDA device code.Supports the stream memory operation v2 API.
Supports APIs for managing edge data in graphs.
Supports APIs for batch memory op nodes in graph management.
Fixed an issue where the qwen2-72b large model produced garbled inference output on the Zhenwu 810E platform when
vllm cuda graphwas enabled.Fixes a graphics memory leak that occurred during FCN model training.
Fixes an issue that caused intermittent failures in DCGM stress tests on Zhenwu 810E platforms.
Fixes a core dump issue caused by LLVM symbol conflicts that could occur after a CUDA launch error.
Fixes an error that occurred when running model inference using the Python multiprocessing module.
1.3.4 Compiler
Provides a Clang/LLVM-based compiler designed for the PPU architecture. It supports a mixed host/device programming style and is fully compatible with the CUDA C/C++ language specifications.
Offers a rich set of compilation modules, allowing developers to flexibly create compilation workflows through API calls and easily integrate Just-In-Time (JIT) compilation capabilities.
Includes a comprehensive suite of development and debugging tools, such as hgobjdump, memcheck, ppu-gdb, and a sanitizer library, to simplify algorithm debugging.
Supports system-level reserved shared memory.
Supports Triton versions 2.3.x and 3.0.x.
Supports GCC host compiler versions from 5.5 to 12.3.
ppu-gdb:
Optimizes the display length of kernel managed names in layout assembly mode.
Supports conditional breakpoints on internal variables, such as
blockIdx, and registers.Supports the gdb python extension for Python versions 3.6 to 3.10.
Supports multiple trigger behaviors for device kernel breakpoints: single-trigger and multi-trigger. The default is single-trigger.
1.3.5 Acceleration libraries
Compute acceleration library
Proprietary compute libraries include acdnn, acblas, acfft, acsolver, and acrand.
acdnn supports the following operators:
Conv
BatchNorm
Pooling
Softmax
Activation
CTCLoss
Dropout
LRN
LSTM
GRU
MultiHeadAttn
Tensor Ops
SpatialTransform
Backend fusion
acblas supports the following operators:
Level-1 operators
Gemv
Gemm
Matmul + epilogue
MatrixTransform
trsm
getrfBatched
getrsBatched
geqrfBatched
gelsBatched
acfft supports R2C/C2R/C2C/D2Z/Z2Z + FFT/iFFT transforms.
acsolver supports LU decomposition/solve, Cholesky decomposition/solve, QR decomposition, and SVD decomposition (Jacobi method).
acrand supports:
Pseudo-random number generators: XORWOW, MRG32K3A, and PHILOX4_32_10.
Data distributions: Default, Uniform, Normal, and LogNormal.
acext quantization library supports:
Various kernel variants for A16W8/A16W4 and PerChannel/GroupWise.
Various kernel variants for A8W8 and PerChannel/PerToken.
Accelerated kernels for WeightonlyBatchedGemv with small batch sizes.
Key updates:
cutlass3: Adds support for the group GEMM persistent strategy.
Further improves FlashAttention performance on Zhenwu 810E by up to 85%.
acext: Adds support for a16w8 sub-channel quantization.
MoE: Adds support and optimizations for a16w4 quantization.
xformers: Fixes an infinity issue in attention mask scenarios.
RTC: Added support for group conv and gemv.
Add more pre-compiled instances to reduce the chance of RTC.
BLAS: Added support for rank-1 and rank-2 Level 2 APIs.
BLAS: Fixed incorrect gemm behavior when k = 0.
blas INT8 gemm: Now supports INT8 input and NN, TN, and TT configurations.
BLAS: Added support for cublasSgetriBatched.
conv: Improves performance by over 100x for wgrad scenarios with inputs larger than 4 GB.
conv: Fixes a 1D SpatialTF exception issue.
acFFT: Adds support for C2C, D2Z, and Z2Z, along with several new helper APIs.
solver: Adds support for Cholesky decomposition/solve, QR decomposition, and SVD decomposition (Jacobi method).
Interconnection acceleration library
Provides compatibility with most NCCL APIs (ncclXXX) and environment variables.
Supports standard communication operators such as AllReduce, AllGather, ReduceScatter, Broadcast, Reduce, Send, and Recv.
Supports multi-card communication within a single node using ICN, PCIE, and ShareMemory.
Supports multi-node communication using RDMA (GDR & non GDR) and Socket.
Supports ICN scale-out communication between 610 cards on multiple nodes.
The debugging feature for multi-node and multi-card systems is enhanced. It now supports automatic monitoring for ppu device kernel execution hangs, hierarchical communication status dumps, and triggering dumps through a configuration file.
Optimizes the synchronization overhead between network interface card (NIC) communication and ppu devices in multi-node scenarios, and supports the
NCCL_GDR_COPY_SYNCandPCCL_GDR_USE_DEV_MEM_FOR_RX_TAILfeatures.Adds support for newer NCCL versions, including new APIs, environment variables, and configurations:
Added API feature support: ncclCommInitRankConfig, ncclCommFinalize, ncclCommSplit, ncclCommRegister, ncclCommDeregister, ncclMemAlloc, ncclMemFree, and ncclCommGetAsyncError.
Added support for the following environment variables:
NCCL_P2P_DIRECT_DISABLE,NCCL_NET_PLUGIN,NCCL_COMM_BLOCKING,NCCL_LOCAL_REGISTER, andNCCL_REPORT_CONNECT_PROGRESS.Supports the new debug log subsystem fields: NCCL_PROFILE & NCCL_ALLOC & NCCL_DUMP;
Added support for the ncclRemoteError error field.
Other key features and fixes:
Optimizes the graph search logic for multi-node, multi-card environments to fix inconsistencies in proxyRank between the search and connect phases.
Optimized device memory usage in single-node, multi-GPU environments.
Optimized runtime host memory allocation and release in group mode.
Fixed a crash that occurred when using the FC algorithm in a fully interconnected, non-ICN scenario on a single node with four cards.
Fixed a failure to select the optimal path type when path types were inconsistent between nodes in a multi-node scenario.
PCCL tools:
pccl-perf:
Supports AllReduce, AllGather, ReduceScatter, All-to-All, Broadcast, and Reduce.
Optimizes event-based timing for device kernels.
p2pBandwidthAndLatencyPerf tool enhancements:
Supports ICN P2P interconnect bandwidth and latency performance evaluation for products like Zhenwu 810E in various multi-card interconnect topologies.
Supports batch output of bandwidth and latency data for all read and write modes, similar to
nv p2p perf bench.Supports displaying the p2p bandwidth performance ratio matrix.
Supports specifying a device subset for peer-to-peer (p2p) performance benchmarks.
Fixed a performance issue with data reads in bidirectional CE mode.
PCCL check tools:
Supports functional readiness checks for products like Zhenwu 810E in multi-card or multi-node, multi-card scenarios.
Adds a check to verify the 16 x Zhenwu 810E interconnect topology.
Added a check to verify the ICN link speed.
Added a validity check for the
acsCtrlconfiguration.
1.3.6 Hardware-accelerated video and image codecs
Compatible with the NVIDIA Video Codec SDK (including cuvid decode, nvenc, and nvjpeg) and NVIDIA Performance Primitives (NPP) for 2D images, enabling out-of-the-box hardware acceleration for frameworks like FFmpeg, OpenCV, DALI, and PyTorch without requiring code modifications.
Video decode
Supports NVIDIA cuvid decoder.
Codecs:
HEVC (H.265) - ITU-T Rec. H.265 (04/2013), ISO/IEC 23008-2
Main Profile, Level 5.1, High Tier
Main10 Profile, Level 5.1, High Tier
Main Still Profile
VP9 - vp9-bitstream-specification-v0.6-20160331-draft
Profile 0, 8-bit
Profile 2, 10-bit
AVC (H.264) - ITU-T Rec. H.264 (03/2010) / ISO/IEC 14496-10
Main Profile, levels 1 - 5.2
High Profile, levels 1 - 5.2
High 10 Profile, levels 1 - 5.2
Baseline Profile, levels 1 - 5.2
AV1 Bitstream & Decoding Process Specification Version 1.0.0 with Errata 1
Main Profile, Level 5.1
AVS2
Resolution up to 8192x8192.
Up to 192 FHD streams.
Video encode
Supports nvenc.
Codecs:
AVC (H.264): Spec Version 12:ISO/IEC 14496-10 / ITU-T Rec. H.264 (03/2010)
Baseline Profile, levels 1 – 5.2
Main Profile, levels 1 - 5.2
High Profile, levels 1 – 5.2
High 10 Profile, levels 1 - 5.2
HEVC (H.265): ITU-T Rec. H.265 (04/2013), ISO/IEC 23008-2
Main Profile, Level 5.1, High Tier
Main10 profile, Level 5.1, High Tier
Main Still Profile
AV1 Bitstream Specification Version 1.0.0 with Errata 1
Main Profile, Level 5.1
Resolution up to 4K.
Supports RGB input format (converted to YUV420 via inlinePP).
Supports crop, scale, and rotate with inlinePP.
Up to 32 FHD streams.
JPEG
Supports nvjpeg decoder and encoder.
Resolution up to 32Kx32K.
Supports RGB format input and output with inlinePP.
Supports crop, scale, and rotate with inlinePP.
Up to 960 FPS at UHD resolution.
Image processing
Supports NVIDIA Performance Primitives (NPP) for 2D images.
1.3.7 Software tools
The following PPU management and monitoring tools are provided for large-scale cloud cluster monitoring and can be integrated into existing operations and maintenance systems:
The PPU device management tool ppu-smi, which is similar to
nvidia-smi. For details, see Device Management Tool PPU-SMI.New features in ppu-smi v1.4 include:
Adds support for querying descriptions of XID error codes.
Added a description of how to query the status of performance counters.
Added a description for the gpm subcommand to query and set GPM.
Added a description for querying the burstable mode.
Added a description of how to query the product architecture and minor number.
Added a description for setting and querying MPS mode.
The data center management and monitoring tool PPU DCGM, which is similar to NVIDIA DCGM.
New features in DCGM v1.4 include:
Supports field IDs for ICN per-link send/receive rates.
Updated the field ID support list
The hgml library, which is similar to NVIDIA NVML.
The PPU performance analysis tools Asight System and Asight Compute (similar to NVIDIA Nsight Systems and Nsight Compute) are available for performance analysis of single-node and multi-node training and inference scenarios.
Asight System is a low-overhead, system-level performance analysis tool that collects various system events, CPU and PPU activities, API execution times, call stacks, NVTX ranges, and correlations between CPU/PPU activities. It provides a unified visualization in the Timeline View, allowing developers to easily analyze CPU/PPU workloads and their relationships, identify performance bottlenecks, and ensure coordinated operation and maximum parallelism between the CPU and PPU. For details, see Performance Analysis Suite Asight Systems.
New features in Asight System v1.4 include:
Improves UI styles and layout, with more tab styles for switching views.
asys lets you set the call stack depth for CPU profiling and Python profiling.
asys supports collecting trace data from specific processes of an application.
asys collects basic information, such as PPU frequency and temperature.
asys supports a shorter sampling period for collecting CPU call stack information.
asys stats supports exporting statistics and traces for HGGC kernel grid blocks
asys collects HGGC Python backtrace call stacks.
asys supports collecting memory Python backtraces.
asys Python functions trace collects all threads in a Python process.
Timeline View supports custom colors for HGTX.
In Timeline View, the time percentage of PPU nodes updates after filtering.
Timeline View displays metrics for RDMA NICs.
Timeline View displays PPU Activity dependencies
The Timeline View displays HGGC Graph information separately.
Timeline View lets you mark the timeline.
Timeline View displays different types of Video timelines in different colors.
The HGGC Launch API now supports display by kernel name in Timeline View.
You can close a report tab while it is opening.
Added a tile view to the Events View and enhanced autofill for search history.
Function View now includes flame graphs and icicle graphs.
HGTX range aggregation supports specifying a list of processes and threads.
Asight Compute is a kernel performance analysis tool that collects PPU hardware performance counters and presents them as metrics. The GUI offers various perspectives on these metrics for in-depth kernel analysis and optimization. For details, see Kernel Analyzer Asight Compute.
New features in Asight Compute v1.4 include:
Adds topology graphs for 16-card and 8-card Zhenwu 810E configurations.
The Source page displays source markers. It also collects and displays execution information for kernel assembly instructions, including Instructions Executed and Thread Instructions Executed.
Metrics fixes and stability enhancements
Provides the PPU debugging tool PPU-GDB, which allows simultaneous debugging of both GPU and CPU code within the same application.
Provides PPU Memcheck, a tool suite for functional correctness checks. The suite includes a series of checkers, such as memcheck, initcheck, synccheck, and racecheck.
Provides the PPU binary tool hgobjdump, for extracting device-related information from binaries.
1.4 Supported operating systems
Category | Operating system | Architecture | Kernel version | GCC |
Ubuntu | Ubuntu 20.04 LTS | x86_64 | 5.4.0-131-generic (GA) | 9.5.0 |
5.4.0-92-generic | 9.5.0 | |||
Ubuntu 18.04 LTS | 4.15.0-112-generic (GA) | 7.5.0 | ||
4.18.0-15-generic | 7.5.0 | |||
CentOS | CentOS 8.2 | 5.10.134-007.ali5000.al8.x86_64 | 8.5.0 | |
Alios | Alios 7U2 | 5.10.112-005.ali5000.alios7.x86_64 | 10.2.1 | |
5.10.84-004.ali5000.alios7.x86_6 | 10.2.1 | |||
alippu-driver-4.19.91-014.kangaroo.alios7.x86_64 | 10.2.1 | |||
Afa3 | ALinux 3 | 5.10.134-12.2.al8.x86_64 | 10.2.1 | |
5.10.134-13.al8.x86_64 | 10.2.1 |
1.5 SDK version compatibility
Version 1.4 is backward compatible with the kmd and mcu_fw from v1.2 and v1.3.
Zhenwu 810E requires mcu_fw version 1.2.1 or later.
2. CUDA ecosystem compatibility
2.1 Introduction
You can develop applications for the PPU platform using the PPU SDK API or by writing them in the CUDA language. To run a CUDA application on a PPU, you must recompile it with the PPU compiler. The following diagram compares the compilation and execution processes for a CUDA application on a PPU and a GPU.
CUDA ecosystem compatibility approach: The platform uses automatic code generation to create a CUDA SDK Wrapper. This wrapper maintains compatibility across different versions of CUDA APIs, enabling you to recompile your CUDA application with the PPU compiler and run it on the PPU.
This approach provides source-level compatibility between the PPU and the GPU. However, PPU binaries and GPU binaries are incompatible.

2.2 CUDA API compatibility
PPU SDK v1.4 supports CUDA APIs up to version 12.6.0. However, due to differences in hardware architecture, this compatibility is primarily for deep learning workloads. The table below lists the supported versions. For more information on CUDA compatibility, see CUDA compatibility.
CUDA version |
11.1 |
11.2 |
11.3 |
11.4 |
11.5 |
11.6 |
11.7 |
11.8 |
12.1 |
12.2 |
12.3 |
12.4 |
12.5 |
12.6 |
2.3 Supported open-source frameworks and libraries
2.3.1 Supported open-source frameworks and libraries
Framework/library | Version | Status | Release |
PyTorch | 2.4 | ✅ | v1.4 Release |
PyTorch | 2.3 | ✅ | v1.3 Release |
PyTorch | 2.0, 2.1, 2.1.2, 2.2 | ✅ | v1.2 Release |
PyTorch | 1.7, 1.8, 1.9, 1.10, 1.11, 1.12, 1.13 | ✅ | v1.0 Release |
TensorFlow | 2.16.1, 2.17.0, 2.6.3, 2.7.0, 2.8.0 | ✅ | v1.4 Release |
TensorFlow | 2.12, 2.13.1, 2.14.1 | ✅ | v1.2 Release |
TensorFlow | 1.15, 2.4, 2.6, 2.7, 2.8, 2.10, 2.11 | ✅ | v1.0 Release |
TensorRT | 0.1.0.8.0 | ✅ | v1.4 Release |
TensorRT-LLM | 0.1.0.8.0 | ✅ | v1.4 Release |
tensorflow_gpu | 1.15.5 | ✅ | v1.4 Release |
PaddlePaddle | 2.3.2 | ✅ | v1.0 Release |
OneFlow | 0.7.0 | ✅ | v1.0 Release |
MXNet | 1.8.0 | ✅ | v1.0 Release |
TorchACC | 1.12 | ✅ | v1.0 Release |
HIE-ALLSPARK | 1.0.0 | ✅ | v1.0 Release |
BladeDISC | 0.21 | ✅ | v1.0 Release |
rtp-llm | 0.2.0 | ✅ | v1.4 Release |
Triton Inference Server | 2.21.0 | ✅ | v1.0 Release |
Megatron-Core | 0.8.0 | ✅ | v1.4 Release |
Megatron-Core | 0.7.0 | ✅ | v1.3 Release |
Megatron-Core | 0.5.0 | ✅ | v1.2 Release |
DeepSpeed-Megatron | 0.2.0 (d65921c) | ✅ | v1.2 Release |
DeepSpeed | 0.15.2 | ✅ | v1.4 Release |
DeepSpeed | 0.14.4 | ✅ | v1.3 Release |
DeepSpeed | 0.10.0, 0.12.3, 0.13.1 | ✅ | v1.2 Release |
DeepSpeed | 0.8.0 | ✅ | v1.0 Release |
Horovod | 0.24.2 | ✅ | v1.0 Release |
vLLM | 0.5.2, 0.6.x | ✅ | v1.4 Release |
vLLM | 0.4.2 | ✅ | v1.3 Release |
vLLM | 0.3.0, 0.3.1, 0.3.2, 0.3.3 | ✅ | v1.2 Release |
vLLM | 0.2.6, 0.2.7 | ✅ | v1.1.1 Release |
vLLM(*) | 0.4.1, 0.4.2, 0.4.3, 0.5.0, 0.5.1, 0.5.2, 0.5.3 | ✅ | v1.4 Release |
lmdeploy | 0.5.3, 0.6.3 | ✅ | v1.4 Release |
lmdeploy | 0.3.0, 0.4.2 | ✅ | v1.3 Release |
lmdeploy(*) | 0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.5.0, 0.5.1, 0.5.2, 0.5.3 | ✅ | v1.4 Release |
ONNX Runtime | 1.19.2 | ✅ | v1.4 Release |
ONNX Runtime | 1.17.1, 1.18.0 | ✅ | v1.3 Release |
ONNX Runtime | 1.15.1 | ✅ | v1.2 Release |
FasterTransformer | 5.3 | ✅ | v1.1 Release |
Transformer Engine | 1.11 | ✅ | v1.4 Release |
Transformer Engine | 1.4 | ✅ | v1.2 Release |
Transformer Engine | 1.5 | ✅ | v1.2.1 Release |
transformer_engine(*) | 1.7, 1.8, 1.9 | ✅ | v1.4 Release |
transformer_engine_torch(*) | 1.8, 1.9 | ✅ | v1.4 Release |
PyTorch3D(*) | 0.7.6, 0.7.7 | ✅ | v1.4 Release |
Triton | 2.0, 2.1.1, 2.2.0, 3.0.0 | ✅ | v1.4 Release |
Nemo | 1.13.0 | ✅ | v1.2 Release |
TVM | 0.8.0 | ✅ | v1.0 Release |
HugeCTR | 3.1 | ✅ | v1.0 Release |
pytorch-quantization | 2.1.2 | ✅ | v1.0 Release |
DALI | 1.20.0 | ✅ | v1.0 Release |
CuPy | 12.0 | ✅ | v1.2 Release |
PyTorch3D | 0.7.6 | ✅ | v1.2.1 Release |
PyTorch3D(*) | 0.7.6, 0.7.7 | ✅ | v1.4 Release |
NVTabular | 0.7.1 | ✅ | v1.0 Release |
RMM | 23.2.0a0 | ✅ | v1.0 Release |
cuDF | 23.2.0a0 | ✅ | v1.0 Release |
torch_xla | 2.2 | ✅ | v1.2 Release |
torch_xla | 2.3 | ✅ | v1.3 Release |
torch | 1.13.1, 2.0.1, 2.1.0, 2.1.2, 2.2.0, 2.2.1, 2.3.0, 2.3.1, 2.4.0 | ✅ | v1.4 Release |
torchao(*) | 0.2.0, 0.3.0, 0.4.0 | ✅ | v1.4 Release |
TorchMetrics | 1.0.1 | ✅ | v1.0 Release |
TorchMetrics(*) | 1.4.0 | ✅ | v1.4 Release |
TorchRL(*) | 0.5.0 | ✅ | v1.4 Release |
torchaudio | 2.2.1 | ✅ | v1.3 Release |
torchaudio(*) | 2.0.2, 2.1.0, 2.1.2, 2.2.0, 2.2.1, 2.3.0, 2.3.1, 2.4.0 | ✅ | v1.4 Release |
torchvision | 0.17.1 | ✅ | v1.3 Release |
0.13.0 | ✅ | v1.0 Release | |
torchvision(*) | 0.15.2, 0.16.0, 0.16.2, 0.17.0, 0.17.1, 0.18.0, 0.18.1, 0.19.0 | ✅ | v1.4 Release |
torchdata | 0.6.1 | ✅ | v1.3 Release |
torchdata(*) | 0.6.1, 0.7.0, 0.7.1, 0.8.0 | ✅ | v1.4 Release |
torchtext | 0.17.1 | ✅ | v1.3 Release |
torchtext(*) | 0.15.2, 0.16.0, 0.16.2, 0.17.0, 0.17.1, 0.18.0 | ✅ | v1.4 Release |
MMCV | 1.5 | ✅ | v1.0 Release |
MMCV(*) | 2.2.0 | ✅ | v1.4 Release |
Ray | 2.6.1, 2.8.0 | ✅ | v1.2 Release |
xformers(*) | 0.0.21, 0.0.22, 0.0.23, 0.0.24, 0.0.25, 0.0.26, 0.0.27 | ✅ | v1.4 Release |
xformers | 0.0.21, 0.0.22, 0.0.25, 0.0.27 | ✅ | v1.4 Release |
CUTLASS | 2.4, 3.3 | ✅ | v1.2 Release |
CUTLASS(*) | 3.4.1, 3.5 | ✅ | v1.4 Release |
FlashAttention | 1.0.5, 2.0.9, 2.4.2, 2.5.6, 2.5.7 | ✅ | v1.4 Release |
FlashAttention(*) | 2.4.2, 2.4.3, 2.5.0, 2.5.1, 2.5.2, 2.5.3, 2.5.4, 2.5.5, 2.5.6, 2.5.7, 2.5.8, 2.5.9, 2.6.0, 2.6.1, 2.6.2, 2.6.3 | ✅ | v1.4 Release |
vllm-flashattention | 2.6.2 | ✅ | v1.4 Release |
flashinfer | 0.1.6 | ✅ | v1.4 Release |
flashinfer(*) | 0.1.0, 0.1.1, 0.1.2 | ✅ | v1.4 Release |
Text Embeddings Inference | 1.5.0 | ✅ | v1.4 Release |
Apex | 23.08 | ✅ | v1.2 Release |
Apex | 24.04.01 | ✅ | v1.3 Release |
Apex(*) | 24.04 | ✅ | v1.4 Release |
auto-gptq(*) | 0.7.1 | ✅ | v1.4 Release |
peft | 0.3.0 | ✅ | v1.0 Release |
bitsandbytes | 0.43 | ✅ | v1.2 Release |
bitsandbytes | 0.43.1 | ✅ | v1.3 Release |
bitsandbytes(*) | 0.40.0, 0.41.0, 0.42.0, 0.43.0, 0.43.1 | ✅ | v1.4 Release |
byte_flux(*) | 1.0.2, 1.0.3 | ✅ | v1.4 Release |
CuPy(*) | 13.1.0 | ✅ | v1.4 Release |
Faiss(*) | 1.7.3, 1.7.4, 1.8.0 | ✅ | v1.4 Release |
grouped_gemm(*) | 1.1.4 | ✅ | v1.4 Release |
mamba-ssm(*) | 2.1.0, 2.2.0, 2.2.1, 2.2.2 | ✅ | v1.4 Release |
nvidia-dali-cuda110(*) | 1.20.0 | ✅ | v1.4 Release |
nvidia-dali-cuda120(*) | 1.20.0 | ✅ | v1.4 Release |
onnxruntime-gpu(*) | 1.15.1, 1.16.3, 1.17.1, 1.17.3, 1.18.0, 1.18.1, 1.19.0 | ✅ | v1.4 Release |
FBGEMM | 0.7.0 | ✅ | v1.4 Release |
onnxruntime-training | 1.15.1, 1.17.1, 1.18.0, 1.19.0, 1.19.2 | ✅ | v1.4 Release |
transformers(*) | 4.30.2, 4.31.0, 4.32.1, 4.33.2, 4.34.1, 4.35.2, 4.36.2, 4.37.2, 4.38.1, 4.38.2, 4.39.3, 4.40.2, 4.41.2, 4.42.4, 4.43.0, 4.43.3 | ✅ | v1.4 Release |
Description:
PyTorch support:
PyTorch 2.1 and earlier versions are based on NGC.
PyTorch 2.1.2 and later versions are based on the official community releases of torch.
TensorFlow support:
Google's official community release of TensorFlow 1.12 supports only CUDA 9, while the corresponding release of version 1.15 supports only CUDA 10. https://www.tensorflow.org/install/source?hl=en#gpu_support_3
The provided TensorFlow 1.15 is based on the open-source NVIDIA NGC nv22.04 release. https://docs.nvidia.com/deeplearning/frameworks/support-matrix/index.html#unique_1997996242
TensorFlow 1.12 is based on PAI TF 1.12.
TensorFlow 2.4 is based on NVIDIA NGC nv21.02.
TensorFlow 2.6 and 2.7 are based on the official community releases from Google.
TensorFlow 2.8 is based on NVIDIA NGC nv22.04.
TensorFlow 2.10 and later are based on the official community releases from Google.
Items marked with an asterisk (*), such as
FlashAttention(*)andcutlass(*), fully match their respective community release versions. They provide only feature support and do not include performance optimization.Most other open source frameworks and libraries are based on their community release versions, with a few exceptions that are based on NGC. For details, refer to the user guide for each specific framework or library.
For these open source frameworks and libraries, the PPU SDK supports compilation, basic runtime validation, and unit testing. However, due to resource constraints, the v1.4 release does not resolve all issues discovered during testing. For a list of outstanding issues, see the known issues section.
2.3.2 Open source framework compatibility
Framework | Version | Test type | Pass rate |
PyTorch | 1.7 | unit test | 98.5% |
PyTorch | 1.8 | unit test | 97.6% |
PyTorch | 1.9 | unit test | 93.5% |
PyTorch | 1.10 | unit test | 94.7% |
PyTorch | 1.11 | unit test | 92.9% |
PyTorch | 1.12 | unit test | 95.2% |
PyTorch | 2.1 | unit test | 95.7% |
PyTorch | 2.3 | unit test | 96.9% |
PyTorch | 2.4 | unit test | 97.6% |
TensorFlow | 1.15 | unit test | 97.6% |
TensorFlow | 2.7 | unit test | 89% |
TensorFlow | 2.8 | unit test | 91.3% |
TensorFlow | 2.12 | unit test | 81.3% |
TensorFlow | 2.14 | unit test | 83.6% |
TensorFlow | 2.16 | unit test | 83.8% |
Megatron-Core | 0.8.0 | unit test | 99.7% |
Megatron-Core | 0.7.0 | unit test | 97.5% |
DeepSpeed | 0.15.2 | unit test | 93.1% |
DeepSpeed | 0.14.4 | unit test | 89% |
Horovod | 0.24.2 | E2E example | 100% |
VLLM | 0.4.1 | unit test | 99% |
VLLM | 0.4.2 | unit test | 99% |
VLLM | 0.4.3 | unit test | 99.98% |
VLLM | 0.5.0 | unit test | 100% |
VLLM | 0.5.1 | unit test | 99.9% |
VLLM | 0.5.2 | unit test | 99.9% |
VLLM | 0.5.3 | unit test | 100% |
VLLM | 0.6.0 | unit test | 99.3% |
lmdeploy | 0.3.0 | E2E example | 100% |
lmdeploy | 0.4.0 | unit test | 99% |
lmdeploy | 0.4.1 | unit test | 98.5% |
lmdeploy | 0.4.2 | unit test | 97.7% |
lmdeploy | 0.5.0 | unit test | 99% |
lmdeploy | 0.5.1 | unit test | 100% |
lmdeploy | 0.5.2 | unit test | 97.9% |
lmdeploy | 0.5.3 | unit test | 98.5% |
ONNX Runtime | 1.19.2 | unit test | 94.9% |
ONNX Runtime | 1.18.0 | unit test | 90.0% |
TransformerEngine | 1.11 | unit test | 98.69% |
TransformerEngine | 1.5 | unit test | 93.7% |
TransformerEngine | 1.7 | unit test | 94.3% |
TransformerEngine | 1.8 | unit test | 95.2% |
TransformerEngine | 1.9 | unit test | 96.1% |
rtp-llm | 0.2.0 | unit test | 100% |
torch-xla | 2.3 | E2E example | 100% |
xformers | 0.0.27 | unit test | 99.9% |
xformers | 0.0.26 | unit test | 99.9% |
xformers | 0.0.26 | unit test | 99.9% |
xformers | 0.0.25 | unit test | 99.9% |
xformers | 0.0.24 | unit test | 99.9% |
xformers | 0.0.23 | unit test | 99.9% |
xformers | 0.0.22 | unit test | 99.8% |
xformers | 0.0.21 | unit test | 98% |
vllm-flashattention | 2.4.2 | unit test | 99% |
vllm-flashattention | 2.4.3 | unit test | 99% |
vllm-flashattention | 2.5.0 | unit test | 100% |
vllm-flashattention | 2.5.1 | unit test | 100% |
vllm-flashattention | 2.5.2 | unit test | 100% |
vllm-flashattention | 2.5.3 | unit test | 100% |
vllm-flashattention | 2.5.4 | unit test | 100% |
vllm-flashattention | 2.5.5 | unit test | 99.9% |
vllm-flashattention | 2.5.6 | unit test | 99.9% |
vllm-flashattention | 2.5.7 | unit test | 100% |
vllm-flashattention | 2.5.8 | unit test | 100% |
vllm-flashattention | 2.5.9 | unit test | 100% |
vllm-flashattention | 2.6.0 | unit test | 100% |
vllm-flashattention | 2.6.1 | unit test | 100% |
vllm-flashattention | 2.6.2 | unit test | 100% |
vllm-flashattention | 2.6.3 | unit test | 100% |
flashinfer | 0.1.0 | unit test | 97.9% |
flashinfer | 0.1.1 | unit test | 99% |
flashinfer | 0.1.2 | unit test | 99.9% |
flashinfer | 0.1.6 | unit test | 99.9% |
text embedding inference | 1.5.0 | unit test | 99% |
Apex | 24.04.01 | unit test | 91% |
auto_gptq | 0.7.1 | unit test | 94.3% |
bitsandbytes | 0.40.0 | unit test | 99.9% |
bitsandbytes | 0.41.0 | unit test | 99.9% |
bitsandbytes | 0.42.0 | unit test | 100% |
bitsandbytes | 0.43.0 | unit test | 100% |
bitsandbytes | 0.43.1 | unit test | 100% |
byte-flux | 1.0.2 | unit test | 92.1% |
byte-flux | 1.0.3 | unit test | 95.1% |
cupy | 13.1.0 | unit test | 95% |
faiss | 1.7.3 | unit test | 100% |
faiss | 1.7.4 | unit test | 100% |
faiss | 1.8.0 | unit test | 100% |
grouped_gemm | 1.1.4 | unit test | 92.5% |
mamba_ssm | 2.1.0 | unit test | 94.5% |
mamba_ssm | 2.2.0 | unit test | 93.9% |
mamba_ssm | 2.2.1 | unit test | 99% |
mamba_ssm | 2.2.2 | unit test | 100% |
mmcv | 2.2.0 | unit test | 99.9% |
nvidia_dali_cuda110 | 1.20.0 | unit test | 94.7% |
nvidia_dali_cuda120 | 1.20.0 | unit test | 94.7% |
onnxruntime_gpu | 1.15.1 | unit test | 92.1% |
onnxruntime_gpu | 1.16.3 | unit test | 97.4% |
onnxruntime_gpu | 1.17.1 | unit test | 91% |
onnxruntime_gpu | 1.17.3 | unit test | 93% |
onnxruntime_gpu | 1.18.0 | unit test | 92.4% |
onnxruntime_gpu | 1.18.1 | unit test | 95.7% |
onnxruntime_gpu | 1.19.0 | unit test | 96% |
pytorch3d | 0.7.6 | unit test | 91.2% |
pytorch3d | 0.7.7 | unit test | 93% |
torchao | 0.2.0 | unit test | 99.9% |
torchao | 0.3.0 | unit test | 99.9% |
torchao | 0.4.0 | unit test | 99.9% |
torchaudio | 2.0.2 | unit test | 91.2% |
torchaudio | 2.1.0 | unit test | 91.8% |
torchaudio | 2.1.2 | unit test | 92.7% |
torchaudio | 2.2.0 | unit test | 93% |
torchaudio | 2.2.1 | unit test | 99.9% |
torchaudio | 2.3.0 | unit test | 99.9% |
torchaudio | 2.3.1 | unit test | 99.9% |
torchaudio | 2.4.0 | unit test | 99.9% |
torchaudio | 2.0.2 | unit test | 91.2% |
torchdata | 0.6.1 | unit test | 100% |
torchdata | 0.7.0 | unit test | 100% |
torchdata | 0.7.1 | unit test | 100% |
torchdata | 0.8.0 | unit test | 100% |
torchmetrics | 1.4.0 | unit test | 95% |
torchrl | 0.5.0 | unit test | 93.9% |
torchtext | 0.15.2 | unit test | 96.9% |
torchtext | 0.16.0 | unit test | 97% |
torchtext | 0.16.2 | unit test | 97% |
torchtext | 0.17.0 | unit test | 96.8% |
torchtext | 0.17.1 | unit test | 98% |
torchtext | 0.18.0 | unit test | 98% |
torchvision | 0.15.2 | unit test | 99.9% |
torchvision | 0.16.0 | unit test | 99.9% |
torchvision | 0.16.2 | unit test | 97% |
torchvision | 0.17.0 | unit test | 100% |
torchvision | 0.17.1 | unit test | 100% |
torchvision | 0.18.0 | unit test | 98.9% |
torchvision | 0.18.1 | unit test | 99.9% |
torchvision | 0.19.0 | unit test | 99.9% |
transformer_engine_torch | 1.8 | unit test | 92.7% |
transformer_engine_torch | 1.9 | unit test | 93.4% |
transformers | 4.30.2 | unit test | 94% |
transformers | 4.31.0 | unit test | 92.1% |
transformers | 4.32.1 | unit test | 93.4% |
transformers | 4.33.2 | unit test | 93% |
transformers | 4.34.1 | unit test | 93% |
transformers | 4.35.2 | unit test | 92.7% |
transformers | 4.36.2 | unit test | 92.6% |
transformers | 4.37.2 | unit test | 94% |
transformers | 4.38.1 | unit test | 94% |
transformers | 4.38.2 | unit test | 94% |
transformers | 4.39.3 | unit test | 94% |
transformers | 4.40.2 | unit test | 95.2% |
transformers | 4.41.2 | unit test | 94.9% |
transformers | 4.42.4 | unit test | 96% |
transformers | 4.43.0 | unit test | 96.7% |
transformers | 4.43.3 | unit test | 98% |
Known issues
Driver
For a list of unsupported CUDA APIs, see CUDA Compatibility.
When running multi-process video applications in single-VF mode with SRIOV virtualization, the device may occasionally become unresponsive. A fix is planned for the next release.
Concurrent use of ICN interconnect, SRIOV virtualization, and live migration is not supported.
Compiler
CUDA C++ extension APIs and inline PTX instructions related to Textures and Surfaces are not supported. Using these features causes a compilation error.
CUDA C++ extension APIs and inline PTX instructions related to Dynamic Parallelism are not supported. Using these features causes a compilation error.
For new instructions introduced in PTX versions above 7.6, some features may not be supported by the hardware architecture. This does not affect compilation but causes runtime errors.
Inline PTX
ld/stinstructions with the{.level::eviction_priority}and{.level::prefetch_size}modifiers are not supported. These modifiers are ignored and do not affect compilation or runtime.Inline PTX instructions and operands related to cache eviction policies are not supported and will cause a compilation error.
The device code compilation flow is CUDA Device C++ -> LLVM (hgvm) IR -> Device Binary. This flow does not generate PTX-formatted output files. If your compilation (or codegen) process for other platforms relies on a PTX generation step, you must adapt your code.
While most CUDA MMA and related data movement PTX instructions are supported for specific data types (such as .u8/.s8/.tf32/.bf16/.f16) in dense MMA instructions, this may result in lower performance than using PPU-specific tensor core PTX instructions. If the performance of such a kernel is critical to your end-to-end workload, we recommend refactoring the kernel's algorithm. For more information, see the PPU Tensor Core PTX User Programming Manual and Algorithm Refactoring Guide.
Acceleration libraries
Performance: Performance is not yet optimized for a wide range of use cases.
acblas:
Only the APIs listed in CUDA cuBLAS Support Status are supported. More APIs are being added as needed.
Complex data types are not supported.
Gemm: FP32 Tensor Core is enabled by default. Due to differences in the order of computation, the numerical results do not fully match FP32 FMA, which causes the matrixMulCUBLAS sample to fail.
Gemv: Supports host pointer mode only.
BlasLt: Does not support specifying attributes such as
algoorperf.
acdnn:
Only the APIs listed in CUDA cuDNN Support Status are supported. More APIs are being added as needed.
Conv: Does not support INT64 or BOOLEAN data types. Configurations with FP16 input and FP32 output are not supported.
3DConv: This feature is not fully optimized and requires performance improvements.
depthwise: Performance requires improvement for some dgrad use cases.
BN: 1) Only
alpha==1andbeta==0parameters are supported. 2) TheACDNN_BATCHNORM_PER_ACTIVATIONmode is not supported.Pooling: The
ACDNN_PROPAGATE_NANoption is not supported.RNN: Only
acdnnRNNBiasMode_t DOUBLE, FP16/FP32 data types, and theACDNN_RNN_ALGO_STANDARDalgorithm are supported.Activation: The
ACDNN_PROPAGATE_NANoption is not supported. The SWISH operator is not supported.Softmax: The
SoftmaxAlgorithm_t FASTalgorithm is not supported.TensorOp:
acdnnReduceTensordoes not supportMUL_NO_ZEROS.MultiHeadAttn: Only the forward operation is supported.
Backend: 1) Pre-processing fusion is not supported. 2) Fusion is limited to a maximum of four pointwise post-processing operations. 3) Only fp16, fp32, and bf16 data types are supported. 4) For fused pointwise operations, only
alpha1 = 1andalpha2 = 1are supported.
Interconnect library
Collective operation performance: For optimal collective operation performance in TP 2/4/8 mode on a 16-node Zhenwu 810E server cluster, place devices according to your system's ICN topology.
Only NCCL netplugin v4 is supported.
Multi-node CUDA Graph is not yet supported.
Using different parameter streams on the same communicator is not yet supported.
Running multiple
pcclcommunicators on the same PPU simultaneously can occasionally cause a deadlock. To mitigate this issue, avoid launching multiplepcclkernels on the same PPU device at the same time. SettingNCCL_MIN_NCHANNELSto 16 or less can also help prevent this problem.
Inference engine
Limited support for the int8 data type.
Partial support for ONNX models.
Python bindings offer partial API support. See the user guide for more details.
Support for dynamic shape is partial. For traditional models in production, dynamic shapes are primarily handled using a bucketing approach.
Hardware-accelerated video/image codecs
Video decode does not support raw nvdec mode.
Video decode does not support legacy formats such as MPEG1, MPEG2, MPEG4, VC1, and VP8.
JPEG does not support lossless encoding or the JPEG2000 format.
NPP currently supports only the Image Process interfaces, not the Signal Process interfaces.
Tools
For known issues with PPU-SMI, see PPU-SMI Known Issues.
For known issues with Asight Systems, see Asight Systems Known Issues.
For known issues with Asight Compute, see Asight Compute Known Issues.
Frameworks and models
Known issues for open source frameworks
Framework | Version | Known issues |
PyTorch | 2.4 |
|
TensorFlow | 2.16 |
|
Megatron-Core | 0.8.0 |
|
DeepSpeed | 0.15.2 |
|
VLLM | 0.6.3 |
|
lmdeploy | 0.5.3 |
|
ONNX Runtime | 1.19.2 |
|
TransformerEngine | 1.11 |
|
xformers | 0.0.27 |
|
vllm-flashattention | 2.6.2 |
|
flashinfer | 0.1.6 |
|
Text Embedding Inference | 1.5.0 |
|