Version Compatibility Description

Product Version Information

ItemContent
Product NameMindIE SD
Product Version3.1.0
Version TypeOfficial
Maintenance PeriodThree months
Product NameVersion
CANN9.1.0
TorchNPU26.1.0
CCAEiMaster CCAE V100R026C10SPC100
Ascend HDKFor version compatibility, see CANN Version Compatibility

Version Compatibility Description

MindIE components must be used together as a matched set. Do not mix components across versions.

Table 1 Software version compatibility description

MindIE SD VersionCANN 9.1.0CANN 9.0.1CANN 9.0.0CANN 8.5.1CANN 8.5.0
3.1.0YYY//
3.0.0//YYY
2.3.0////Y
MindIE SD VersionTorchNPU 26.1.0TorchNPU 26.0.0TorchNPU 7.3.0
3.1.0YYY
3.0.0/YY
2.3.0//Y
MindIE SD VersionCCAE iMaster CCAE V100R026C10SPC100CCAE iMaster CCAE V100R026C00SPC010CCAE iMaster CCAE V100R025C30SPC100
3.1.0YYY
3.0.0/YY
2.3.0//Y

Version Usage Notes

None

3.1.0 Change Description

New Features

NumberDetails
1Ported the Fused Infer Attention Score (FIA) operator to the MindIE SD managed domain. The operator now supports a dedicated FP8 E4M3FN per‑block path, with host checker and tiling key validation to reject unsupported quant modes (noquant/INT8/HIFLOAT8/MXFP8), providing an extensible foundation for low‑precision and sparse attention acceleration.
2Added full MoE inference support, including a fused_moe kernel interface for NPU‑accelerated forward computation. Integrated torch_npu.npu_moe_gating_top_k and npu_moe_gating_top_k_softmax to offload expert selection to the NPU, reducing kernel launches and data movement. Extended MoE quantization with both W8A8 MXFP8 and INT8 paths, validated with HunyuanImage-3.0 in vLLM-Omni.
3Enhanced sparse attention (SLA/BSA) with an AscendC backend for Block Sparse Attention. Upgraded aclnnBlockSparseAttention to V2 with FP8 quantization compatibility and expanded block size support (q=128, kv=256/512). Automatic fallback to V1 is provided for older CANN versions that only expose the V1 symbol.
4Extended quantization capabilities with online quantization (OnlineQuantConfig) supporting FA and MM algorithms with fallback options. Added MXFP8 dynamic quantization (MXFP8_DYNAMIC) that applies rotation and MXFP8 quantization to Q/K before FA, and introduced MXFP4 quantized Flash Attention (quant_flash_attn) with deployment‑side MXFP4 FA logic.
5Introduced a new Wheel packaging mode (MINDIESD_WHEEL_MODE=multi_torch). A single wheel now supports torch 2.6, 2.7, 2.8, 2.9, and 2.10, dynamically selecting the appropriate libPTAExtensionOPS.so at runtime based on torch.__version__. The default fixed‑torch‑version build remains unchanged.
6Added unified device detection (is_a5_device()) for Ascend 950PR and Ascend 950DT. Public APIs such as attention_forward automatically route to fused_attn_score on these devices, with clear error messages and migration guidance for direct calls to deprecated operators.
7Added support for a Frequency Regulator operator plugin, including a C++ wrapper, aclnn two‑stage flow, BackendSelect registration, and Python API export.
8Streamlined deployment and ecosystem integration: merged vLLM-Omni and MindIE-SD into a unified Docker image with consistent naming, version tagging, and OCI metadata; switched the pip installation source to the public PyPI; and added a developer skill set under .agents/skills/ (ascend‑deploy, auto‑optimization, code‑standards, compilation‑dev).

Modified Features

NumberDetails
1Adjusted operator compilation scope. Removed the original CANN version detection and operator filtering logic, and unified compilation to build all operators for all platforms (ascend910/ascend910b/ascend910_93/ascend950) in a single pass. This fixes the issue where generic operators such as laser_attention and ada_block_sparse_attention failed to generate kernels for 910B/910 platforms under CANN ≥ 9.0. Compilation behavior can now be overridden via the ASCEND_OP_NAME and ASCEND_COMPUTE_UNIT environment variables.
2Adjusted MoE Dispatcher default strategy. Previously, the strategy defaulted to static for the Atlas 800I A2 Inference Server and dynamic for the Atlas 800I A3 SuperPoD Server/Ascend 950PR/Ascend 950DT. It is now selected based on the relationship between top_k and ep_size, with dynamic preferred in MoE EP scenarios to mitigate the performance degradation caused by cross-node all-to-all communication.
3Refactored logging system. Unified log output for the MindIE SD Python module, with component identifiers now included in both default and verbose modes. Reduced verbosity in default INFO logs (normal workflow messages downgraded to DEBUG) and enhanced WARNING/ERROR logs with clearer problem descriptions, potential root causes, and remediation suggestions.
4Added security compilation options. Incorporated security compilation and linking flags into the operator build following security hardening guidelines, improving the security of the generated artifacts.

Deleted Features

NumberDetails
1Deleted the csrc/ops/ascendc/ directory and all its operator source files, and consolidated them under per-op directory management. Synchronously updated the source file mappings in test cases that point to the deleted directory.

Interface Changes

The interface changes described in this section include additions, modifications, deprecations, and removals. Interface changes reflect only code-level modifications and do not include improvements to the documentation itself in terms of language, formatting, links, and so on.

  • New: indicates an interface newly added in this version.

  • Modified: indicates that this interface has been modified compared with the previous version.

  • Deprecated: indicates that this interface stops evolving as of the version in which the deprecation statement is made, and may be removed one year after the statement.

  • Deleted: indicates that the interface is removed in this version.

Class Name/API PrototypeCategoryChange Description
def mindiesd.frequency_regulatorNewFrequency regulator operator interface
def mindiesd.fused_moeNewFused MoE operator interface, supporting open-source frameworks to perform MoE forward computation on NPUs
class mindiesd.OnlineQuantConfigNewOnline quantization configuration class
class mindiesd.TimestepManagerNewTimestep manager class
class mindiesd.TimestepPolicyConfigNewTimestep policy configuration class
class mindiesd.QuantConfigNewQuantization configuration class (export restored; not exported in mindiesd.init in 3.0.0)
def mindiesd.sparse_attentionModificationUpgraded to aclnnBlockSparseAttentionV2, compatible with FP8 quantization; automatically falls back to V1 on older CANN versions that contain only V1 aclnn symbols

Resolved Issues

Serial NumberCategoryProblem Description
1SecurityZMQ shared memory handle broadcast uses pickle to directly deserialize the socket byte stream, posing an arbitrary code execution (RCE) risk.
2SecurityThe LayerNorm operator has a size_t computation underflow that leads to out-of-bounds iteration and potential memory corruption.
3Operator and CompilationIn CANN≥9.0 environments, general-purpose operators such as laser_attention and ada_block_sparse_attention do not generate kernels for the 910B/910 platforms, resulting in missing operators on the corresponding platforms.
4Operator and CompilationTIK operator build linking fails when CMake≥4.1.0.
5Operator and CompilationWhen ABSA and FIA operators are compiled simultaneously, a tiling registration key conflict causes the process to crash and exit (core dump).
6Operator and CompilationMissing header files or incorrect include paths during operator compilation cause build failures.
7Stability and PrecisionRepeated calls to enable_offload register the forward hook multiple times, and the forward event recording order is incorrect.
8Stability and PrecisionWhen triton is not installed, import mindiesd triggers std::bad_alloc.
9Stability and PrecisionA defect in the input_layout validation of the sparse_block_estimate fake operator leads to uninitialized variables and out-of-bounds access.
10Stability and PrecisionMoE W8A8 dynamic quantization has abnormal precision.
11Stability and PrecisionDuring ACLGraph capture, the static input data_ptr contains stale data, affecting execution precision.
12Stability and PrecisionFor some Hunyuan models using the FA512 operator, the V-side per-block dequant scale is blocked by a hardcoded block_size=256 validation.
13Stability and PrecisionOn older CANN versions that contain only V1 aclnn symbols, block_sparse_attention V2 fails at dlsym, making the path unavailable.
14LoggingThe log output points, formats, and levels of each module are inconsistent, with redundant information in default scenarios and insufficient information in abnormal scenarios.
15TestingThe block_sparse_attention UT supports only Ascend 950PR / Ascend 950DT devices and cannot be executed in other environments.

Known Issues

Serial NumberCategoryProblem Description
1OperatorContinuously supplement matrix multiplication operators implemented based on CATLASS and Triton.
2Usability ImprovementContinuously improve end-to-end integration and runnable examples for third-party frameworks such as Cache DiT and DiffSynth-Engine.
3Performance ImprovementContinuously expand parallel compute-communication overlap and fusion solutions, and advance the joint optimization of EPLB and MoE fusion.

Upgrade Impact

Impact on the Current System During the Upgrade

  • Impact on services

    The software version upgrade causes service interruption.

  • Impact on network communication

    There is no impact on network communication.

Impact on the Current System After the Upgrade

  • If the original code directly calls legacy paths of FIA such as noquant/INT8/HIFLOAT8/MXFP8/PA/mask/rope/prefix/sparse, it must be migrated to the FP8 E4M3FN per-block path; otherwise, it will be blocked by the dual verification of host checker and tiling key.

  • Log levels and content have been adjusted: default INFO logs are streamlined, and services that rely on logs for monitoring and alerting need to confirm whether the log content is sufficient.

Vulnerability Patch List

Serial NumberCategoryVulnerability Description
1SecurityThe ZMQ shared memory handle broadcast uses pickle to deserialize the socket byte stream, posing an arbitrary code execution (RCE) risk. A restricted deserializer SafeUnpickler has been introduced, which only allows loading safe types from the whitelist.
2SecurityThe size_t computation underflow in the LayerNorm operator leads to out-of-bounds iteration and potential memory corruption. A TORCH_CHECK validation has been added before dimension computation.