SDK Release Note

更新时间:
复制为 MD 格式

PPU SDK v1.4.3-hotfix release note

1. Main Features and Bug Fix Lists

  • 新增VLLM 0.7.3、SGLang 0.4.3的支持,提升Deepseek-V3/R1推理性能;

  • 初步优化Deepseek-V3/R1 MLA kernel的性能(单机VLLMv1.4.2相比)

    • throughput平均提升为27.69%

    • ttft平均提升为8.14%

    • tpot平均提升为29.99%

  • Enable多机跨节点CUDA Graph功能;

  • 修复torch.nn.functional.conv2d报错:GET was unable to find an engine to execute this computation;

  • 修复pccl send/recv调用导致的内存泄漏,相应泄漏问题可能在有send/recv op使用的场景如MoE模型或含Pipeline Parallel的大模型并行训练、推理等场景中存在;

2. Known Issues

  • 计算库:算子库Gemm计算中用到FP32 tensor core时,可能有coner case存在计算错误,预计在下个版本修复。

PPU SDK v1.4.2 release note

1. Main Features and Bug Fix Lists

  • 新增对Ubuntu 24.04 的支持;

  • 新增VLLM 0.7.2、SGLang 0.4.2的支持,以便更好地支持Deepseek-V3、Deepseek-R1、Qwen2.5-Max;

  • 修复vllm加载LoRA且开启TP并行时custom allreduce kernel会出现hang的问题;

  • 修复容器有SYS_ADMIN权限时无法正常使用PPU问题;

2. Known Issues

  • 计算库:算子库Gemm计算中用到FP32 tensor core时,可能有coner case存在计算错误,预计在下个版本修复。

  • 跨节点CUDA Graph功能在当前版本支持上还存在问题,预计下个版本会修复。

PPU SDK v1.4.1 release note

1. Main Features and Bug Fix Lists

  • 用户态驱动/运行时

    • 支持texture基本功能;

    • 修复HGGC_AUTO_DISPATCH_BARRIER环境变量打开时hang的问题;

    • 修复v1.4版本SDK搭配v1.4版本之前的老版本KMD驱动时ppu-smi无法显示0号卡进程列表的问题;

  • 计算库

    • acsolver新增接口支持:Xgetrf、Xgetrs、Spotrf、Dpotrf、Spotrs、Dpotrs;

    • 修复gemm m超大尺寸导致grid.y > 65536时计算正确性问题;

  • 通信库

    • 优化单机小size延迟敏感场景下的allreduce性能,默认打开了ext-kernel plugin支持;

    • 优化多机真武810Etopo graph search逻辑, 修复关键算子因device id变动而出现的性能下降issue;

    • 增强 'PcclStateMonitor' 功能以在用户手动关掉它的时候消除其对算子性能的影响;

    • 修复send/recv preconnect阶段memory初始化操作与kernel执行间的潜在冲突issue;

    • pccl perf tools:

      • 完成scatter/gather/sendrecv/hypercube等新算子支持;

      • 添加-a参数以支持用户可选设置AVG/MIN/MAX三种不同的算子时间统计方式;

      • 添加NCCL_TESTS_SPLIT_MASK功能支持;

  • 图像预处理

    • 支持 DALI 1.20(CUDA 11.6及以下版本)

    • 支持 DALI 1.44(CUDA 11.8及以上版本)

2. Known Issues

  • 计算库:算子库Gemm计算中用到FP32 tensor core时,可能有coner case存在计算错误,预计在下个小版本会修复。

PPU SDK v1.4 release note

1. 版本概述

1.1 软件栈介绍

image

1.2 核心组件

组件名称

概要说明

Firmware

PPU固件

KMD

PPU内核驱动

UMD / HGGC

PPU用户态驱动和运行时

Compiler

PPU编译器工具链

Acompute

PPU计算加速库

Acext

PPU量化加速库

PCCL

PPU通信加速库

PPU SMI

PPU设备管理工具

PPU DCGM

PPU在线监控工具

Asight System

PPU性能分析工具

Asight Compute

PPU性能分析工具

PPU GDB

PPU调试工具

PPU MemCheck

PPU Sanitizer工具

PPU hgobjdump

PPU Device Binary工具

CUDA SDK Wrapper

CUDA API 兼容库

1.3 主要功能

1.3.1 Firmware
  • 支持二进制包安装(rpmdeb);

  • 支持动态电源管理功能,缺省模式下PPU固件会根据实时的工作负载、温度和功耗等信息动态调节核心频率(200MHZ~最大工作频率)和工作电压;

  • 支持PPU锁频功能,详情请参见设备管理工具PPU-SMI

  • 支持固件安全签名和固件双备份功能,确保固件内容的安全性和可靠性;

  • 支持电源芯片固件升级功能;

  • 支持BMC带外管理功能,包括设备状态监控和固件带外升级等;

1.3.2 内核驱动
  • 支持二进制包安装(rpmdeb)和runfile包安装两种方式,用户可根据需要自由选择;

  • 支持内核驱动和PPU SDK解耦,v1.0版本之后的内核驱动和PPU SDK可任意组合使用;

  • 支持单机单卡、单机8卡/16卡(ICN互联)、多机多卡(ICN互联)和多机多卡(GDR)多种灵活的机器形态,使用GDR功能之前需确保系统已安装alixpu-peermem内核模块(随PPU内核驱动一起发布);

  • 支持PPU故障上报和故障处理;

  • 支持auto-reset功能,驱动在检测到kill overtimecp invalid cmd错误之后会自动进行PPU设备复位,无需用户手动复位即可恢复正常。该功能默认打开,用户可通过ppu-smi查询状态或关闭该功能;

  • 支持MPS(Multi Pipe Service)功能,用户可通过ppudbg --config_submit_mode 1/0打开或关闭该功能;

  • 支持MPS模式下小模型和大模型任务的潮汐场景使用;

  • 支持nvml GPM指标采集功能,包括:sm利用率、sm occupancy、tensor core利用率、显存带宽利用率、pcie读写速率、icn link读写速率;

  • 支持MIG(Multi Instance GPU)多实例功能,PPU最多支持8个实例,需注意使用MIG功能时ICN互联功能不可使用;

  • 支持整卡直通虚拟化功能,用户可以在宿主机上解绑PPU驱动直通进虚拟机内使用,此时需要注意不同VM之间的ICN隔离;

  • 支持SRIOV虚拟化功能,PPU最多支持8VF (Virtual Function),需注意SRIOVICN互联同时开启时,只允许一个VF拥有ICN互联能力;

  • 支持SRIOV虚拟化模式下宿主机驱动的热升级功能,即可以在虚拟机内业务运行的同时对宿主机PPU驱动进行更新;

  • 支持SRIOV虚拟化模式下虚拟机任务的热迁移功能 (仅限单卡,ICN互联热迁移暂不支持);

  • 新增单机16卡真武810E的正式支持并优化默认的PPU设备顺序(按照机尾排序);

  • 新增L1/L2 cache命中率GPM指标采集,用户可通过DCGM工具查询获取;

  • 修复使用v1.2/v1.2.1驱动采集ppu利用率指标时CPU占用率过高问题;

  • 修复MPS潮汐模式切换时新建cuda context可能导致程序hang的问题;

  • 修复PPU设备复位和GPM指标监控程序同时发生时引发的系统宕机问题;

  • 修复rund场景频繁绑定/解绑PPU设备可能出现的mcu超时/掉卡问题;

  • 调整16卡真武810E设备的逻辑编号规则以获取更好的互联性能;

  • 优化驱动加载时间和驱动内存占用;

  • 新增MPS潮汐模式状态查询功能;

  • 新增Xid错误信息查询功能;

  • 新增GPM状态查询和GPM状态启停功能;

  • 修复ppu-smi工具的进程利用率数据和整卡利用率数据不对齐的问题;

  • 修复ppu-smi工具的进程显存使用量和整卡显存使用量不对齐的问题;

  • 修复使用unified memory (cudaMallocManaged)时概率性的系统hang的问题;

  • 修复DCGM压测ECC page retirement pending flag未清除问题;

  • 取消HBM parity Xid错误上报;

1.3.3 用户态驱动和运行时
  • 兼容绝大多数cuda runtime api (cudaXXX) 和cuda driver api (cuXXX);

  • 新增发生xid 896错误时输出更多错误日志方便定位问题;

  • 优化2D/3D类型的cudaMemcpy/cudaMemset性能;

  • 修复asys profiling时偶发的hgpti activity record cycle invalid错误;

  • 支持环形print buffer,增强cuda device codeprintf打印功能;

  • 支持stream memory opertaion v2版本API;

  • 支持graph managementedge data相关API;

  • 支持graph managementbatch memory op node相关API;

  • 修复真武810E平台上qwen2-72b大模型在vllm cuda graph enable情况下出现推理乱码的问题;

  • 修复fcn模型训练过程显存未释放的问题;

  • 修复真武810E平台上DCGM压力测试概率性失败的问题;

  • 修复程序中发生cuda launch error之后因为llvm符号冲突发生core的问题;

  • 修复使用multiprocessing多进程方式执行模型推理报错的问题;

1.3.4 编译器
  • 基于clang/llvm的编译框架,实现面向PPU架构的、host/device混合编程风格的C/C++扩展语言编译器,完整兼容cuda c/c++的编程语言规范;

  • 提供丰富的编译功能模块,方便开发者通过API的调用方式,灵活组合编译流程,方便集成JIT编译的能力;

  • 丰富的开发和debug 工具:hgobjdump、memcheck、ppu-gdb、sanitizer library,可以让用户更加方便地调试算法实现;

  • 支持system level reserved shared memory特性;

  • 支持triton 2.3.x、3.0.x;

  • gcc host compiler的版本支持范围在[5.5 - 12.3];

  • ppu-gdb:

    • layout asm模式中优化kernel managed name的显示长度;

    • 支持blockIdxinternal variables的条件断点,支持register条件断点;

    • 支持gdb python extension特性(python版本范围在3.6-3.10);

    • 支持device kernel断点的触发行为:一次触发和多次触发,默认为:一次触发;

1.3.5 加速库

计算加速库

  • 闭源计算库支持:acdnn、acblas、acfft、acsolver、acrand

    • acdnn支持算子

      Conv

      BatchNorm

      Pooling

      Softmax

      Activation

      CTCLoss

      Dropout

      LRN

      LSTM

      GRU

      MultiHeadAttn

      Tensor Ops

      SpartialTransform

      Backend fusion

    • acblas支持算子

      Level1 系列 Op

      Gemv

      Gemm

      Matmul + epilogue

      MatrixTransform

      trsm

      getrfBatched

      getrsBatched

      geqrfBatched

      gelsBatched

    • acfft支持:R2C/C2R/C2C/D2Z/Z2Z + FFT/iFFT 变换;

    • acsolver支持:矩阵LU分解/求解,cholesky分解/求解,QR分解,SVD分解Jaccobi方法;

    • acrand支持:

      • 伪随机生成器XORWOW、MRG32K3A、PHILOX4_32_10;

      • 数据分布:Default/Uniform/Normal/LogNormal;

    • acext量化库支持:

      • 支持A16W8/A16W4以及PerChannel/GroupWise的各种Kernel变种;

      • 支持A8W8以及PerChanel/PerToken的各种Kernel变种;

      • 支持WeightonlyBatchedGemv对小batchsize的加速kernel;

  • 关键更新:

    • cutlass3:新增group gemm persisent策略支持;

    • 进一步提升FA在真武810E上的性能,最高提升85%;

    • acext:新增a16w8 sub-channel量化支持;

    • MoE:新增a16w4量化支持和调优;

    • xformers:修复attn mask场景inf问题;

    • RTC:新增对group conv、gemvRTC功能支持;

    • 进一步增加预编译实例,减少RTC几率;

    • blas:新增rank=1/2 Level2 API支持;

    • blas:修复k=0gemm行为不正确问题;

    • blas INT8 gemm:新增INT8输支持;新增NN/TN/TT支持;

    • blas:新增cublasSgetriBatched支持;

    • conv:优化wgrad > 4GB输入场景性能超100倍;

    • conv:修复1D SpatialTF exception问题;

    • acFFT:新增功能支持C2C/D2Z/Z2Z,新增多个辅助API支持;

    • solver:新增支持cholesky分解/求解,QR分解,SVD分解Jaccobi方法;

互联加速库

  • 兼容支持绝大多数 nccl api (ncclXXX) 和环境变量

  • 支持AllReduce、AllGather、ReduceScatter、Broadcast、Reduce、Send、Recv等典型互联算子;

  • 支持单机内多卡通过ICN、PCIE、ShareMemory通信;

  • 支持多机之间通过RDMA (GDR & non GDR) 、Socket通信;

  • 支持多机上的610卡间进行icn scale out方式通信;

  • 多机多卡debug功能增强,支持自动监测ppu device kernel执行hang的功能,支持分层次的comm状态dump功能并支持通过配置文件显示trigger dump;

  • 优化多机场景下网卡通信与ppu device之间的同步开销,支持NCCL_GDR_COPY_SYNCPCCL_GDR_USE_DEV_MEM_FOR_RX_TAIL的功能;

  • 增加 nccl 高版本 API 、环境变量及配置支持:

    • 新增 API 功能支持:ncclCommInitRankConfig、ncclCommFinalize、ncclCommSplit、ncclCommRegister、ncclCommDeregister、ncclMemAlloc、ncclMemFree、ncclCommGetAsyncError;

    • 新增环境变量功能支持:NCCL_P2P_DIRECT_DISABLE、NCCL_NET_PLUGIN、NCCL_COMM_BLOCKING、NCCL_LOCAL_REGISTER、NCCL_REPORT_CONNECT_PROGRESS;

    • 支持新的debug log subsys字段:NCCL_PROFILE & NCCL_ALLOC & NCCL_DUMP;

    • 添加ncclRemoteError错误字段支持;

  • 其它重要功能与问题修复:

    • 优化多机多卡下的graph search逻辑以修复search阶段与connect阶段的proxyRank不一致的问题;

    • 优化单机多卡场景下device memory的使用;

    • 优化group mode下运行时host memory分配与释放;

    • 修复单机四卡非icn全互联场景下FC algo使用时会crash的问题;

    • 修复多机场景下机器间path type不一致时未能选择最佳path type的问题;

  • pccl tools:

    • pccl perf:

      • 支持AllReduce、AllGather、ReduceScatter、AlltoAll、BroadcastReduce;

      • 优化event based device kernel时间统计方式;

    • p2pBandwidthAndLatencyPerf工具增强:

      • 支持真武810E等产品在各种多卡互联topo server下的icn p2p互联带宽与延迟性能评估;

      • 支持类似nv p2p perf bench可以batch输出所有读写mode下带宽与延迟数据的功能;

      • 支持显示p2p bandwidth perf ratio矩阵的功能;

      • 支持可指定devices subset以进行p2p perf bench的功能;

      • 修复双向CE mode读数据perf异常的问题;

    • pccl check tools:

      • 支持真武810E等产品在多卡或多机多卡等场景下的功能 readiness 检查;

      • 增加16 x 真武810E互联topo正确性的检查功能;

      • 增加对icn link speed正确性的检查功能;

      • 增加对acsCtrl配置正确性的检查功能;

1.3.6 Video/Image codec硬件加速

兼容Nvidia Video Codec SDK,包括cuvid decode、nvencnvjpeg;兼容Nvidia 2D Image NPP接口。基于此,可以直接支持ffmpeg、opencv、DALI、pytorch等上层框架的Codec硬件加速能力,不需要额外修改代码去适配。

Video Decode

  • Support 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 FHD 192 streams

Video Encode

  • Support 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(H265):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 support

  • Support input RGB format (converted to YUV420 via inlinePP)

  • Support crop, scale, rotate with inlinePP

  • Up to FHD 32 streams

Jpeg:

  • Support nvjpeg decoder & encoder

  • Resolution up to 32Kx32K

  • Support RGB format input and output with inlinePP

  • Support crop, scale, rotate with inlinePP

  • Up to UHD 960FPS

Image Process:

  • Support Nvidia 2D Image NPP

1.3.7 软件工具
  • 为了满足云计算大规模集群监控需求,我们发布了如下PPU管理和监控工具和库文件,以便集成到客户集群运维监控系统中:

    • PPU设备管理工具ppu-smi类似Nvidia-smi。详细介绍请参考设备管理工具PPU-SMI

    • ppu-smi v1.4新功能主要包含:

      • 增加查询XID错误码的描述

      • 增加查询performance counter状态的描述

      • 增加gpm子命令查询和设置GPM的描述

      • 增加查询潮汐模式的描述

      • 增加查询产品架构和Minor number的描述

      • 增加设置和查询MPS模式的描述

    • 数据中心管理和监控工具PPU DCG类似Nvidia DGCM;

    • DCGM v1.4新功能主要包含:

      • 支持ICN每链路收发速率相关field ID

      • 更新field ID支持情况列表

    • hgml类似Nvidia nvml;

  • 发布了PPU性能分析工具Asight SystemsAsight Compue(类似 Nvidia Nsight Systems/ Compute),可以支持用户进行单机、多机训练、推理等场景的性能分析。

    • Asight Systems 是一款低开销的系统级的性能分析工具,用来采集系统各种事件,CPUPPU的活动,API执行时间以及相关调用栈,NVTX,CPU/PPU activity关联关系等,在Timeline View上统一的可视化呈现出来。 通过imeline View,开发人员可以方便分析CPU/PPU的负载和关联关系,找到性能瓶颈,确保CPUPPU能够协调的工作,确保最大的并行度。详细介绍请参考程序性能分析套件Asight Systems

    • Asight Systems v1.4新功能主要包含:

      • UI样式美化与布局调整,更多tab 样式用于切换

      • asys支持指定CPUPython Profiling调用栈深度

      • asys支持指定采集应用程序部分进程的跟踪数据

      • asys支持采集PPU频率和温度等基本信息

      • asys支持采集CPU调用栈信息更短的采样周期

      • asys stats支持HGGC kernel grid block统计和跟踪导出

      • asys支持HGGC Python backtrace调用栈采集

      • asys支持memory python backtrace调用栈采集

      • asys python functions trace支持采集python进程下的所有线程

      • Timeline View支持显示HGTX自定义颜色

      • Timeline View支持filterPPU节点时间占比更新

      • Timeline View支持显示RDMA网卡metrics指标信息

      • Timeline View支持显示PPU Activity依赖关系

      • Timeline View支持独立显示HGGC Graph信息

      • Timeline View支持标记时间线

      • Timeline View支持以不同的颜色显示不同类型的Video时间线

      • Timeline ViewHGGC Launch API支持以kernel名显示

      • 支持在报告打开过程中关闭报告标签页

      • Events View增加了平铺模式,增强搜索记录的自动填充

      • Function View增加了火焰图和冰川图

      • HGTX range汇总支持指定进程和线程列表

    • Asight Compute是一款kernel性能分析工具,通过采集PPU硬件perf counter,组合成为一系列性能指标,我们称为metrics。GUI通过各种维度,把这些metrics呈现出来, 帮助用户深入分析和优化kernel。详细介绍请参考Kernel分析器Asight Compute

    • Asight Compute v1.4新功能主要包含:

      • 新增真武810E 16卡、8卡拓扑图显示

      • Source Page支持显示Source Marker,支持采集和显示Kernel的汇编指令的执行信息,包括Instructions ExecutedThread Instructions Executed

      • metrics修正和稳定性增强

  • 发布了PPU调试工具PPU-GDB,允许在同一个应用程序中同时调试GPUCPU代码。

  • 发布了PPU Memcheck,是一组用于功能性正确检查的工具套件。该套件中包含了一系列的检查工具,包括memcheck、initcheck、synccheck、racecheck。

  • 发布了PPU Binary工具hgobjdump,用于提取binary中的device相关信息。

1.4 支持的操作系统

类别

操作系统

架构

内核版本

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

CentOS8.2

5.10.134-007.ali5000.al8.x86_64

8.5.0

Alios

Alios7U2

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

ALinux3

5.10.134-12.2.al8.x86_64

10.2.1

5.10.134-13.al8.x86_64

10.2.1

1.5 SDK版本兼容性说明

  • V1.4版本向前兼容 V1.2 与 V1.3 的 kmd/mcu_fw。

  • 真武810E需要使用V1.2.1以上的mcu_fw版本。

2. CUDA生态兼容

2.1 介绍

PPU平台上开发应用程序,用户既可以基于PPU SDK API开发应用程序,也可以使用CUDA语言编写应用程序,经过PPU编译器重新编译后在PPU 上运行,下图展示了同样的CUDA应用程序分别在PPUGPU上编译、运行的差异。

CUDA 生态兼容方法:通过代码自动生成技术生成CUDA SDK Wrapper来自动兼容CUDA不同版本的APIs,从而使得用户的CUDA程序经过PPU编译器重新编译后即可在PPU上运行。

通过CUDA生态系统的兼容方案,PPUGPU在源代码级别上是编译兼容的,但PPU二进制与GPU二进制不兼容。

image

2.2 CUDA APIs兼容版本

截至PPU SDK V1.4版本,对CUDA APIs版本支持到12.6.0,但是限于硬件架构的区别,对CUDA APIs兼容主要在DeepLearning范畴,下表是目前支持的版本列表。更多CUDA兼容性内容请参见CUDA兼容性

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 支持的开源框架/库

2.3.1 开源框架/库支持列表

开源框架/库

版本

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

trition-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

TransformerEngine

1.11

v1.4 Release

TransformerEngine

1.4

v1.2 Release

TransformerEngine

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

torchvison

torchvison

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 embedding 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

说明:

  • Pytorch开源支持说明:

    • Pytorch 2.1及其之前的版本对标NGC

    • Pytorch 2.1.2及其之后的版本对标torch开源社区RELEASE版本

  • TensorFlow开源支持说明:

  • 带(*)标志的,如FlashAttention(*) 与cutlass(*)等,完全对标社区开源版本,未做性能优化,仅功能支持。

  • 其它开源框架/开源库 除个别对标NGC以外,大部分对标开源社区RELEASE版本,详情请参考各个使用指南。

  • 对于开源框架/开源库,PPU SDK兼容编译、基本功能运行和UT测试,由于资源限制V1.4 RELEASE并没有解决所有测试中发现的问题,遗留问题请参考【已知问题】章节。

2.3.2 开源框架兼容性

框架

版本

测试类型

通过率

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%

Tenorflow

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

07.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

99.9%

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%

3. 已知问题

3.1 驱动

  • 不支持的CUDA API列表可参考CUDA兼容性

  • SRIOV虚拟化single VF模式下多进程运行video应用时有概率发生掉卡问题,预计下个版本修复;

  • 不支持ICN互联 + SRIOV虚拟化 + 热迁移功能同时使用;

3.2 编译器

  • 不支持TextureSurface相关的Cuda C++扩展 API、Inline PTX指令的功能,编译会报错;

  • 不支持Dynamic Parallelism相关的Cuda C++扩展 API、Inline PTX指令的功能,编译会报错;

  • 针对ptx 7.6之上的新增指令,会存在因硬件架构不支持的部分功能,不影响编译,但运行时会报错;

  • 不支持Inline PTXld/st相关指令带有{.level::eviction_priority}{.level::prefetch_size}的特性,忽略其定义但不影响编译和运行的过程;

  • 不支持Inline PTXcache eviction policy相关的指令和操作数,编译会报错;

  • Device文件编译流程包括Cuda Device C++代码 -> llvm(hgvm) IR -> Device Binary的过程, 但不包含输出ptx格式的文件过程; 针对其他平台的代码编译(或Codegen)环节,如带有ptx格式的编译环节,需要进行代码适配;

  • 兼容CUDA mma及相关数据搬运的ptx指令中大部分,范围包括特定数据类型(.u8/.s8/.tf32/.bf16/.f16)下的dense mma指令,相比于使用ppu specific tensor core ptx指令实现,性能会存在损失。如果此类kernel的性能在整个端到端中占比重要,则建议对该kernel代码实现进行算法的重构(参考ppu tensor core ptx用户编程手册及算法重构指南);

3.3 加速库

  • 性能:性能泛化能力有待加强。

  • acblas:

    • 仅支持列表API,详见CUDA cuBLAS支持情况,更多API持续按需支持中。

    • 不支持复数数据类型。

    • Gemm: 默认打开FP32 Tensor Core,由于计算顺序等原因导致精度不能和FP32 FMA完全配置,matrixMulCUBLAS实例会因此失败;

    • Gemv:仅支持host指针模式;

    • BlasLt:不支持algo/perf等指定属性;

  • acdnn:

    • 仅支持列表API,详见CUDA cuDNN支持情况,更多API持续按需支持中。

    • Conv:不支持INT64/BOOLEAN数据类型,不支持输入FP16 + 输出FP32。

    • 3DConv:有限调优,性能待加强。

    • depthwise:某些dgrad用例性能待加强。

    • BN:1)仅支持alpha==1beta==0参数;2)不支持ACDNN_BATCHNORM_PER_ACTIVATION模式。

    • Pooling:不支持ACDNN_PROPAGATE_NAN。

    • RNN:仅支持acdnnRNNBiasMode_t DOUBLE;仅支持FP16/F32数据类型;仅支持ACDNN_RNN_ALGO_STANDARD;

    • Activation:不支持ACDNN_PROPAGATE_NAN;不支持SWISH Op。

    • Softmax:不支持SoftmaxAlgorithm_t FAST。

    • TensorOp:acdnnReduceTensor不支持MUL_NO_ZEROS。

    • MultiHeadAttn:仅支持前向op。

    • Backend:1)不支持前处理融合;2)仅支持最多4pointwise后处理融合;3)仅支持fp16/fp32/bf16数据类型;4)融合的pointwise操作仅支持alpha1 = 1alpha2 = 1。

3.4 互联库

  • Collective操作性能:16 x 真武810E服务器采用TP 2/4/8 mode时建议aware自己所用机器的icn topo配置情况以来选择最佳的devices placement;

  • 仅支持 nccl netplugin v4 的版本;

  • 尚不支持多机 cudaGraph;

  • 尚不支持同个 comm 上使用不同的 params streams;

  • 多个pccl communicators同时工作在相同PPU下面时,会有概率性死锁的问题, 需尽量规避多个pccl kernels同时launch在同一ppu device下的行为; 避免设置NCCL_MIN_NCHANNELS为大于16的值可帮助规避此问题;

3.5 推理引擎

  • 数据类型有限支持int8;

  • 支持部分onnx模型;

  • Python binding仅支持部分API,参看使用指南;

  • 对于dynamic shape提供部分支持,当前主要通过桶的方式支持传统模型产品化能力;

3.6 Video Codec/Image硬件加速

  • Video decode不支持raw nvdec模式;

  • Video decode不支持MPEG1,MPEG2,MPEG4,VC1,VP8legacy格式;

  • JPEG不支持lossless,不支持JPEG2000;

  • NPP目前只支持Image Process接口,不支持Signal Process接口;

3.7 工具

3.8 框架与模型

开源框架已知问题说明

框架

版本

已知问题

Pytorch

2.4

  • 兼容性Unit Test测试Fail Case分类:

    • CUDA API暂不支持。

    • "预期结果,包括:A100 FAIL、测试中Hardcode NV binary的名字、硬件SFU导致的差异等。

    • 个别tensor元素误差略大于测试用例阈值。

    • 运行超时time out。

    • 已知issue。

Tensorflow

2.16

  • 兼容性Unit Test测试Fail Case分类:

    • 不支持cusolver、cufft、cusparse、cublas库部分API。

    • 不支持complex64、complex128精度格式。

    • 存在未检测到Device以及运行环境问题导致的运行失败。

    • 存在未支持的算法/kernel/CUDA API,导致的kernel launch failedcore dump。

    • 存在输出结果和预期值不同导致的运行失败,包括打印输出字符串不完全匹配及精度问题。

Megatron-Core

0.8.0

  • 兼容性Unit Test测试Fail Case分类:

    • Bert数据预处理部分耗时过长会被中断。

    • jit_fuser的错误需要torch >= 2.3解决。

    • test_grouped_mlp.py测试,反复创建temp dir的操作是需要先进行分布式环境初始化。

DeepSpeed

0.15.2

  • 兼容性Unit Test测试Fail Case分类:

    • torch info里未找到nccl_version error,待解决。

VLLM

0.6.3

  • VLLM默认使用Marlin KernelGPTQ/AWQ/W8A8/WOQ进行量化推理加速,可以通过显示指定quantization的方法来使用vllm原本的Marlin/W8A8/awq/gptq等量化推理kernel,例如可以指定使用gptq_acext/awq_acext来做量化推理,但是acext目前不支持act_order=True的量化,以及GPTQ-Int8量化权重,下个版本优化。

  • VLLM量化Marlin Kernel实现和硬件强相关且为A100设计,PPU上移植后性能尚未超过GPU版本,下个版本优化。

  • VLLM使用vllm-flash-attn/xformers/flashinfer作为attention的后端,默认使用vllm-flash-attn 性能尚未超过GPU版本,下个版本优化。

  • VLLM量化A8W8对接acext库实现,性能需要持续优化。

  • 目前FP8量化下速度非常慢,还没有进行PPU适配与优化,支持计划待定。

lmdeploy

0.5.3

  • 兼容性 Unit Test 测试Fail Case分类:

    • cublas不支持一种特殊的CTA shape。

  • 已知问题

    • GPU版本相比部份场景性能需要继续优化。

ONNX Runtime

1.19.2

  • 兼容性Unit Test测试Fail Case分类:

    • Attention (unfused backend) 在TF32精度下存在acblas gemm 带来的精度误差,优先级较低,暂无修复计划。

    • 不支持cubin kernel实现。

    • 不支持FP8精度格式。

    • PCCL暂不支持mixing different streams within a group call导致TestDistributed::test_slice_rs_axis1在连跑时出错GQA (smooth_softmax=True) 精度误差超出阈值(A100 同样 FAIL)。

    • 不支持AzureEP(A100同样FAIL)。

    • Case问题(A100同样FAIL)。

    • 网络问题,访问huggingface失败。

TransformerEngine

1.11

  • 兼容性Unit Test测试Fail Case分类:

    • TE Context Parallelism UT test_fused_attn_with_cp.py::test_cp_with_flash_attentiontorch 2.1.0版本环境下运行会有FAIL,建议使用torch 2.1.2版本。

    • TE numeric UT存在FAIL CASE。

    • 不支持cublasLt fused_attention。

    • A100同样failcase。

xformers

0.0.27

  • 兼容性Unit Test测试Fail Case分类:

    • 已知部分case存在随机性问题,修改随机数种子可以通过。

    • mem_effi_compile算子不支持问题,a100fail。

    • 部分case兼容模式下编译器使用fast math指令,有微小精度误差大于阈值,预期行为。

vllm-flashattention

2.6.2

  • 已知问题

    • GPU版本相比性能需要继续优化。

flashinfer

0.1.6

  • 兼容性Unit Test测试Fail Case分类:

    • GPU版本相比性能需要继续优化。

text embedding inference

1.5.0

  • 兼容性Unit Test测试Fail Case分类:

    • HGGC 暂不支持cublasLtLoggerSetLevel HGGC not support

    • 网络问题ConnectionFailed to huggingface.co