| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【docs】文档修改-增加API参考&加速API Co-authored-by: xiao-qing123<xiaoqing14@h-partners.com> # message auto-generated for no-merge-commit merge: !263 merge dev into dev 【docs】文档修改-增加API参考&加速API Created-by: xiao-qing123 Commit-by: xiao-qing123 Merged-by: ascend-robot Description: fixes [#86](https://gitcode.com/Ascend/MindIE-SD/issues/86) 1、新增API参考(社区API接口) 2、新增加速API(原社区layer层) 3、删除readme中的快速入门和单多卡并行示例内容(有单独的quick_start承载) 4、算子融合单独拆分出来,在特性章节独立存在 5、删除特性章节目录名称中的“加速特性” 6、黄区大模型检测问题修改 See merge request: Ascend/MindIE-SD!263 | 3 个月前 | |
[bugfix]aclgraph fix:clone static inputs in ACLGraph capture to prevent stale data_ptr precision issue Co-authored-by: hyh_hh<huyinghong1@huawei.com> # message auto-generated for no-merge-commit merge: !326 merge aclgraph into dev [bugfix]aclgraph fix:clone static inputs in ACLGraph capture to prevent stale data_ptr precision issue Created-by: hyh_hh Commit-by: hyh_hh Merged-by: ascend-robot Description: # Purpose ACLGraph 后端精度修复与内存优化: - 修复 ACLGraph capture 阶段静态缓冲区引用 Dynamo example inputs 导致的 stale data_ptr 精度问题 - 新增 aclgraph_lazy_capture 模式,延迟 capture 至首次推理并使用 detach() 替代 clone(),解决多子图模型(60+ blocks)的 OOM 问题 - 新增 aclgraph_max_entries 配置,限制每个闭包的 entry 数量,防止动态输入形状下的显存无限增长 # Test Plan 1. TI2V-5B + aclgraph_lazy_capture=False(默认):验证输出视频精度正确 2. qwen-image-edit2509 + aclgraph_lazy_capture=True:验证无 OOM 且精度正确 # Test Report - TI2V-5B 默认配置:精度正确 ✅ - qwen-image-edit2509 lazy 模式:无 OOM,精度正确 ✅ See merge request: Ascend/MindIE-SD!326 | 2 个月前 | |
[Bugfix][eplb]Enhance EPLB fault logs and fault mode library Co-authored-by: guowenna1<guowenna1@huawei.com> # message auto-generated for no-merge-commit merge: !402 merge 0701_fix into dev [Bugfix][eplb]Enhance EPLB fault logs and fault mode library Created-by: guowenna1 Commit-by: guowenna1 Merged-by: ascend-robot Description: # PR Title [Bugfix][eplb]Enhance EPLB fault logs and fault mode library # Which issue(s) this PR fixes or accomplishes Fixes #ISSUE ID # Purpose 本 PR 用于完善 EPLB 故障模式库与运行时日志,满足故障定位工具暂不具备执行指令能力时,用户仅依赖日志内容也能完成定位排查的要求。 主要修改如下: 1. 完善 EPLB 运行时日志中的定位排查信息: - Scheduler 端口绑定失败日志补充端口占用、 --host、--port 排查路径。 - Worker 连接 Scheduler 失败日志补充 actual_error、进程状态、端口监听、worker/scheduler 地址一致性、网络连通性排查路径。 - 认证失败日志补充 scheduler --auth_key、worker auth_key、EPLB_AUTH_KEY 对比方法。 - profile 任务入队失败日志补充 scheduler/worker 消费线程、队列积压、lb_interval 和队列容量排查方法。 - scheduler 处理上报失败日志补充 moe_layer_idx、load、local_expert_list、block_num、world_size、mode/redundant 排查方法。 - 布局未更新日志补充 layer_idx、rank 上报完整性、block_num、负载变化和 EPLB 阈值排查方法。 - 未知指令日志补充 instruction producer、TaskPayload.task_type、TASK_DISPATCHER 排查方法。 2. 同步完善中英文 EPLB 故障模式库: - docs/zh/appendix/eplb_fault_mode_library.csv - docs/en/appendix/eplb_fault_mode_library.csv - 将 故障关键日志 从短关键字改为完整日志模板。 - 动态字段使用 {...} 占位。 - 日志内容不包含 EPLB 故障模式编号。 - 故障定位方法与运行时日志中的排查思路保持一致。 3. 补充 EPLB 未知 TaskType 的 ERROR 日志: - 非 TaskPayload 指令输出 Unknown instruction ignored。 - 非法 TaskPayload.task_type 输出 Unknown task type。 - 保持原有异常行为不变,未知任务类型仍抛出 ParametersInvalid。 # Test Plan 测试内容如下: 1. 故障模式库结构校验: - 验证 EPLB 故障模式库 schema。 - 验证故障模式库仅作为文档引用,不进入包发布数据。 - 验证故障模式库只包含 EPLB 故障模式。 2. EPLB 故障模式日志校验: - 验证 scheduler 未运行 / worker 连接失败日志。 - 验证 scheduler 端口不可用日志。 - 验证认证密钥不一致日志。 - 验证 profile 任务入队失败日志。 - 验证 scheduler 处理上报失败异常。 - 验证专家初始放置失败、共享专家放置失败、专家交换状态不一致、布局未更新、未知任务指令等场景。 3. 提交前静态检查: - 对本次修改文件执行 pre-commit run --files。 - 参考 MR 规则表中 Python 相关规则,重点关注日志工具使用、异常处理、导入顺序、格式与行宽等静态检查要求。 # Test Report 已执行并通过: ```shell python -m unittest tests/test_fault_modes.py -v See merge request: Ascend/MindIE-SD!402 | 1 个月前 | |
[Bugfix] fix rainfusion v2 precision on minimax h3 Co-authored-by: fan2956<zhoufan53@huawei.com> # message auto-generated for no-merge-commit merge: !497 merge dev_rf into dev [Bugfix] fix rainfusion v2 precision on minimax h3 Created-by: fan2956 Commit-by: fan2956 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20251224 --> # Which issue(s) this PR fixes or accomplishes > **如问题已解决,按照下方示例附上ISSUE单号 / Apply bug or request issue as follow if the solved**\ > Fixes #ISSUE ID\ > **Fixes关键字会自动关闭issue,如问题部分解决请不要使用Fixes,可以用下方标签替代\ > Fixes will automatically close issue, please use the following tag if only part of the issue is solved**\ > Fix part of #ISSUE ID # Purpose 修复 RainFusion rf_v2 在非 128 对齐、非 8×8 空间对齐视频网格上的 block mask 与 NPU kernel 分块不一致问题。 以 MiniMax H3 的 1344×768(latent grid 为 (62, 24, 42))为例,原实现会将 video 与 text 分别池化生成稀疏 mask,但 kernel 按拼接后的连续序列分块,导致 video 尾部与 text/prefix 跨 block 混合、索引错位,进而出现视频花图。 本 PR将不规则 video 尾段与text共同作为prefix,共同计算pooling,不参与稀疏计算。 # Test Plan vllm-omni H3 E2E测试 vllm serve "${MODEL}" \ --omni \ --host 0.0.0.0 \ --port "${PORT}" \ --trust-remote-code \ --num-gpus 8 \ --usp 8 \ --ring 1 \ --text-encoder-tp-size 8 \ --vae-parallel-mode tile \ --enable-distributed-layerwise-offload \ --diffusion-attention-config '{"default":{"backend":"RAINFUSION_ATTN","block_sparse":{"sparsity":0.8,"start_step":12}}}' \ --vae-use-tiling \ --vae-patch-parallel-size 8 curl -sS -X POST "${API_URL}" \ -F 'prompt=In a snowy blue-purple forest, Ori carefully walks past a sleeping giant; footsteps crunch in the snow while the creature breathes and softly snorts.' \ -F 'width=1344' \ -F 'height=768' \ -F 'aspect_ratio=16:9' \ -F 'fps=24' \ -F "num_inference_steps=50" \ -F 'flow_shift=12' \ -F 'seed=2102' \ -F 'extra_params={"task":"t2va","duration":8.7,"audio_flow_shift":3.0}' \ -o t2va.mp4 # Test Report 精度正常 See merge request: Ascend/MindIE-SD!497 | 1 天前 | |
[Bugfix][quant]Switch MXFP4QuantFA float path to npu_fusion_attention Co-authored-by: shijia10<shijia40@huawei.com> # message auto-generated for no-merge-commit merge: !454 merge quant into dev [Bugfix][quant]Switch MXFP4QuantFA float path to npu_fusion_attention Created-by: shijia10 Commit-by: shijia10 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20251224 --> # Which issue(s) this PR fixes or accomplishes # Purpose 将 MXFP4QuantFA._forward_float 中的注意力算子从 fused_infer_attention_score_v2 切换为标准的 torch_npu.npu_fusion_attention: - 参数名对齐新算子:num_query_heads -> head_num、softmax_scale -> scale、pre_tokens/next_tokens -> pre_tockens/next_tockens - 移除 out_dtype 显式指定 - 移除 _crop_fa_output 后处理,直接返回算子输出 - 影响文件:mindiesd/quantization/layer.py # Test Plan > 建议在 NPU 上对 MXFP4QuantFA 的 _forward_float 路径进行验证: > 1. 不同 input_layout(BNSD / BSND / BSH 等)下输出 shape 是否与改动前一致 > 2. 与改动前基线做数值精度对比,确认 npu_fusion_attention 默认输出 dtype 满足 MXFP4 精度要求 > 3. 确认 pre_tockens / next_tockens 的 mask 行为与原 pre_tokens / next_tokens 一致 # Test Report > 精度测试结果  See merge request: Ascend/MindIE-SD!454 | 29 天前 | |
[Bugfix][share_memory]Prevent pickle deserialization RCE on ZMQ share-handle channel Co-authored-by: changetheway<guotaoyuan1@h-partners.com> # message auto-generated for no-merge-commit merge: !360 merge share_memory_0613 into dev [Bugfix][share_memory]Prevent pickle deserialization RCE on ZMQ share-handle channel Created-by: changetheway Commit-by: changetheway Merged-by: ascend-robot Description: # Which issue(s) this PR fixes or accomplishes Fixes [#101](https://gitcode.com/Ascend/MindIE-SD/issues/101) # Purpose mindiesd/share_memory.py 通过 ZMQ PUB/SUB 在 master 与子进程间广播 NPU 共享存储句柄, 此前使用 socket.send_pyobj() / socket.recv_pyobj(),其接收端内部调用 pickle.loads() 直接反序列化 socket 字节流。pickle 可被构造的恶意字节流触发任意 callable 调用 (如 os.system / subprocess.Popen / eval),导致接收端 **远程代码执行(RCE)**。 本 PR 引入受限反序列化器 SafeUnpickler 替换不安全的 pickle 接口: - 新增 mindiesd/utils/safe_pickle.py:SafeUnpickler(pickle.Unpickler) 重写 find_class, 采用「显式黑名单 gadget + 模块前缀白名单 + 默认拒绝」三道闸;并提供 drop-in 封装 safe_dumps/safe_dump/safe_load/safe_loads。 - share_memory.py:pub_socket.send_pyobj(handle) → pub_socket.send(safe_dumps(handle)); sub_socket.recv_pyobj() → safe_loads(sub_socket.recv())。 - NPU 句柄为 int/bytes 组成的普通 tuple(属 builtins 白名单),合法数据正常往返; 恶意 payload 在 find_class 阶段即被拒绝,不触发执行。 - 新增 tests/test_safe_pickle.py(11 例,纯逻辑、CPU 兼容,MINDIE_TEST_MODE=NPU 时跳过), 并同步更新 tests/test_share_memory.py 的 zmq mock。 对外 API(share_memory() / init_share_memory() 等)签名与行为不变。 # Test Plan 1. python -m py_compile mindiesd/utils/safe_pickle.py mindiesd/share_memory.py tests/test_share_memory.py tests/test_safe_pickle.py 2. 安全拦截验证:python tests/test_safe_pickle.py -v(覆盖 os.system / eval / subprocess.Popen 拦截、numpy 拒绝、黑名单优先、合法句柄往返)。 3. 三模式门控:分别以 MINDIE_TEST_MODE=ALL|CPU|NPU 运行,确认 CPU 兼容用例仅在 NPU 模式跳过。 4. 回归:cd tests && python test_share_memory.py -v(含真实 NPU 上的 broadcast_handle master/slave、share_memory 主流程)。 # Test Report python tests/test_share_memory.py -v  python tests/test_safe_pickle.py -v  See merge request: Ascend/MindIE-SD!360 | 1 个月前 | |
[Feature][ops]Add frequency regulator operator Co-authored-by: w00955629<wangruonan14@huawei.com> # message auto-generated for no-merge-commit merge: !395 merge feature/frequency-optimization-op into dev [Feature][ops]Add frequency regulator operator Created-by: w00955629 Commit-by: w00955629 Merged-by: ascend-robot Description: # Which issue(s) this PR fixes or accomplishes # Purpose Add MindIE-SD plugin support for the CANN frequency optimization operator. This change adds: - C++ wrapper and registration for the two-stage aclnn operator flow. - BackendSelect registration for scalar-only dispatch. - Python API export from mindiesd. - Lightweight wrapper tests for parameter validation and torch op forwarding. - Incremental test mapping for the new plugin files. # Test Plan - Build MindIE-SD from source with the CANN package that contains the operator. - Install with editable mode. - Verify Python import and torch op registration. - Run a smoke test on supported hardware and confirm the operator returns success status. - Run wrapper unit tests for Python-side parameter validation. # Test Report - git diff --check: passed. - Python py_compile for modified Python files: passed. - GitCode remote hook: passed. - Source build and runtime smoke test on target environment: passed by local validation. See merge request: Ascend/MindIE-SD!395 | 1 个月前 | |
feat: quant_flash_attn and quant_flash_attn_metadata operators Co-authored-by: lijinxi<lijinxi2@huawei.com> # message auto-generated for no-merge-commit merge: !313 merge dev into dev feat: quant_flash_attn and quant_flash_attn_metadata operators Created-by: weixin_44144262 Commit-by: lijinxi Merged-by: ascend-robot Description: # Which issue(s) this PR fixes or accomplishes > Fix part of #136 # Purpose 新增mxfp4的fa算子,配套的还有一个aicpu的metadata算子 # Test Plan 运行tests/ops/quant_flash_attn/quant_flash_attn_golden.py测试单算子精度 # Test Report  See merge request: Ascend/MindIE-SD!313 | 2 个月前 | |
[Bugfix][log]Unify MindIE SD logging and improve diagnostics Co-authored-by: guowenna1<guowenna1@huawei.com> # message auto-generated for no-merge-commit merge: !328 merge 0603_log into dev [Bugfix][log]Unify MindIE SD logging and improve diagnostics Created-by: guowenna1 Commit-by: guowenna1 Merged-by: ascend-robot Description: # Which issue(s) this PR fixes or accomplishes Fix part of https://gitcode.com/Ascend/MindIE-SD/issues/158 # Purpose 本 PR 修复 MindIE SD 日志问题,主要包括: 1. 统一 MindIE SD Python 模块日志出口,避免 compilation、share_memory 等模块直接使用标准库 logging.getLogger(__name__),导致日志格式、落盘路径、过滤级别和开关行为不一致。 2. 优化日志模块默认输出格式,确保默认与 verbose 模式均包含 MindIE SD 组件标识。 3. 精简默认 INFO 场景日志,将正常流程、调试态信息降级为 DEBUG,避免默认运行场景产生不必要日志。 4. 增强 WARNING/ERROR 日志内容,补充问题描述、可能根因、参数期望值/实际值和进一步排查建议。 5. 修复 pre-commit 暴露的日志格式、pylint、bandit、typos 等问题,包括日志参数数量不匹配、拼写错误、动态 API 静态检查误报标注和 EPLB scheduler 嵌套层级过深问题。eplb_scheduler、greedy_algorithm中此类改动较多,多是形式改动,无实际影响。 # Test Plan 1. 执行 pre-commit 全量检查,覆盖 ruff、pylint、bandit、typos 等静态质量门禁。 2. 执行 Python 编译检查,确认本次修改未引入语法错误。 3. 执行 git diff 空白检查,确认无行尾空白、格式污染。 4. 白盒检查 mindiesd 正式代码中默认 INFO 日志是否清理完成。 5. 白盒检查除日志模块本体外,是否仍存在直接使用标准库 logging.getLogger(__name__) 的模块。 # Test Report 已执行并通过:  See merge request: Ascend/MindIE-SD!328 | 2 个月前 | |
[Bugfix][share_memory]Prevent pickle deserialization RCE on ZMQ share-handle channel Co-authored-by: changetheway<guotaoyuan1@h-partners.com> # message auto-generated for no-merge-commit merge: !360 merge share_memory_0613 into dev [Bugfix][share_memory]Prevent pickle deserialization RCE on ZMQ share-handle channel Created-by: changetheway Commit-by: changetheway Merged-by: ascend-robot Description: # Which issue(s) this PR fixes or accomplishes Fixes [#101](https://gitcode.com/Ascend/MindIE-SD/issues/101) # Purpose mindiesd/share_memory.py 通过 ZMQ PUB/SUB 在 master 与子进程间广播 NPU 共享存储句柄, 此前使用 socket.send_pyobj() / socket.recv_pyobj(),其接收端内部调用 pickle.loads() 直接反序列化 socket 字节流。pickle 可被构造的恶意字节流触发任意 callable 调用 (如 os.system / subprocess.Popen / eval),导致接收端 **远程代码执行(RCE)**。 本 PR 引入受限反序列化器 SafeUnpickler 替换不安全的 pickle 接口: - 新增 mindiesd/utils/safe_pickle.py:SafeUnpickler(pickle.Unpickler) 重写 find_class, 采用「显式黑名单 gadget + 模块前缀白名单 + 默认拒绝」三道闸;并提供 drop-in 封装 safe_dumps/safe_dump/safe_load/safe_loads。 - share_memory.py:pub_socket.send_pyobj(handle) → pub_socket.send(safe_dumps(handle)); sub_socket.recv_pyobj() → safe_loads(sub_socket.recv())。 - NPU 句柄为 int/bytes 组成的普通 tuple(属 builtins 白名单),合法数据正常往返; 恶意 payload 在 find_class 阶段即被拒绝,不触发执行。 - 新增 tests/test_safe_pickle.py(11 例,纯逻辑、CPU 兼容,MINDIE_TEST_MODE=NPU 时跳过), 并同步更新 tests/test_share_memory.py 的 zmq mock。 对外 API(share_memory() / init_share_memory() 等)签名与行为不变。 # Test Plan 1. python -m py_compile mindiesd/utils/safe_pickle.py mindiesd/share_memory.py tests/test_share_memory.py tests/test_safe_pickle.py 2. 安全拦截验证:python tests/test_safe_pickle.py -v(覆盖 os.system / eval / subprocess.Popen 拦截、numpy 拒绝、黑名单优先、合法句柄往返)。 3. 三模式门控:分别以 MINDIE_TEST_MODE=ALL|CPU|NPU 运行,确认 CPU 兼容用例仅在 NPU 模式跳过。 4. 回归:cd tests && python test_share_memory.py -v(含真实 NPU 上的 broadcast_handle master/slave、share_memory 主流程)。 # Test Report python tests/test_share_memory.py -v  python tests/test_safe_pickle.py -v  See merge request: Ascend/MindIE-SD!360 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 天前 | ||
| 29 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 |