1、【必填】【需求背景】:
推荐业务模型依赖inductor特性优化性能,需要保障特性可用性。可用性验收和社区CICD用例对齐,接入社区看板。930之前支持CICD社区所有模型用例(模型列表见附件),功能 & 精度通过率、加速比、编译耗时 对齐社区。
2、【必填】【详细描述】:
硬件:A5 PR标卡/服务器
交付内容:
模型:CICD所有模型迁移适配昇腾,列表见附件
适配内容:适配训练/推理(对齐社区),eager、inductor(compile)+ triton
指标收集:对齐社区(采集看板需要的指标)
3、【必填】【验收标准】:
完成模型迁移、适配、流水线搭建,接入社区看板。
模型eager:性能 &精度对齐社区
模型inductor模式:性能 &精度对齐社区


下面这版可直接作为需求正文。模型范围按你给出的口径固定为:训练 107 个、推理 88 个;训练使用 AMP,推理使用 BF16。
1、【必填】【需求背景】
推荐业务模型依赖 PyTorch Inductor 图编译能力优化性能。当前 Ascend NPU 在模型覆盖范围、功能和精度通过率、加速比、编译耗时以及持续集成能力方面,尚未与 PyTorch 社区 Inductor H100 CI 看板完全对齐。
为保障 Inductor + Triton 后端在 A5 上的模型泛化能力和长期可用性,需要迁移并适配社区 H100 CI 覆盖的 TorchBench、HuggingFace 和 TIMM 模型,搭建 NPU 持续集成流水线并接入社区同口径看板。
社区参考看板:PyTorch Compiler Inductor Dashboard
2、【必填】【需求价值】
- 扩大 A5 上 PyTorch Inductor + Triton 的模型覆盖范围,保障推荐业务模型能够稳定使用图模式。
- 建立与 PyTorch 社区 H100 CI 对齐的模型级功能、精度、性能和编译耗时评测体系。
- 通过 TorchBench、HuggingFace、TIMM 三类模型提升算子、Lowering、IR、融合、动态 Shape 和内存布局等能力的泛化性。
- 建立持续回归机制,及时发现 PyTorch、torch_npu、Triton-Ascend升级引入的功能和性能问题。
- 形成可持续维护的 NPU 模型看板,为后续版本发布和业务选型提供依据。
3、【必填】【详细描述】
3.1 基本信息
| 项目 | 内容 |
|---|---|
| PyTorch 版本 | 2.13+ |
| 硬件 | A5 PR 标卡/服务器 |
| NPU Device | npu |
| GPU 对标设备 | NVIDIA H100 |
| 执行模式 | Eager、Inductor(torch.compile)+ Triton |
| 训练数据类型 | AMP |
| 推理数据类型 | BF16 |
| 训练模型数量 | 107 |
| 推理模型数量 | 88 |
| 交付时间 | 9 月 30 日 |
| 新增 API | 不涉及 |
| 新增环境变量 | 不涉及 |
说明:训练和推理数量按测试模式分别统计。同一个模型同时参与训练和推理时,会分别计入两个模式。
3.2 交付内容
- 完成社区模型在 A5 NPU 上的安装、数据准备、依赖适配和测试入口迁移。
- 支持以下测试矩阵:
- NPU Eager + AMP Training;
- NPU Inductor + Triton + AMP Training;
- NPU Eager + BF16 Inference;
- NPU Inductor + Triton + BF16 Inference。
- 修复模型暴露的图捕获、算子支持、Decomposition、Lowering、IR、Codegen、Triton 编译、动态 Shape、融合和精度问题。
- 对暂时无法融合的算子提供正确的 ATen fallback,并在结果中记录 fallback 原因和范围。
- 对齐社区模型的输入、Batch Size、随机种子、精度容差、Warmup、迭代次数和指标统计方法。
- 搭建模型级 CI 流水线,支持失败模型重试、日志归档、问题分类及历史结果追踪。
- 接入社区同口径看板,采集并展示:
- 功能和精度状态;
- Eager 绝对性能;
- Inductor 绝对性能;
- Inductor/Eager 加速比;
- 编译耗时;
- 冷启动耗时;
- 显存占用;
- 图中断及 fallback 信息。
3.3 模型清单
训练模型:107 个
TorchBench:57 个
alexnet
resnet18
resnet50
resnext50_32x4d
densenet121
vgg16
mobilenet_v2
mobilenet_v3_large
mobilenet_v2_quantized_qat
resnet50_quantized_qat
mnasnet1_0
shufflenet_v2_x1_0
squeezenet1_1
pytorch_unet
vision_maskrcnn
yolov3
detectron2_fasterrcnn_r_101_c4
detectron2_fasterrcnn_r_101_dc5
detectron2_fasterrcnn_r_101_fpn
detectron2_fasterrcnn_r_50_c4
detectron2_fasterrcnn_r_50_dc5
detectron2_fasterrcnn_r_50_fpn
detectron2_fcos_r_50_fpn
detectron2_maskrcnn
detectron2_maskrcnn_r_101_c4
detectron2_maskrcnn_r_101_fpn
detectron2_maskrcnn_r_50_c4
detectron2_maskrcnn_r_50_fpn
Background_Matting
Super_SloMo
dcgan
pytorch_stargan
pytorch_CycleGAN_and_pix2pix
DALLE2_pytorch
LearningToPaint
attention_is_all_you_need_pytorch
BERT_pytorch
fastNLP_Bert
speech_transformer
tacotron2
tts_angular
demucs
dlrm
fambench_dlrm
nvidia_deeprecommender
fambench_xlmr
maml
maml_omniglot
soft_actor_critic
drq
moco
opacus_cifar10
pytorch_struct
pplbench_beanmachine
pyhpc_equation_of_state
pyhpc_isoneutral_mixing
pyhpc_turbulent_kinetic_energy
HuggingFace:32 个
AlbertForMaskedLM
AllenaiLongformerBase
BartForCausalLM
BertForMaskedLM
BlenderbotForCausalLM
BlenderbotForConditionalGeneration
DebertaV2ForMaskedLM
DistilBertForMaskedLM
DistillGPT2
ElectraForCausalLM
GPT2ForSequenceClassification
GPTJForCausalLM
GPTJForQuestionAnswering
GPTNeoForCausalLM
GPTNeoForSequenceClassification
GoogleFnet
LayoutLMForMaskedLM
M2M100ForConditionalGeneration
MBartForCausalLM
MT5ForConditionalGeneration
MegatronBertForCausalLM
MobileBertForMaskedLM
OPTForCausalLM
PLBartForCausalLM
PegasusForCausalLM
RobertaForCausalLM
T5ForConditionalGeneration
T5Small
TrOCRForCausalLM
XGLMForCausalLM
XLNetLMHeadModel
YituTechConvBert
TIMM:18 个
adv_inception_v3
beit_base_patch16_224
convnextv2_nano.fcmae_ft_in22k_in1k
deit_base_distilled_patch16_224
deit_tiny_patch16_224.fb_in1k
dm_nfnet_f0
ghostnet_100
inception_v3
mobilenetv2_100
mobilenetv3_large_100
mobilevit_s
nfnet_l0
repvgg_a2
swin_base_patch4_window7_224
tf_efficientnet_b0
visformer_small
vit_base_patch14_dinov2.lvd142m
vit_base_patch16_siglip_256
合计:57 + 32 + 18 = 107 个。
推理模型:88 个
TorchBench:31 个
BERT_pytorch
Background_Matting
LearningToPaint
alexnet
dcgan
demucs
densenet121
dlrm
drq
fastNLP_Bert
maml
maml_omniglot
mnasnet1_0
mobilenet_v2
mobilenet_v3_large
moco
nvidia_deeprecommender
opacus_cifar10
pyhpc_equation_of_state
pyhpc_isoneutral_mixing
pytorch_stargan
pytorch_unet
resnet18
resnet50
resnext50_32x4d
shufflenet_v2_x1_0
soft_actor_critic
speech_transformer
squeezenet1_1
vgg16
yolov3
HuggingFace:39 个
AlbertForMaskedLM
AllenaiLongformerBase
BartForCausalLM
BertForMaskedLM
BlenderbotForCausalLM
BlenderbotForConditionalGeneration
DebertaV2ForMaskedLM
DistilBertForMaskedLM
DistillGPT2
ElectraForCausalLM
GPT2ForSequenceClassification
GPTJForCausalLM
GPTJForQuestionAnswering
GPTNeoForCausalLM
GPTNeoForSequenceClassification
GoogleFnet
LayoutLMForMaskedLM
M2M100ForConditionalGeneration
MBartForCausalLM
MT5ForConditionalGeneration
MegatronBertForCausalLM
MobileBertForMaskedLM
OPTForCausalLM
PLBartForCausalLM
PegasusForCausalLM
RobertaForCausalLM
T5ForConditionalGeneration
T5Small
TrOCRForCausalLM
XGLMForCausalLM
XLNetLMHeadModel
YituTechConvBert
meta-llama/Llama-3.2-1B
google/gemma-2-2b
google/gemma-3-4b-it
openai/whisper-tiny
Qwen/Qwen3-0.6B
mistralai/Mistral-7B-Instruct-v0.3
openai/gpt-oss-20b
TIMM:18 个
TIMM 推理清单与训练清单一致,共 18 个。
合计:31 + 39 + 18 = 88 个。
4、【必填】【验收标准】
4.1 模型覆盖
- AMP Training:107/107 个模型均能在 NPU Eager 和 Inductor + Triton 模式下产生有效结果。
- BF16 Inference:88/88 个模型均能在 NPU Eager 和 Inductor + Triton 模式下产生有效结果。
eager_fail_to_run、model_fail_to_load、编译异常、执行异常或结果缺失均不能计为通过。- 模型依赖、数据集和权重下载应支持 CI 环境稳定复现。
4.2 功能与精度
- NPU Eager 模式按社区相同输入、随机种子和模型专用容差完成精度验证。
- NPU Inductor 输出与 NPU Eager 对齐,精度判断复用社区 Accuracy Harness 和模型专用容差。
- 训练模式同时校验前向输出、Loss 和关键梯度。
- 推理模式校验完整模型输出。
- 目标模型功能及精度通过率为 100%。
4.3 性能
- 以 NPU Eager 为本机基线,Inductor + Triton 模式性能不劣化。
- 采集模型级绝对执行耗时及
Inductor/Eager加速比。 - 加速比统计方式、Warmup、迭代次数和几何平均方法与社区 H100 看板一致。
- H100 作为 GPU 对标基线,重点对齐加速比和性能趋势;NPU/H100 绝对耗时分别展示,避免因硬件差异混为同一指标。
- 未达到目标的模型必须有明确瓶颈分析和跟踪问题,不能通过静默 fallback 掩盖性能问题。
4.4 编译耗时
- 训练 107 个、推理 88 个模型均需采集冷启动及编译耗时。
- 编译耗时统计口径与社区 H100 看板一致。
- 记录 Dynamo、AOTAutograd、Inductor Codegen、Triton 编译和 Autotune 等主要阶段耗时。
- 编译超时、异常重编译和异常缓存失效均需作为失败项或风险项展示。
4.5 流水线及看板
- 完成 A5 NPU 模型 CI 流水线搭建。
- 流水线覆盖 Eager/Inductor、Training/Inference、AMP/BF16 测试矩阵。
- 测试结果接入社区同口径看板,能够按模型、模式、dtype、后端和版本查询。
- 支持展示功能、精度、性能、加速比、编译耗时和失败日志。
- 模型新增、删除或社区配置变化时,应通过版本化清单更新,不得静默改变验收分母。
5、资料及接口变更
- 资料变更:涉及。需要新增模型测试、CI 使用和看板指标说明。
- API 变更:不涉及。
- 环境变量变更:不涉及。


A5 Inductor OpInfo高精度支持需求
1、【需求背景】
推荐业务模型依赖Inductor + Triton算子生成能力,需要基于PyTorch社区OpInfo测试保障算子功能和精度。当前NPU后端仍存在部分用例精度不一致、编译失败或运行失败,需要建立高精度模式下的算子正确性基线。
社区OpInfo脚本:test_torchinductor_opinfo.py
2、【需求价值】
保证NPU Inductor + Triton基础算子在高精度模式下稳定可用,及时发现并修复Lowering、Codegen、融合及计算精度问题,为TorchBench、HuggingFace等模型提供算子能力保障。
3、【详细描述】
- PT版本:2.13+
- 硬件:A5
- Device:NPU
- 后端:Inductor +
triton_experimental - 交付时间:9月30日
- 新增API/环境变量:不涉及
- 性能目标:不作为验收项
- 精度目标:对齐NPU Eager
主要工作:
- 在关闭HF32、保持原始dtype及FP32计算等高精度配置下运行社区OpInfo Test。
- 修复测试暴露的编译、运行和精度问题。
- NPU Eager支持但TE暂时无法正确实现的算子允许走ATen/CANN Fallback,且不得与前后Triton Kernel融合。
- NPU Eager不支持或CUDA专属用例允许保留有明确原因的Skip。
- 接入A5 CI并输出算子、dtype、Native/Fallback/Skip及失败信息。
- 使用
hf_Bert完成推理和训练验证。模型精度可根据实测误差适当放宽,但不得出现明显错误或NaN/Inf。
TorchBench脚本:Ascend TorchBench Runner
社区运行说明:PyTorch Dynamo Benchmark README
验证时通过--only hf_Bert指定模型;推理使用Accuracy + FP32 + Inductor,训练在相同配置上增加--train,NPU后端选择triton_experimental。
4、【验收标准】
- 高精度模式下,NPU Eager支持的OpInfo用例全部通过。
- Unexpected Failure为0,NPU支持范围内xfail为0。
- Skip必须有明确原因。
- Fallback执行正确且不参与Triton融合。
hf_Bert推理和训练能够编译、运行,输出、Loss及梯度无明显异常。- OpInfo测试接入CI并可持续回归。


1、【需求背景】
PyTorch FlexAttention 公共 API 的 _validate_device 只放行 CUDA/CPU/HPU/MPS,NPU 输入直接报 FlexAttention is only supported on CUDA, CPU, HPU, or MPS devices。放开设备校验后,flex_attention 与 flex_attention_backward 两个 HOP 均缺少 AutocastPrivateUse1 注册,前反向分别报 could not find kernel for HigherOrderOperator ... at DispatchKey.AutocastPrivateUse1,导致 torch.autocast(device_type="npu") + torch.compile(fullgraph=True) 在进入编译后端之前即失败。
穿刺已将问题拆为框架层与编译器层,本需求为框架层,只负责调用合法性与 autocast dispatch 语义;HOP 之后的 lowering、template、数值与缓存归属 NPU Inductor 需求。参考:/home/crm/flex_attention_torch_npu_inductor_requirement_split_report_20260804.md
2、【需求价值】
打通 FlexAttention 在 NPU 上的入口,使用户可像 CUDA 一样直接调用并使用 AMP;同时为 Inductor 侧冻结 HOP 输入契约(设备规则、autocast dtype、注册时机),使两需求并行推进,并消除 AMP 能力依赖 Inductor template import 顺序的隐式耦合。
3、【详细描述】
PT 版本:2.13+
硬件:Ascend 910B2(穿刺环境),A5 同规则适用
Device:NPU(PrivateUse1)
后端:不依赖编译后端,验收用例不得使用 backend="inductor"
工作量:6~10 人日(涉及上游接口修改则 10~14 人日),日历周期约 1.5~2 周
新增 API/环境变量:不涉及
性能目标:不作为验收项
精度目标:不涉及 kernel 数值,只保证 BF16 输出与 FP32 leaf grad 的 autocast 语义
主要工作:
精确 NPU device validation:Q/K/V 全部在 NPU 且 index 一致,拒绝混合设备并保留清晰报错,不得简单跳过校验;CPU/CUDA/HPU/MPS 行为不变。
forward HOP autocast 注册:为 flex_attention 注册 AutocastPrivateUse1,按 NPU autocast dtype 只转换 Q/K/V,_ExcludeDispatchKeyGuard 排除 key 后 redispatch 防递归,注册幂等。
backward HOP autocast 注册:反向是独立注册点,只注册前向不能覆盖;不重复转换 forward 保存张量,排除 key 后原样 redispatch。
注册生命周期解耦:下沉到 torch_npu 框架初始化或独立 AMP 注册模块,不依赖 torch_npu._inductor.kernel.flex_attention 是否被 import。
测试:交付不依赖 codegen 的 FakeTensor 用例(FakeTensorMode 下 device="npu" 建 Q/K/V,配合仅记录 FX GraphModule 的 AOTAutograd backend 完成假反向),另覆盖 Dynamo 捕获、嵌套/关闭 autocast、非法 device 组合与 CPU/CUDA 回归。
不在范围:Inductor lowering、Triton template/grid/autotune、backward DK/DV 拆核、冷缓存 native crash、Flex-Decoding 性能。
4、【验收标准】
NPU 输入不再被设备白名单拒绝,非法 device 组合仍有明确报错。
前反向不再出现 AutocastPrivateUse1 kernel missing。
BF16 autocast 下输出为 BF16,leaf Q/K/V 梯度回写为 FP32。
fullgraph=True 下无 graph break,前反向 HOP 稳定交给后端。
注册与 Inductor template import 顺序无关,重复 import 幂等。
FakeTensor 验收用例覆盖 device 校验、前反向 HOP 注册、BF16 输出与 FP32 leaf grad 元数据,且不以 Inductor/Triton/CANN Kernel、autotune 或数值精度为前提;python test_flex_attention_requirement1_fake_tensor.py 返回 0 并输出 PASS: NPU FlexAttention FakeTensor AOT graph capture and AMP/HOP metadata.,脚本不得导入 torch_npu._inductor、不得放宽断言。
CPU/CUDA 无回归。


1、需求背景:图模式当前 2.13+ 版本未经过验证
2、需求价值:2.13 版本作为长稳版本支持图模式 DVM 后端
3、需求详细:
描述:2.13 版本作为长稳版本支持图模式DVM后端,包括图模式整体架构重构,网络泛化支持
PT版本:2.13+
后端:A2/A3/A5
交付时间:730
新增API/环境变量列表:不涉及
性能目标(可选):对比Eager不劣化
精度目标(可选):对齐Eager
4、需求验收标准:
BERT_pytorch
dcgan
hf_Albert
LearningToPaint
mobilenet_v2
phlippe_densenet
phlippe_resnet
shufflenet_v2_x1_0
timm_regnet
timm_vovnet