SDK Release Note

更新时间:
复制为 MD 格式

PPU SDK v1.6.1 release note

1. Main Features and Bug Fix Lists

  • 详细功能

    • 发布 PPU-Flash Attention 2.7.4,支持 FA3 的功能;

    • 支持 VLLM 0.10.0;

      • 支持QWen3 MoE模型 bf16&int8 混合精度量化方法;

    • 支持 SGLang 0.4.10;

    • 支持 FlashInfer 0.2.9rc2;

    • PCCL 添加 gdrCopy 功能支持;

    • acext 不再随PPU_SDK发布,改为Wheel发布形式;

2. Known Issues

  • sglang 0.4.10 Qwen3-8B的部分场景下,大并发吞吐性能低于小并发。主要原因是大并发刚好打到了gemmflashinfer kernel性能差的tile配置。这种情况建议选择吞吐性能更好的小并发。

  • sglang 0.4.10 默认使用FA3后端,在Qwen3-235B-A22B,输入4000/输出1500场景下,FA3后端性能不如FlashInfer,建议使用FlashInfer后端。

  • sglang 0.4.10 默认使用FA3后端,在Qwen3-235B-A22B、BF16场景可能在cuda graph capturing阶段hang住。可以尝试通过调低--mem_fraction_static来解决,列如设置成0.8。

  • vLLM双机场景,如果环境里transformers >= 4.53.3并且安装了torchao,会导致运行失败。GPU上也存在相同的问题。可以通过卸载torchao解决。

PPU SDK v1.6 release note

1. 版本概述

1.1 软件栈介绍

image

  • 为 CUDA 应用开发者使用PPU软硬件降本增效。

  • 三个层次交付物:兼容CUDA 生态的框架软件包与模型、CUDA SDK兼容软件包、T-Head SAIL SDK软件包。

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读写速率;

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

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

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

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

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

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

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

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

  • 取消HBM parity Xid错误上报;

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

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

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

  • 支持stream memory opertaion v2版本API;

  • 支持graph managementedge data相关API;

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

  • 支持texture基本功能;

  • 优化CUDA_DEVICE_MAX_CONNECTIONS=1PPU性能;

  • 支持cuCtxCreate_v3 api;

  • 支持在发生异常之后正确输出device code printf的内容;

  • 支持HGGC_EXCLUSIVE_STREAMS环境变量指定stream group映射到不同的硬件队列;

  • 修复cuda graph不支持cooperative kernel node的问题;

  • 支持cudaLaunchKernelExC接口;

  • 支持通过asys工具采集stream对应的hardware channel信息;

  • 支持AD扩展API接口;

  • 修复运行colmapcudaCreateTextureObject报错cudaErrorIllegalAddress的问题;

  • 修复cudaMallocAsync接口分配size0时报错的问题;

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

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

  • 实现inline ptx指令的支持,其中包括部分支持的dense mma指令、sparse mma指令、texture相关指令; 同时针对ppu tensor core扩展了ptx指令的定义;

  • 实现CUDA device API的支持,本次增加支持部分Texture相关API;

  • 支持system level reserved shared memory特性;

  • gcc host compiler的版本支持范围在[5.5 - 14.2],clang host compiler的支持范围在[clang 9 - clang 18];

  • 支持triton 2.3.x、3.0.x、3.1.x、3.2.x、3.3.x; 扩展triton.lang的语法,引入对AIU的支持;

  • Device ELF binary格式默认打开split section选项,减少运行时module load开销;

  • 丰富的开发库和二进制工具:hgobjdump、memcheck、ppu-gdb、sanitizer library、hgprune、hgfatbin、hglink & hgJitlink,可以让用户更加方便地开发和调试

    • 运行时JIT编译库hgrtc, 详细介绍请参考。最新更新:

      • 支持对编译产物的caching能力,减少JIT编译过程时间。

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

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

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

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

    • 发布了PPU Fabin开发库hgfatbin,支持运行时对fabin文件的各类操作。

    • 发布了PPU Link 工具hglink,用于对PPU device codelink操作。

    • 发布了PPU JitLink开发库hgjitlink,支持运行时对PPU device codelink操作。

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分解,特征值分解;

    • acrand支持:

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

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

  • acext量化库支持:

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

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

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

    • 支持以下类型 MoE:FP16/BF16,a8w8 PerChanel/PerToken;

  • 开源项目支持:

    • PPU FlashMLA 1v5

    • PPU FlashAttention 2.4.2/2.5.6/2.5.7/2.7.2/2.7.4.post1;

    • PPU cutlass2.5;

    • PPU cutlass3.3/3.4/3.6;

    • PPU Xformers 0.0.22/0.0.25/0.0.27/0.0.29.post1/0.0.30;

    • PPU FasterTransformer;

    • PPU 扩展库 acext;

      • 目前主要支持高性能 a16w8、a16w4、a8w8 量化、group-gemm、MoE、batch gemv 等实现;

      • 提供 PPU_SDK library 和开源仓库两种方式,供各框架和应用集成;

    • PPU DeepGemm:

      • 支持 dense gemm、group gemm;

      • 支持 FP16、A8W8 format,不支持 FP8;

      • 支持 PerChanel/PerToken 量化,暂不支持 BlockWise 量化;

  • 关键更新:

    • 完成 DeepGemm 初步支持:EP 典型场景性能达竞对水平;

    • 优化 DPSK/Qwen3 等场景 MoE 性能,相对trition版本平均提升50%以上;

    • blaslt:增强 desc 跨版本支持;完善通信计算并行方案支持;

    • conv:完善不同format组合的支持;增加对 strided channel 的支持;

    • solver:新增 gesvda 支持;

    • 增强计算库对 Driver/Runtime 调用错误信息的处理;

    • 优化 deconv 性能:部分场景性能提升40%;

    • 优化 LSTM 性能,部分场景性能提升30%;

互联加速库

  • PCCL:

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

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

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

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

    • 性能优化:

      • 优化了单机 16 卡 真武810E 下的 allreduce & reducescatter & allgather 等算子的性能, 大 sizes 下约有 10% ~ 20% 提升;

      • 优化了单机 4 /8/16 卡下中等 sizes 上的 allreduce 算子性能,不同配置分别约有 10% ~ 60% 不等的提升;

    • 支持可以根据 COLL OP 来设置不同 ALGO 与 PROTO 的功能;

    • 支持 NCCL_IB_SPLIT_DATA_ON_QPS 功能;

    • 支持更多 CPU vendor 信息识别及相应 PHB 与 SYS 带宽优化调整;

    • 修复 ext-kernel 在不同 ranks 上 input/output buffer alignment 情况不一致时会 hang 的问题;

    • pccl tools:

      • pccl perf:

        • 支持 AllReduce、AllGather、ReduceScatter、AlltoAll、Broadcast 及 Reduce;

      • p2pBandwidthAndLatencyPerf 工具增强,具体可见:

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

      • DeviceOrderSearch tool:

        • 用于 Megatron 框架模型训练任务上基于并行训练配置得到真武810E 机器上的最佳 visible device order 设置,具体使用可见:

      • pccl check tools:

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

  • sailSHMEM:

    • 兼容支持所有 nvshmem pt2pt 相关 api;

    • 支持单机内与多机节点间的 PPU 卡 pt2pt 操作像 thread/warp/block 级别的 put/get bw、 latency 与 signal 及 wait 等同步操作;

    • 支持 icn link p2p 传输与 rdma ibrc 与 ibgda 网络传输;

    • 支持 shmem_p_bw 与 shmem_p_lat 相关通路上的 data combine 功能, 性能约有 1 ~ 3 倍提升;

  • DeepEP:

    • 兼容支持 DeepEP 绝大多数 python API 用法;

    • 支持单机内与节点间的 dispatch 与 combine intranode、internode 与 internode low latency 三种类型 kernel 实现;

    • 支持通过 icn link 及节点间的 rdma ibgda 或 ibrc 等传输方式进行通信;

    • 支持 low latency kernel 传输的 int8 groupwise 与 channelwise 量化实现;

    • 支持 2 & 4 ranks 的 intranode 与 low latency kernel 实例;

    • 修复部分 internode kernel path 上的潜在 thread racing issue;

    • 修复部分资源释放 order 带来的 crash issues;

1.3.6 Video/Image codec硬件加速

兼容Nvidia Video Codec SDK,包括cuvid decode, nvenc(up to v13.0)和nvjpeg(up to v12.4);兼容NPP(up to v12.9)接口。基于此,可以直接支持ffmpeg(up to v7.1.1), OpenCV4,DALI(up to v1.44),PyAV,TorchCodec 等上层框架的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.3 新功能主要包含:

      • 增加查询HBM厂家的描述

      • 增加设置和查询drain状态的描述

      • 增加查询机尾ID的描述

      • 增加topo子命令显示拓扑图支持按照机尾ID过滤和分组的描述

      • 增加topo子命令拓扑图显示RDMA网卡信息的描述

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

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

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

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

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

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

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

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

      • 更新已知问题

      • 增加查询SDK各组件版本信息的描述

    • 数据中心管理和监控工具PPU DCG类似Nvidia DGCM,详情请参考管理监控工具DCGM

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

      • 支持cache命中率相关field ID

      • 支持tensor core利用率相关field ID

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

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

      • 更新field ID支持情况列表

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

      • 增加Docker环境使用DCGM的说明

    • DCGM v1.6 增强包括:

      • 支持整数计算pipe利用率相关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.3 新功能主要包含:

      • 支持 Python Functions Trace,在不修改用户 Python 代码的情况下对指定的 Python 函数进行 profile

      • 支持采集应用程序日志输出;支持采集设备内存申请失败跟踪

      • 新增专家系统和统计系统,支持15条分析规则

        • asys stats 支持 HGGC API / OSRT API / HGTX range / HGGC kernel 耗时统计和跟踪导出

        • asys stats 支持关联 HGTX 和 PPU 侧跟踪,输出统计报告和导出关联数据

      • Timeline View增强:

        • 支持HGGC Launch APITimeline View上按其启动的Kernel名字显示

        • User created streamTimeline View上支持显示blocking属性

        • Timeline View新增WASD快捷键缩放平移; 在kernel 类型的Timeline item上右键生成的acu命令不准确时提示用户

        • Top-Down Viewfunction table支持搜索module name

      • 高级打开功能支持指定更多事件类型(PCCL, Log, Backtrace, NIC metrics)

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

      • UI样式美化与布局调整,更多tab 样式用于切换;支持在报告打开过程中关闭报告标签页。

      • asys增强: 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 增强: 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 Systems v1.5新功能主要包含:

      • asys stats支持HGTX PPU projection summary统计功能

      • asys stats支持HGGC PPU memory跟踪数据量 / 耗时统计功能

      • asys stats子命令PPU kernel相关统计功能支持添加HGTX range前缀

      • asys stats子命令HGTX Range Summary支持按照进程过滤

      • asys stats子命令PPU跟踪相关统计功能支持指定统计的PPU device列表

      • asys stats子命令Device Memory Uasge Details / Summary支持2 / 4种查看模式

      • asys analyze子命令PPU时间利用率分析支持指定时间范围的选择模式

      • asys专家系统和统计系统description框说明文本简化,增加说明文档跳转链接

      • asys支持限制生成报告文件尺寸

      • asys支持通过--hggc-memory-usage选项使能采集devicepinned内存使用情况

      • 支持采集CPU侧动态分配内存的使用情况,支持内存泄露分析 / 内存使用量统计 / 申请次数统计

      • 支持采集MPS模式使能时HGGC context关联的计算资源信息

      • Memory View支持4种查看模式以及火焰图

      • Timeline View 优化PPU activity依赖关系的显示方式

      • Timeline View支持分组显示功能,允许将感兴趣的时间线行添加到Group View中并单独显示

      • Timeline View支持Device Memory Timeline,帮助用户分析各模块的内存的使用情况,支持三种模式:普通模式;分组模式;分组着色模式

      • Timeline View支持通信算子分层显示

      • Timeline View支持不同kernel以不同颜色显示

      • Timeline View支持CPUheap内存时间线显示

      • Time range tooltip中支持显示PPU active/idle时间占比

      • Timeline View 选择time range时按住Shift键支持吸附至最近的时间线起点/终点

      • Timeline View支持按shift/ctrl多选时间线行

      • Timeline View性能优化,解决了打开超大报告GUI卡顿的问题

      • HGGC API支持C调用栈和Python调用栈的混合显示

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

      • asys支持CPU metrics跟踪采集

      • asys analyze子命令PPU time utilization分析功能支持指定统计的MPS模式Compute Pipe列表

      • asys支持采集Ray框架启动的多节点应用跟踪数据,每台服务器生成一份报告

      • asys支持采集mpirun启动的多节点应用跟踪数据,每台服务器生成一份报告

      • asys支持采集HGGC stream memory operation相关跟踪数据

      • asys stats子命令HGTX PPU Projection Trace / Summary支持按照HGTX range过滤

      • asys stats子命令HGTX PPU Projection Summary支持输出HGTX投影的时间占比和总的投影时间

      • asys stats子命令HGTX Range Kernel Trace / Summary支持按照HGTX range过滤

      • asys stats子命令HGTX Range Kernel Trace支持导出HGGC Graph相关信息

      • asys stats / analyze子命令支持指定ratio类数据输出精度

      • asys stats子命令支持分析PCCL通信kernel之间的不同步情况,支持导出跟踪和汇总数据

      • asys支持投影HGGC graph capture阶段HGTX rangePPUHGGC graph node对应的活动

      • asys支持通过事件控制capture range重复启停,多次capture range采集的跟踪写入同一份报告

      • asys支持通过指定PPU设备ID限制仅采集使用这些PPU设备的进程跟踪数据

      • Timeline View支持局部options,支持隐藏用户不感兴趣的行和定制报告的显示行为

      • Timeline View中支持kernel节点按kernel名字组织并展示

      • Timeline View添加全局tips,支持提示快捷操作信息

      • Timeline Viewtime range tooltip中单独计算PCCL的时间占比

      • CPU时间线支持按线程名称显示为不同的颜色

      • HGGC PPU Kernel Summary规则支持对TimeTotal Time两列数据占比进行自动求和

      • 统计系统新增PCCL Desynchronization Summary / Trace规则,分析PCCL kernel间的不同步情况

      • Bookmarks支持导入/导出和加载/保存

      • 统计系统/专家系统支持对表格进行搜索、过滤

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

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

    • Metric Details Widget支持显示metricinstance列表

    • Raw Page/Summary Page中支持选择多实例metric的显示格式,选择模式由非按行选中改为按单元格选中

    • 新增ICN link吞吐表格

    • acu 支持 --clock-control 选项

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

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

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

    • metrics修正和稳定性增强

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

    • Details PageMemory Chart支持按transfer size/throughput显示

    • Details PageMemory Chart连接链路tooltip中显示链路利用率

    • Details Page中的tooltip支持pin住,pin住后支持选择文本拷贝

    • Details PageLaunch Statistics中增加 Stack Size Per Thread

    • Details PageLaunch Statistics中增加 Driver SharedMemory Per Block

    • Baseline按钮布局更新,明确各按钮功能

    • Source Page支持点击分支指令跳转,支持高亮所有搜索结果

    • Source Page增强resolve源代码,支持自动resolve同目录结构其它文件

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

    • Source Page提示源码是否导入以及导入来源、提示如何采集lineinfo信息

    • Source Page、Details Page支持查看not issued stall reasons

    • Source Page提供Source Lookup入口按钮,提供“记住导入目录”选项

    • Source Page支持点击file not found提示打开源码导入窗口

    • Source Page支持Python、Pasm语法高亮

    • Source Page支持表头tooltip

    • Source Pagefunction列表按地址升序排序

    • Source Page支持显示报告附带的源码

    • Metric Details窗口对搜索到的metric进行排序

1.4 支持的操作系统

类别

操作系统

架构

内核版本

GCC

Ubuntu

Ubuntu 24.04 LTS

x86_64

6.8.0-53-generic

13.3.0

Ubuntu 22.04 LTS

6.2.0-39-generic

11.4.0

Ubuntu 20.04 LTS

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版本兼容性说明

1.5.1 KMD兼容性

V1.6 版本向前兼容 V1.5 与 V1.4 的 kmd/mcu_fw。

1.5.2 Firmware兼容性

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

1.5.3 SDK兼容性

SDK V1.6 同 SDK V1.5之间,保持在编程API接口、Device二进制格式、库文件的兼容性;同V1.5一样,对SDK V1.4在这些方面存在不兼容,具体不兼容的情况描述如下。

SDK v1.4 从文件、编程接口和编译环境上存在有四类调整,会导致同之前SDK版本的组件或编译产生的组件共存情况下,存在不兼容性的情形。相关的调整内容如下:

  • 将先前SDK中包含的libgomp.so、libomp.so文件移除,改为直接依赖相应OS环境以及host compiler(gcc/clang)所提供的libgomp.so、libomp.so库文件;

    此改动可能导致旧版程序执行在v1.5/v1.6 SDK环境中存在找不到相应so文件的报错;

  • 在编译命令option层面,将“-alippu-xxxoption 选项值 修改为 “-ppu-xxx”的格式;

    这些options主要包含在一些定制化编译的场景中,此改动可能导致在混合版本的源代码编译或JIT运行过程中出现编译报错;

  • ptx扩展指令层面,有几类扩展ptx指令的调整:

    1. 将“alippu.mma.xxx”的ptx指令修改为“ppu.mma.xxx";

    2. 将“alippu.ldmatrix.xxx”的ptx指令修改为“ppu.ldmatrix.xxx";

    3. 将“cp.async.aiu.xxx”的ptx指令修改为“ppu.cp.async.aiu.xxx”;

  • SDK 头文件中自定义类型“__ali_bfloat16”修改为“__ppu_bfloat16”;

后面的三类改动会导致之前开源的部分PPU代码库存在编译问题(vllm/cutlass/flash-attn/flashinfer等),需要拉取适配v1.5改动的代码库。

总的来说,以上四类调整会导致在源代码不更新、运行组件局部升级情况下存在编译/运行的兼容性问题,这在内部SDK兼容测试中也得到了体现,建议大家基于完整的v1.5/v1.6 SDK环境来做编译和运行环境的部署。

1.5.4 asight文件兼容性

v1.6 版本中Asight Sytems/Compute 兼容v1.5的报告文件。

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.6版本,对CUDA APIs版本支持到12.8.0,但是限于硬件架构的区别,对CUDA APIs兼容主要在DeepLearning范畴,下表是目前支持的版本列表。更多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

12.8

12.9 预览版

(通过cuda samples、pytorch 2.7 UT测试,但模型等端到端测试不充分)

2.3 支持的开源框架/库

2.3.1 开源框架/库支持列表

开源框架/库

版本

apex

24.4.1

auto_gptq

0.7.1

bitsandbytes

0.40.0、0.41.0、0.42.0、0.43.0、0.44.1、0.45.3

byte_flux

1.0.4、1.1.1

cumm

0.2.9、0.5.3

cupy

13.1.0、13.3.0、13.4.1

faiss

1.7.3、1.7.4、1.8.0

cutlass

2.4、3.3、3.4.1、3.5、3.6、3.7

flash-attn

1.0.5、2.0.9、2.4.2、2.5.6、2.5.7、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、2.7.0、2.7.1、2.7.2、2.7.3、2.7.4.post1

flashinfer

0.1.0、0.1.1、0.1.2、0.1.6、0.2.0.post1、0.2.1.post1、0.2.2.post1、0.2.3、0.2.6

DeepGemm

main

grouped_gemm

1.1.4

jax_cuda12_pjrt

0.4.34

jax_cuda12_plugin

0.4.34

jaxlib

0.4.34

lightllm

1.0.0

lmdeploy

0.4.2、0.5.3、0.6.3、0.6.4、0.7.0、0.7.1

mamba_ssm

2.1.0、2.2.0、2.2.1、2.2.2

mlflow

2.16.1、2.16.2、2.17.0、2.17.1、2.17.2、2.18.0

mmcv-full

1.4.2、1.5.3、1.6.0、1.7.2

mmcv

2.0.0、2.1.0、2.2.0

mmdet

2.14.0、2.24.0、2.26.0、2.28.2、3.3.0

mmdet3d

1.17.0、1.0.0rc4、1.0.0rc6、1.4.0

natten(*)

0.17.3、0.17.5

numba

0.55.0、0.58.0、0.59.0、0.60.0、0.61.0rc2、0.62.0dev0

nvidia_dali_cuda120

1.20.0、1.44.0

onnxruntime_gpu

1.20.0、1.20.1

onnxruntime_training

1.18.0、1.19.0、1.19.2

open3d

0.18.0、0.19.0

opencv-contrib-python

4.10.0.84

paddlepaddle-gpu(*)

2.6.2、3.0.0

pytorch3d

0.7.6、0.7.7

sgl_kernel

0.0.2.post8、0.0.3、0.0.3.post6、0.0.5

sglang

0.2.14、0.4.1、0.4.2、0.4.3、0.4.4.post1、0.4.4.post3

spconv-cu

2.1.21、2.2.6、2.3.6

tensorflow

2.14.1、2.17.0、2.6.3

torch

1.10.0、1.10.1、1.8.0、1.9.0、1.9.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、2.5.1、2.6.0、2.7.0

torch_xla

2.3.0、2.4.0、2.5.1、2.6.0

torchao

0.2.0、0.3.0、0.4.0、0.7.0

torchaudio

2.4.0、2.5.1

torchdata

0.6.1、0.7.0、0.7.1、0.8.0

torchrec

0.7.0

torchtext

0.15.2、0.16.0、0.16.2、0.17.0、0.17.1、0.18.0

torchvision

0.10.0、0.10.1、0.11.0、0.11.1、0.16.2、0.19.0、0.20.1

transformer_engine

1.11、1.12、1.13、1.5、1.7、2.0

triton

2.1.1、2.2.0、3.0.0、3.1.0、3.2.0、3.3.0

vllm-flash-attn

2.6.2、2.7.2.post1

vllm

0.6.3.post1、0.6.4.post1、0.6.6.post1、0.7.1、0.7.2、0.7.3、0.8.3、0.8.5、0.9.1

xformers

0.0.22、0.0.25、0.0.27、0.0.29.post1、0.0.30

xgboost

1.6.2、2.0.1、3.0.2

OneFlow

0.7.0

MXNet

1.8.0

TorchACC

1.12

HIE-ALLSPARK

1.0.0

BladeDISC

0.21

rtp-llm

0.2.0

trition-inference-server

2.21.0

Megatron-Core

0.5.0、0.7.0、0.8.0、0.9.0

DeepSpeed-Megatron

0.2.0 (d65921c)

DeepSpeed

0.8.0、0.10.0、0.12.3、0.13.1、0.14.4

Horovod

0.24.2

ray

2.6.1、2.8.0

Nemo

1.13.0

NVTabular

0.7.1

rmm

23.2.0a0

torchmetrics(*)

1.4.0

fbgemm

0.7.0

nvidia_dali_cuda110(*)

1.20.0

nvidia_dali_cuda120(*)

1.20.0

wholegraph(*)

24.12.00a

gsplat(*)

1.5.3

lammps(*)

2024.8.29.0.0

lightgbm(*)

4.5.0、4.6.0

MinkowskiEngine(*)

0.5.4

taichi(*)

1.7.3

tilelang(*)

0.1.4、0.1.5

colmap(*)

3.10

mirage(*)

0.2.4

Block-Sparse-Attention(*)

0.0.1

llama.cpp(*)

master

cuDF(*)

25.08

k2(*)

master

MagiAttention(*)

1.0.2

taming-3dgs(*)

master

dgl

2.4.0

HierarchicalKV(*)

master

SageAttention(*)

1.0.6、2.0.1

BitBLAS(*)

0.1.0

mmsegmentation(*)

1.2.2

torchani(*)

2.2.4

pytorch_scatter(*)

2.1.2

说明:

  • Pytorch开源支持说明:

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

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

  • TensorFlow开源支持说明:

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

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

  • 对于开源框架/开源库,PPU SDK兼容编译、基本功能运行和UT测试,由于资源限制V1.5 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%

Pytorch

2.5.1

Unit Test

98.7%

Pytorch

2.6

Unit Test

95.8%

Pytorch

2.7

Unit Test

97.4%

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%

Tensorflow

2.17

Unit Test

89.81%

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%

VLLM

0.7.2

Unit Test

80.66%

VLLM

0.7.3

Unit Test

90.61%

VLLM

0.8.3

Unit Test

94.65%

VLLM

0.8.5

Unit Test

86.61%

VLLM

0.9.1

Unit Test

74.52%

sglang

0.4.3

Unit Test

85.44%(A800: 85.25%)

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%

TransformerEngine

2.0

Unit Test

98.69%

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%

flashattention

2.4.2

Unit Test

99%

flashattention

2.4.3

Unit Test

99%

flashattention

2.5.0

Unit Test

100%

flashattention

2.5.1

Unit Test

100%

flashattention

2.5.2

Unit Test

100%

flashattention

2.5.3

Unit Test

100%

flashattention

2.5.4

Unit Test

100%

flashattention

2.5.5

Unit Test

99.9%

flashattention

2.5.6

Unit Test

99.9%

flashattention

2.5.7

Unit Test

100%

flashattention

2.5.8

Unit Test

100%

flashattention

2.5.9

Unit Test

100%

flashattention

2.6.0

Unit Test

100%

flashattention

2.6.1

Unit Test

100%

flashattention

2.6.2

Unit Test

100%

flashattention

2.6.3

Unit Test

100%

flashattention

2.7.2

Unit Test

100%

vllm-flashattention

2.6.2

Unit Test

100%

vllm-flashattention

2.7.2.post1

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%

flashinfer

0.2.2.post1

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 APIs不支持列表

3.2 编译器

  • 不支持大部分的Texture 和 Surface 相关的 Cuda C++ 扩展 API和相关inline PTX,编译会报错;

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

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

  • 暂不支持 Inline PTX 中 3op min/max 指令,可能会引起编译错误,将在后续修复。

  • 不支持 Inline PTX 中 128bit atomic 指令,不影响编译,但运行时会报错;

  • 不支持 Inline PTX 中 multimem 指令,不影响编译,但运行时会报错;

  • 不支持 Inline PTX 中 griddepcontrol 指令,忽略其定义但不影响编译和运行的过程;

  • 不支持 Inline PTX 中 ld/st 相关指令带有 {.level::eviction_priority} 和 {.level::prefetch_size} 的特性,忽略其定义但不影响编译和运行的过程; .L2::evict_first目前可能会引起编译错误,将在后续修复。

  • 不支持 Inline PTX 中 cache eviction policy 相关的指令和操作数,忽略其定义但不影响编译和运行的过程;

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

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

3.3 加速库

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

  • aublas:

    • 仅支持列表API,详见CUBLAS APIs支持状态,更多API持续按需支持中,更多API持续按需支持中。

    • 不支持复数数据类型。

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

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

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

  • audnn:

    • 仅支持列表API,详见CUDNN APIs支持状态,更多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。

  • ausolver:

  • aufft:

  • aurand:

    • 仅支持列表API,详见CURAND APIs支持状态,更多API持续按需支持中。

    • 仅支持类型:XORWOW/MRG32K3A/PHILOX4_32_10;

    • 仅支持Legacy order;

    • 仅支持分布类型:default、uniform、uniform double、normal、normal double、lognormal、lognormal double;

3.4 互联库

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

  • 仅支持 nccl netplugin v7的版本;

  • 执行收发sizes不均衡的alltoallV类型操作会有概率性死锁问题,dmesg中能看到"ERR_FAB_REQ_TO"类型的exceptions,此时需做device reset以恢复为正常状态;

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

3.5 Video Codec/Image硬件加速

  • Video decode不支持raw nvdec模式;

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

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

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

3.6 工具

3.7 框架与模型

开源框架已知问题说明

框架

版本

已知问题

Pytorch

2.6

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

    • CUDA API 暂不支持

    • "预期结果,包括:

    • A100 FAIL

    • 测试中Hardcode NV binary的名字

    • 硬件SFU导致的差异 等

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

    • 运行超时time out

    • 已知issue

2.7

  • SDPA mem_efficient后端计算结果non-deterministic(A100也存在该问题)

  • SDPA mem_efficient后端failed 1 UT (A100也存在该问题)

  • SDPA 新增后端backend cudnn_attention, 调用了cudnn里的FA实现 目前ppu还未支持,用export TORCH_CUDNN_SDPA_ENABLED=1控制是否打开这个backend ,默认关闭

  • 新增一些HGGC api不支持接口,如cuptiActivityEnableRuntimeApi

  • 加速库优化LSTM性能,gemm使用TF32精度导致部分UT case(test_data_parallel.py ) regression fail, A100H20同样fail。

SGlang

0.4.3

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

    • 个别模型perf UT fail,NV GPU也同样fail

    • 社区已知问题:不支持运行GPTQ量化的模型

0.4.7

  • SGLang-V0.4.7在运行DeepSeek-R1 \ DeepSeek-V3模型时,默认会使用shared expert,SGLang-V0.4.6.post1则不会,这会导致SGLang-V0.4.7运行该模型时性能不如SGLang-V0.4.6.post1。SGLang-V0.4.7可通过--disable-shared-experts-fusion禁用shared expert,此时SGLang-V0.4.7运行该模型时性能与SGLang-V0.4.6.post1相当;

  • SGLang-V0.4.7--mem-fraction-static设置的较大导致单机显存容量不足时,会出现decode out of memory的问题,例如真武810E单机运行DeepSeek-R1。这是社区已知问题;

VLLM

0.7.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 FP8量化依赖SM89/90架构,没有进行PPU适配与优化,支持计划待定

    • VLLM量化Dense A8W8对接acext库实现,性能需要持续优化,MOE W8A8量化暂时不支持,预计下一版支持

    • 支持DPSK FP8权重load并按照W8A16 量化推理,性能与BF16相当

    • VLLM 默认使用 vllm-flash-attn 作为attention的后端,该性能在PPU上尚未超过GPU版本,下个版本优化

  • 稳定性问题

0.9.1

  • 量化问题

    • VLLM 默认使用 Marlin Kernel 对 GPTQ/AWQ 进行量化推理加速,可以通过显式指定 quantization gptq_acext/awq_acext 使用 acext 来做量化推理,但是 acext 目前不支持 act_order=True 的量化,以及 GPTQ-Int8 量化权重

    • VLLM FP8 量化依赖 SM89/90 架构,PPU 暂无原生支持;VLLM 0.9.1 提供了FP8 marlin 的实现方式(实际是 W8A16 量化推理),可在 SM < 89 架构上运行 FP8 模型,PPU 可通过这种方式运行 FP8,但暂未进行适配与优化

TransformerEngine

2.0

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

    • TE Context Parallelism UT test_fused_attn_with_cp.py::test_cp_with_flash_attention 在torch 2.1.0版本环境下运行会有FAIL,建议使用torch 2.1.2以上的版本

    • TE numeric UT存在FAIL CASE

    • 不支持cublasLt fused_attention

    • A100同样failcase

  • Pai-Megatron-Patch暂时不支持TE v2.0,直接使用可能出现潜在bug。

flashinfer

0.2.6.post1

  • 以下模块存在已知的精度问题,导致UT fail

    1. PoD Attention

    2. Segment gemm