执行摘要
修复 SM12x GPU 上 NVFP4 模型的非法指令错误,通过升级 CUTLASS 和添加运行时守卫。
修复在SM12x GPUs(如RTX 50 SM120和DGX Spark SM121)上运行NVFP4模型(例如nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-NVFP4)时导致的cudaErrorIllegalInstruction错误。PR body中详细列出了五个根因:CUTLASS v4.2.2缺乏SM12x NVFP4 tile约束、FlashInfer 0.6.6的CUTLASS后端失败、cutlass_scaled_mm_supports_fp4()错误报告支持、量化内核无SM运行时守卫,以及FlashInfer CUTLASS后端绕过检查。目标是确保NVFP4模型在新硬件上稳定运行。
该PR值得精读,特别是对于从事量化或硬件支持开发的工程师。关注的设计决策包括:运行时SM守卫的实现方式、依赖版本管理策略(如CUTLASS升级到v4.4.2解决tile约束)、以及后端选择逻辑的优化以确保安全回退。建议结合Issue评论中的SMEM溢出问题,评估长期解决方案。
Review讨论主要集中在正确性和设计验证上:
- wzhao18指出新FlashInfer版本导致CI失败和准确性崩溃(如GSM8K测试),关联到路由偏置数据类型问题,并提到“With new FI version, there are various CI failures with accuracy collapse”。
- mgoin对
trtllm_fp8_moe.py和trtllm_nvfp4_moe.py中的路由偏置转换提出疑问,询问是否已全局修复;johnnynunez回复修复由@wzhao18完成。 - yewentao256提及PR #38188(FlashInfer版本更新),暗示可能需单独处理版本升级。讨论结论是相关修复已通过其他PR(如#38556)解决,未解决疑虑包括SMEM溢出问题(在Issue评论中报告)。
参与讨论