1. 概述

本文档包含了此次发布的MXMACA驱动软件包的特性,已知问题和使用限制等。

此次发布是MXC500 GPU的 VBIOS 1.25.1.0MXMACA-C500-Driver-2.33.0.9MXMACA-C500-SDK-2.33.0.12MXMACA-C500-Pytorch-2.33.0.5MXMACA-C500-Iree-2.33.0.0 版本交付,适用于曦云® C500、C500-P、C500X、C550 和曦思® N260。

下表列出了系统测试覆盖率和通过率。

表 1.1 系统测试覆盖率及通过率

系统

测试覆盖率/通过率

MXMACA-C500-Driver-2.33.0.9

Full regression with release quality

MXMACA-C500-SDK-2.33.0.12

Full regression with release quality

MXMACA-C500-Pytorch-2.33.0.5

Full regression with release quality

MXMACA-C500-Iree-2.33.0.0

Full regression with release quality

1.1. 交付内容

此次发布的软件包包含以下内容:

  • MXMACA-C500-Driver-2.33.0.9 Driver软件栈

  • MXMACA-C500-SDK-2.33.0.12 SDK软件栈

  • MXMACA-C500-Pytorch-2.33.0.5 Pytorch软件栈

  • MXMACA-C500-Iree-2.33.0.0 Iree软件栈

2. 新增特性及变更

本章列出历次发布的新增特性及变更。

2.1. MXMACA-C500-Driver-2.33.0.9,MXMACA-C500-SDK-2.33.0.12,MXMACA-C500-Pytorch-2.33.0.5,MXMACA-C500-Iree-2.33.0.0

模块

特性说明

Metax Driver

Firmware

eeprom中存储VBIOS升级记录

KMD

提供KMD错误代码,并打印到日志

KMD提供ECC errors的统计和显示

支持使用只读方式打开文件,进行Host2Device拷贝操作

提供sGPU模式的 -l 参数功能,显示一台服务器上所有sGPU实例

提供对sGPU调度队列的优先级设置,增加运维调度的可配置灵活性

SMI提供ECC errors的统计和显示

SMI拓扑显示支持国产网卡

SMI升级Firmware前,增加检查服务器MMIO地址空间的逻辑,避免识别不到卡无法恢复的问题

整合芯片和板卡SN号,显存型号和大小的信息显示

MACA SDK

mxExporter

mx-exporter上报EID,ECC error指标

mx-exporter上报MetaXLink AER,收发总字节指标

UMD

MCPTI支持NVTV_FUNC_WITH_PARAMS_API

MCPTI支持Graph实例化后再开启Pytorch Profiling

MCPTI支持single-block方式配置perfcounter

当GPU资源不满足用户配置的MACA_PRIORITY_QUEUE_POLICY时,支持自动根据可用硬件Queue数目修改Queue的优先级配置

调试功能增强:支持通过配置文件设置kernel名字,使得该kernel所在rodata为readonly,便于调试内存踩踏问题

提供UMD错误代码,并打印到日志

MCCL

OAM机型默认开启PCIe链路通信,通信性能提升10%-20%

通信库支持DeepEP64通信

TransferBench增加RDMA链路检测功能,用于检测集群网络可用性

计算通信并行,AllReduce/ReduceScatter算法支持分片传输,性能提升20%

Compiler

Fortran OpenACC编译器支持WRF项目工程中新增需求特性

memcpy_async 应用接口实现

通过auto predicate optimization提升 vllm page atten BF16 性能

ACL

mctlass新增int8 batched gemm基础功能支持

mctlass新增int8 fused moe接口功能支持

mctlass int8 gemm性能优化

BLAS groupgemm 性能优化

FlashInfer优化deepseek的MLA算法在EP128切分下的性能到70%

flashMLA优化了deepseek推理所需shape的性能

MACA Pytorch

ACL

Pytorch2.1/2.4扩展支持sdma类型通信op

torch使用flash_attn库C API接入相关功能

IREE

新增IREE软件包,谷歌开源的机器学习推理框架,专为高效部署机器学习模型而设计的端到端编译器与运行时工具链

2.2. MXMACA-C500-Driver-2.32.0.6,MXMACA-C500-SDK-2.32.0.6,MXMACA-C500-Pytorch-2.32.0.3

模块

特性说明

KMD

KMD适配mlx网卡doorbell映射到gpu mem的功能

支持dragonfly拓扑基础上使能MetaXLink port5的新拓扑

支持GPU使用Linux hugetlb大页或者连续小页组成的适合合并PTE的2M页面

支持当前HW queue状态查询

UMD

MXMACA Graph支持选择内存相关节点使用Blit Kernel或SDMA

Kernel hang住时获取所有ringbuffer MqlPacket等信息

mcpti支持single-block方式配置perfcounter

UMD自适应sGPU默认开启MPS

支持 trapHandler 非致命异常command级别精准定位

UMD提供API以供查询stream复用queue的情况

UMD在Graph IB模式下移除单stream上最多使用512个active signal的限制

支持环境变量设置进程创建stream最大等待时长,避免进程hang

MCCL

UMD适配mellanox网卡doorbell地址映射接口

实现通信库alltoallV extend功能

开发32卡通信Ring算法及性能调优

实现通信库allreduce extend功能

Compiler

Fortran OpenACC编译器支持CLT/WRF项目工程中新增需求特性

通过double buffer pingpong 方案提高 gemv 性能

ACL

FlashAttention

flashAttn支持某客户推理所需特殊alibi并优化性能

flashInfer优化deepseek推理所需MLA kernel的性能

mcBlas

BLAS Customer Kernel Selection 工具支持 LLM Infer gemm 性能优化

支持 FP32 group gemm功能

mcDNN

mcDNN针对mmpre/mmdet网络性能优化

mcSolver

mcSolver geqrf性能优化

mcTlass

mcTlass增加FP32/FP16/BF16 group gemm功能支持

在MXMACA平台上支持deepseek的flashMLA并开源至github

Pytorch

发布 PyTorch 2.6

Tools

记录GPU变不可用的原因并提供sysfs接口

mx-smi sgpu 实现一次性创建需要的sGPU个数

mx-report新增lspci -vvxxxx信息收集

SMI增加nvml.h头文件中相关结构体和函数,方便编译通过

mxvs算力支持sGPU

mx-exporter支持sgpu-wheel

2.3. MXMACA-C500-Driver-2.31.0.6,MXMACA-C500-SDK-2.31.0.6,MXMACA-C500-Pytorch-2.31.0.4

模块

特性说明

MXMACA

软件栈

从2.31.0版本开始,正式全面支持在线安装相关功能,详情请参考https://developer.metax-tech.com/softnova/index

SDK安装路径版本号变更为3位

KMD/FW

增加对ccx fw和ccx boot(VBIOS)的版本兼容性检测

UMD

支持GPU拓扑感知

优化GraphLaunch耗时

direct dispatch模式下支持以下API:

mcDeviceSetGraphMemAttribute

mcDeviceGraphMemTr

mcDeviceGetGraphMemAttribute

默认开启kernel前L2 flush的优化

细化完善trap kernel精准定位方案

MCCL

多机SDMA sendRecv并行方案开发

集群状态检测脚本开发/优化

添加RAS功能

Dragonfly8卡通信算法优化

开发分层算法,提升OAMC550 Switch Box拓扑16卡/64卡性能

Compiler

OpenACC编译器新增对WRF项目工程中涵盖的语义特性支持

新增OpenACC编译器运行时依赖Python包列表显示的选项支持

用table lookup算法优化vLLM kDequantize性能

ACL

FlashAttention

在FlashAttention中添加headdim 512

flashAttn提供kernel selector插件以针对特定shape选择性能更好的kernel

flashAttn提供kv cache int8反量化功能以支持decoder阶段提升性能

flashInfer升级版本到0.2.x版本以支持deepseekV3推理

用fast div方案优化flash attn2性能

通过B16寄存器分配提高flash attn2性能

新增w8a8 azp功能

mcBlasLT

支持GEMM+Commincation API

优化gemm+bias API的性能

mcBlas

优化gemv性能

优化大模型推理(包括deepseek r1)的性能

mcDNN

优化mcDNN FP32/TF32单向LSTM性能

mcFFT

优化8192范围内素数size的性能,从30%提升到60%

用metaxgpu slp方案优化triton-flash attention2 bwd的性能

TF32&Int8 GEMM性能有提升

优化deepseek mla triton算子性能

优化deepseek fused moe triton算子性能

优化PyTorch cat算子性能

Tools

mcTracer

mcTracer工具支持profiling区间可配置

mxvs工具打流支持switch地址遍历

2.4. MXMACA-C500-Driver-2.29.0.13,MXMACA-C500-SDK-2.29.0.19,MXMACA-C500-Pytorch-2.29.0.4

模块

特性说明

MXMACA

软件栈

支持基于APT/YUM的MXMACA SDK和Driver在线安装与卸载的基本功能,以及PIP方式的Pytorch在线安装功能,详情请参考https://repos.metax-tech.com/gitea/repos/index/wiki/MACA.md

Compiler

Fortran OpenACC编译器中支持了Reduction分离特性

新增mlir-translate编译器组件工具,支持mlir文件到llvm ir文件的转换

Pytorch

发布mcPytorch 2.4版本

mcAudio发布2.4版本,功能支持95%

ACL

mcTriton

mcTriton发布3.0版本

改进Post-RA调度策略,消除了非必要snop,Triton的TN pipeline性能提升5%

mcspconv

发布mcspconv库初版

mcBLAS

mcBLAS库优化了部分大模型推理场景下的性能

flashAttn

flashAttn库优化了部分大模型推理场景下paged attention的性能

mcTlass

mcTlass优化int8 TN GEMM在vllm w8a8应用场景下的性能

MCCL

MCCL优化C500/C550 AllToAll通信,整体性能平均提升20%

MCCL优化C500/C550低时延算法,小数据量通信时延平均降低30%

MCCL优化C500X Switch跨机EP4/EP8通信性能,整体性能平均提升200%

MCCL支持异构集群

UMD

Direct Dispatch的command状态更新,提升部分场景的性能

github上选取有意义的第三方开源项目,通过率达到 3453/3838 = 90%

AI

MXMACA Graph的并行节点最大限度分散到不同硬件queue,提升部分场景的性能

升级flashAttn库版本到2.6.3,增加了softcap、small page size推理等功能的支持

Tools

mcTracer/mcpti的tracing数据准确性提升,改进mcMemcpy在大size拷贝时耗时统计的精确性

mcTracer/mcpti增加后台非实时线程处理app线程的tracing数据,降低app线程进行tracing的overhead(在某多进程多卡场景的profiling时间从75s减少到15s)

2.5. MXMACA-C500-Driver-2.27.0.11,MXMACA-C500-SDK-2.27.0.11,MXMACA-C500-Pytorch-2.27.0.8

模块

特性说明

MXMACA

软件栈

支持天固Gen5/超聚变/单机Dragonfly 16卡服务器

mcTracer

支持单机多进程多卡场景,支持Call Stack显示

Compiler

支持OpenCL v1.2 Spec中的所有built-in function

支持OpenCL编译器mxcc-ocl

使能了OpenACC编译中的collapse子句

发布了MXMACA Clangd语言编程工具

在MI调度阶段引入了Igroup功能模块,为MMA相关的代码段引入了用户可配置的调度策略,提高了指令调度的效率

提升mcRTC兼容性,大幅降低用户对jitify的相关代码进行修改适配

SOMA兼容虚拟地址的管理行为,减少部分场景潜在的显存碎片化问题

优化了MI调度模块,使得Triton MMA的utilization从60%提升到73%

优化了Uniform branch处理方法,提升了mcTlass GEMM i8性能5%~20%

优化了pk_fma处理策略,提升vllm gptq kernel性能约20%

优化了BF16 cvt和compute的处理,提升了BF16 hgemm_nt的性能约25%,达到FP16 hgemm_nt的85%

提升了OpenACC的性能,使得VASP Benchmark的性能有提高

KMD

VBIOS

增加对RAVS电压补偿方案、光模块热插拔功能、SDMA对tracer timestamp的支持

完善CE对direct_dispatch模式的支持

UMD

MCCL

支持Dragonfly 32卡拓扑,支持博通/云合等网卡交换机

Graph

提升Graph IB模式性能,并且默认开启Graph IB模式,提升AI推理场景性能

提升单卡部分size D2D memcpy性能(4MB-64MB提升约30%)

提升单节点多卡环境DMA queue的吞吐量,大幅提升DMA queue满负荷使用场景的性能

VPU

mxJPEG

VPUD/VPUE支持stream操作,VPUD支持batch功能。

ACL

mcBLAS

mcBlasLt库支持了GEMM的out of place功能

mcBlas库修复了kernel selection工具在不同Python版本下的兼容问题

mcBlas库支持了deterministic mode

BF16 GEMM性能表现提升至与FP16 GEMM一致水平

优化了group GEMM API在MOE模型训练场景下的性能

优化了BF16/FP16 GEMM在problem size非对齐场景下的性能

优化了BF16/FP16在new fused config 2M page size下的性能

mcDNN

支持了BF16 fwd conv融合,LSTM新增支持dropout

BF16 fwd conv性能表现提升至与FP16 fwd conv一致水平

mcTlass

支持了BF16 group GEMM功能,和INT8 GEMM下ScaleBias类型融合的功能

FlashAttn

增加DeepSeek v2的MLA功能支持,并优化了性能

优化了head dim为32奇数倍的推理算子性能

FlashInfer

发布0.1.5完整功能版本,支持prefill、decoder和cascade等推理需求

mcFFT

优化了127以内素数基的性能

优化了小size 2D和3D real transform算子性能

mcImage

mcImage性能提升50%-10倍

mcMathLib

15个常用接口性能提升10%以上

Pytorch

mcPytorch增加了ProcessGroup的mpi后端支持

移除kernel中关于assert的使用,提升了相关kernel的性能

优化部分非连续输入输出场景下cat/reduce算子性能

2.6. MXMACA-C500-Driver-2.25.2.8,MXMACA-C500-SDK-2.25.2.9,MXMACA-C500-Pytorch-2.25.2.8

模块

特性说明

UMD

Runtime API

新增API mcLaunchKernelExC,通过扩展属性配置CooperativeGroup指定核函数的内存同步域,这对于跨设备的内存同步和异步执行非常有用。

mcpti

activity质量增强

VPU

优化VPUD 264 sps/pps

AI

大模型在OAM机型上的通信算子性能符合理论值

triton

提升fp16 MMA on triton性能,峰值性能达到标成算力的65%

优化冗余的跨基本块的fp16数据合并操作,提升10%的triton MMA场景性能

ACL

Flash Attention

优化了headdim96的前向和反向功能

优化了headdim256的decode功能

mcBlas

针对大模型推理相关模型进行了性能提升

tools

inspector

发布集群环境检测工具inspector

mcProfiler

优化mcProfiler UX

mx-report

提供mx-report工具试用版

2.7. MXMACA-C500-Driver-2.25.0.3,MXMACA-C500-SDK-2.25.0.7,MXMACA-C500-Pytorch-2.25.0.0

模块

特性说明

MXMACA

本版本旨在快速提供MXMACA软件栈在MOE(混合专家模型)技术上的最新支持成果,后续版本仍会持续优化

mcpti

新增Graph API IB模式的tracer功能支持

mcBLAS

增加了Group GEMM相关API的支持

针对大模型推理相关模型进行了性能提升

加强使用Graph API测试场景覆盖

Compiler

使能OpenAcc P0特性和OpenCL基本特性

优化pkfma和FP16 cvt执行策略,提升vLLM关键Kernel GPTQ性能

优化冗余的跨基本块的FP16数据合并操作,提升triton MMA场景性能

加强Direct Dispatch的测试场景覆盖

加强显存使用复杂场景的测试场景覆盖

FlashAttention优化了headdim96的前向和反向功能、headdim256的decode性能

提升FP16 MMA on triton性能

2.8. MXMACA-C500-Driver-2.24.0.10,MXMACA-C500-SDK-2.24.0.12,MXMACA-C500-Pytorch-2.24.0.5

模块

特性说明

UMD

提供DirectDispatch功能

加强了多进程支持的稳定性,并有小幅性能提升

MCCL

支持易构集群

C500X

Ring算法支持网卡和PCIe并行通信,分布算法性能优化,TP8带宽性能提升

ARM

支持复用PCIe链路通信,单机多卡通信带宽性能提升

Graph

API

支持Memory Node基本功能

ACL

mcTracer

支持根据UMD memory tracing log单独生成trace文件,并可以通过mcTracer-Viewer打开并显示

mcDNN

增加了FP16前向depthwise卷积融合功能

mcDNN/

mcBLAS

增加外置kernel选择优化工具

Flash Attention

增加MHA/GQA backward全部headdim的支持

增加对decoder attention和paged attention全部headdim的支持

支持更通用的attention mask

Compiler

增加global load/store builtin function with predicator

ARM

修复了一些ARM平台上的软件适配问题

2.9. MXMACA-C500-Driver-2.23.0.1014,MXMACA-C500-SDK-2.23.0.1018,MXMACA-C500-Pytorch-2.23.0.1011,MXMACA-C500-K8s-0.7.13

模块

特性说明

C500X

MetaXLink

支持隐式MetaXLink training

MCCL

支持C500X

ACL

mcDNN

提升FP16 depth-wise卷积性能

mcBLAS

提升大语言模型场景下的矩阵乘法性能

Flash Attention

提升head dimension部分性能

Pytorch

新增支持python 3.10

新增支持torch2.1

Compiler

新增编译选项-mllvm -metaxgpu-lduB16=true

Triton

支持triton2.1

mcTracer

支持根据热点API slice排序

Bug修复

修复了200+ reported bug,包括 5+ hot issue

2.10. MXMACA-C500-2.22.0.9 amd64和MXMACA-C500-2.22.0.11 arm64

模块

特性说明

OS适配

本次发布新增OS BCLinux R8 U2,kernel 4.19.0-240.23.11.el8_2.bclinux.x86_64

支持飞腾5000C ARM系统,kernel 5.15.0-1.10.6.v2307.ky10h.aarch64

驱动

Warm Reset

支持Warm Reset方式

ACL

发布mcApex和mcXformer

Bug修复

修复了100+ reported bug,包括 1 hot issue

2.11. MXMACA-C500-2.20.2.19

模块

特性说明

OS适配

本次发布新增OS ALinux3,kernel 5.10.134-13.1.al8.x86_64

本次发布新增OS CTYun 23.01,kernel 5.10.0-136.12.0.86.ctl3.x86_64

本次发布新增OS x86_64 Kylin V10 SP2,kernel 5.10.0-136.12.0.86.ctl3.x86_64

本次发布新增OS KeyarchOS 5.8,kernel 4.19.91-27.4.19.kos5.x86_64

驱动

VPU

新增支持多进程FFmpeg编解码

Bug修复

修复了200+ reported bug,包括 1 hot issue

2.12. MXMACA-C500-2.19.2.23

模块

特性说明

Bug修复

修复了220+ reported bug,包括 19 hot issue

2.13. MXMACA-C500-2.19.2.7

模块

特性说明

Bug修复

修复了160+ reported bug,包括 13 hot issue

2.14. MXMACA-C500-2.19.0.12

模块

特性说明

Bug修复

修复了160+ reported bug,包括7 hot issue

2.15. MXMACA-C500-2.18.0.4

模块

特性说明

Bug修复

修复了reported bug

2.16. MXMACA-C500-2.17.3.11

模块

特性说明

驱动

内核态驱动

新增支持CC Linux 22.09

虚拟化

新增支持虚拟化相关功能

VPU

新增支持264/265/jpeg编码,264/265/av1/avs2/jpeg解码,8k 30fps

Bug修复

修复了57 reported bug,包括24 hot issue

2.17. MXMACA-C500-2.16.1.11

模块

特性说明

驱动

内核态驱动

新增支持RedHat 9/CentOS 9和BC-Linux for Euler(21.10及以上)

Bug修复

修复了120+ reported bug,包括10+ hot issue

2.18. MXMACA-C500-2.15.0.7

模块

特性说明

驱动

固件

支持C500芯片上运行的基本固件功能

内核态驱动

支持C500芯片上运行的基本内核功能

用户态驱动

支持C500芯片上运行的基本用户态驱动功能

编译器

编译器

支持基本C500编译器功能

数学库

基本数学库

支持C500芯片上运行的基本数学库功能

Pytorch

支持C500芯片上运行的Pytorch功能

3. 版本兼容性

本章列出历次发布的版本兼容性。

3.1. MXMACA-C500-Driver-2.32.0.6,MXMACA-C500-SDK-2.32.0.6,MXMACA-C500-Pytorch-2.32.0.3

模块

兼容性说明

Metax K8s

由于2.27.0.x版本mxsml的改动,导致Metax K8s 0.10.0及以前的版本无法使用metax-driver-image 2.27及以后版本

Metax K8S 0.10.1及之后版本恢复对 metax-driver-image 2.27.0.x及以后版本的支持

3.2. MXMACA-C500-Driver-2.31.0.6,MXMACA-C500-SDK-2.31.0.6,MXMACA-C500-Pytorch-2.31.0.4

模块

兼容性说明

mcPytorch2.4

x86上不支持Ubuntu18

cpp-extension应用场景编译时需要:

  • x86上使用gcc9.x+版本

  • aarch64上使用gcc7.x版本

4. 已知问题和使用限制

模块

问题和限制说明

MXMACA软件栈

多程序长时间并行执行,有概率会出现程序执行无响应问题

Flash Attention C++接口有优化,使用Flash Attention C++接口的应用需要继承新的接口,对2.23.0.x及以前版本不兼容

某些主板不支持atomic访问的部分功能

mx C/C++程序不支持在Ubuntu18.04系统编译运行

C550 OAM上部分算子需要设置 MCCL_PCIE_BUFFER_MODE=1 规避性能回退问题

特定case在ARM会遇到长时间执行无法结束的问题

flash_attn特殊场景下有hang的现象

UMD Perf Metrics kernel launch某些case会有一定性能下降

mcFftXt接口暂未支持,请使用非Xt的接口替代

Ubuntu24.04使用GCC 13版本对某些测试有一定兼容性问题

模型推理和训练

在开启mxmaca graph的时候抓取torch profile会造成系统异常,需要配置如下环境变量规避该问题: MCPTI_ENABLED=ONMACA_GRAPH_LAUNCH_MODE=1

Pytorch训练centernet_R18和Retinanet模型时,存在amp精度loss为NaN的情况

Pytorch训练多VF场景下偶发hang

Pytorch训练学习率策略,推荐使用 --auto-scale-lr 自适应学习率

GPU占用率低时受到其他硬件因素影响较大,在不同机器测试时易出现性能波动

Pytorch个别模型对CPU资源敏感易出现性能波动现象

Pytorch ssd模型多卡训练偶发loss为NaN

Pytorch Deeplabv3模型FP32精度单卡训练时,需要设置新的环境变量以避免loss为NaN

对于LLM.PPL,不建议开启ACS,因为开启ACS可能会导致性能下降。如果必须开启ACS,需要关闭通信库PCIe复用功能,环境变量是 export MCCL_PCIE_BUFFER_MODE=0

通讯库性能优化使用了更多显存,特殊情况下,可能导致显存不足

VPU

SDK解码路数过多会有异常

SDK解码AVS2可能会有异常

编码性能可能不达标

MCJPEG解码暂不支持444、422、gray、411、440格式jpeg文件

FFmpeg黑白视频解码可能有花屏

开启虚拟化多于1VF情形下,编码相关功能不可用

mx-smi

个别机型执行warm reset会引发异常

MetaXLink

MetaXLink卡间互联后不支持透传单卡到虚拟机中使用,否则,可能会发生不可预期的行为

虚拟化

虚拟机透传GPU或VF,只支持虚拟机启动前设置透传GPU或VF

/etc/mvgvm_config 文件默认权限为0,如需要修改此文件,需要将文件权限改为0644

不支持 mx-smi --vfflr 操作

mx-report

Debian10、Alinux3、KeyrachOS5.8系统使用mx-report时会提示 get kmd log failed,实际不影响log收集

VF

划分VF时,有极小概率偶发出现不影响功能的dmesg error报错( PROTOCOL_STATE_RESPONSE_TIMEOUT 2 ),该报错不影响划分VF,功能可以正常使用