已合并
新增A5 新特性说明 #5265
新增A5 新特性说明 #5265
已合并
Cruiter创建于 8月21日
共 6 个文件变更+443-100
@@ -14,7 +14,6 @@
14│ ├── asc_c_api_contributing.md # Ascend C C API贡献指南14│ ├── asc_c_api_contributing.md # Ascend C C API贡献指南
15│ ├── asc_doc_contributing.md # Ascend C 资料贡献指南15│ ├── asc_doc_contributing.md # Ascend C 资料贡献指南
16│ ├── asc_doc_design_rules.md # Ascend C 资料设计规范16│ ├── asc_doc_design_rules.md # Ascend C 资料设计规范
17-│ ├── asc_950_feature_guide.md # Ascend 950PR/Ascend 950DT新增特性导航
18│ ├── asc_how_to_choose_api.md # Ascend C多层级编程接口选择参考文档17│ ├── asc_how_to_choose_api.md # Ascend C多层级编程接口选择参考文档
19│ └── quick_start.md # 快速入门文档18│ └── quick_start.md # 快速入门文档
20├── en # 英文文档目录19├── en # 英文文档目录
@@ -24,7 +23,6 @@
24│ ├── asc_c_api_contributing.md # Ascend C C API贡献指南23│ ├── asc_c_api_contributing.md # Ascend C C API贡献指南
25│ ├── asc_doc_contributing.md # Ascend C 资料贡献指南24│ ├── asc_doc_contributing.md # Ascend C 资料贡献指南
26│ ├── asc_doc_design_rules.md # Ascend C 资料设计规范25│ ├── asc_doc_design_rules.md # Ascend C 资料设计规范
27-│ ├── asc_950_feature_guide.md # Ascend 950PR/Ascend 950DT新增特性导航
28│ ├── asc_how_to_choose_api.md # Ascend C多层级编程接口选择参考文档26│ ├── asc_how_to_choose_api.md # Ascend C多层级编程接口选择参考文档
29│ └── quick_start.md # 快速入门文档27│ └── quick_start.md # 快速入门文档
30├── README_en.md28├── README_en.md
@@ -14,7 +14,6 @@ Key directory structure is as follows:
14│ ├── asc_c_api_contributing.md # Ascend C C API contribution guide14│ ├── asc_c_api_contributing.md # Ascend C C API contribution guide
15│ ├── asc_doc_contributing.md # Ascend C documentation contribution guide15│ ├── asc_doc_contributing.md # Ascend C documentation contribution guide
16│ ├── asc_doc_design_rules.md # Ascend C documentation design rules16│ ├── asc_doc_design_rules.md # Ascend C documentation design rules
17-│ ├── asc_950_feature_guide.md # Ascend 950PR/Ascend 950DT new feature guide
18│ ├── asc_how_to_choose_api.md # Ascend C Multi-Level Programming Interface Selection Guide17│ ├── asc_how_to_choose_api.md # Ascend C Multi-Level Programming Interface Selection Guide
19│ └── quick_start.md # Quick start documentation18│ └── quick_start.md # Quick start documentation
20├── en # English documentation directory19├── en # English documentation directory
@@ -24,7 +23,6 @@ Key directory structure is as follows:
24│ ├── asc_c_api_contributing.md # Ascend C C API contribution guide23│ ├── asc_c_api_contributing.md # Ascend C C API contribution guide
25│ ├── asc_doc_contributing.md # Ascend C documentation contribution guide24│ ├── asc_doc_contributing.md # Ascend C documentation contribution guide
26│ ├── asc_doc_design_rules.md # Ascend C documentation design rules25│ ├── asc_doc_design_rules.md # Ascend C documentation design rules
27-│ ├── asc_950_feature_guide.md # Ascend 950PR/Ascend 950DT new feature guide
28│ ├── asc_how_to_choose_api.md # Ascend C Multi-Level Programming Interface Selection Guide26│ ├── asc_how_to_choose_api.md # Ascend C Multi-Level Programming Interface Selection Guide
29│ └── quick_start.md # Quick start documentation27│ └── quick_start.md # Quick start documentation
30├── README_en.md28├── README_en.md
@@ -1,48 +0,0 @@
1-# Ascend 950PR/Ascend 950DT New Feature Navigation
2- 
3-This document indexes the new hardware features of Ascend 950PR/Ascend 950DT (NPU architecture version 3510) compared with the previous generation (2201), and provides links to the corresponding programming models, APIs, and operator practice materials for each feature.
4- 
5-> Applicable chips: Ascend 950PR, Ascend 950DT (`__NPU_ARCH__` = 3510)
6- 
7-> For details about the architecture changes, see [2201-to-3510 Architecture Changes](../zh/guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_arch_changes.md).
8- 
9----
10- 
11-## New Feature Overview
12- 
13-| No. | New Feature | Corresponding Programming Model and Feature | Corresponding API | Corresponding Operator Practice Material |
14-|-----|-------------|---------------------------------------------|-------------------|------------------------------------------|
15-| 1 | **RegBase architecture**: The AIV core Vector computation switches from MemBase to RegBase. Data is moved from UB to the register for computation, and intermediate results are operated directly in the register without writing back to UB. | [Reg Vector Computation Programming](../zh/guide/programming_guide/programming_model/ai_core_simd_programming/cpp_tensor_programming/reg_vector_computation.md) | [Reg Vector Computation API List](../zh/api/SIMD-API/basic_api/reg_vector_compute/reg_vector_compute.md) | [VF Fusion Optimization](../zh/guide/operator_practice/simd_operator_optimization/vector_compute/vf_optimization/vf_fusion_optimization.md), [VF Loop Optimization](../zh/guide/operator_practice/simd_operator_optimization/vector_compute/vf_optimization/vf_loop_optimization.md) |
16-| 2 | **SIMT programming model**: A new SIMT hardware unit (DCache, Warp Scheduler, 128 KB Register File) is added to support thread-level parallel programming. | [AI Core SIMT Programming](../zh/guide/programming_guide/programming_model/ai_core_simt_programming/ai_core_simt_programming.md) | [SIMT API List](../zh/api/SIMT-API/overview.md) | [SIMT Operator Implementation](../zh/guide/operator_practice/simt_operator_impl/basics.md), [SIMT Operator Performance Optimization](../zh/guide/operator_practice/simt_operator_optimization/memory_access/memory_access_merge.md) |
17-| 3 | **SIMD and SIMT hybrid programming**: SIMD and SIMT code work together in the same kernel. | [SIMD and SIMT Hybrid Programming](../zh/guide/programming_guide/advanced_programming/advanced_ai_core_programming_model/simd_simt_hybrid_programming/overview.md) | [Hybrid Programming API List](../zh/api/SIMT-API/SIMD_SIMT_hybrid_programming_intro/api_list.md), [Built-in Variables](../zh/api/SIMT-API/SIMD_SIMT_hybrid_programming_intro/extended_syntax/builtin_variables.md) | [Hybrid Programming Operator Implementation](../zh/guide/operator_practice/simd_simt_hybrid_operator_impl/basics.md), [Hybrid Programming Performance Optimization](../zh/guide/operator_practice/simd_simt_hybrid_optimization/memory_access/ub_memory_access.md) |
18-| 4 | **HiF8 (hifloat8_t) data type**: The Cube computation unit supports matrix multiplication with the HiF8 data type. | Data types supported by Cube in [3510 Architecture Specifications](../zh/guide/programming_guide/advanced_programming/hardware_implementation/architecture_spec/npu_arch_3510.md) | [Built-in Data Type Description](../zh/api/SIMD-API/basic_api/data_structures/builtin_data_types.md), [Cast Type Conversion](../zh/api/SIMD-API/basic_api/reg_vector_compute/type_conversion/Cast.md), [asc_float2hif8 (deprecated)](../zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_float2hif8_deprecated.md) | Under development |
19-| 5 | **UB-to-L1 Buffer path**: Data can be moved directly from UB to L1 Buffer without going through GM. | [3510 Architecture Changes - Move Unit](../zh/guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_arch_changes.md) | Newly supported [UB-to-L1 Buffer Data Move](../zh/api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/DataCopy_UBToL1_continuous.md) | Under development |
20-| 6 | **L0C-to-UB path**: Data can be moved directly from L0C Buffer to UB without going through GM. | [3510 Architecture Changes - Move Unit](../zh/guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_arch_changes.md) | [asc_copy_l0c2ub](../zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2ub.md) | [Matrix Multiplication Result Accumulation](../zh/guide/operator_practice/simd_operator_optimization/matrix_compute/l0c_buffer_matmul_accumulate.md) |
21-| 7 | **ND-DMA move instruction**: Extends the DataCopy capability to freely configure the dimension information and stride of the data to be moved in. | [3510 Architecture Changes - Move Unit](../zh/guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_arch_changes.md) | [Multi-dimensional Data Move ISASI](../zh/api/SIMD-API/basic_api/memory_vector_compute/data_move/DataCopy_GMToUB_NDDMA.md), [asc_ndim_copy_gm2ub](../zh/api/SIMD-API/c_api/vector_datamove/asc_ndim_copy_gm2ub.md) | [Reducing Move Count in Non-contiguous Move Scenarios](../zh/guide/operator_practice/simd_operator_optimization/memory_access/reduce_non_contiguous_transfer.md) |
22-| 8 | **SSBuffer inter-core storage**: A new intra-core storage unit that supports access by AIC cores and AIV cores through Scalar. | Under development | Not applicable | Under development |
23-| 9 | **Mutex synchronization**: Synchronization between intra-core asynchronous pipeline instructions, similar to the lock mechanism in CPUs. | Under development | [Mutex ISASI](<../zh/api/SIMD-API/basic_api/sync_control/intra_core_sync/Mutex_ISASI.md>), [asc_lock](../zh/api/SIMD-API/c_api/sync/asc_lock.md) | Under development |
24-| 10 | **CrossCore inter-core synchronization**: AIV0 and AIV1 can independently trigger AIC waiting. | Under development | [CrossCoreSetFlag](<../zh/api/SIMD-API/basic_api/sync_control/inter_core_sync/CrossCoreSetFlag_ISASI.md>), [CrossCoreWaitFlag](<../zh/api/SIMD-API/basic_api/sync_control/inter_core_sync/CrossCoreWaitFlag_ISASI.md>) | [CV Fusion Operator Implementation](../zh/guide/operator_practice/simd_operator_impl/fusion_operator_programming/cv_fusion/operator_impl.md) |
25-| 11 | **MX (MicroScaling) data type**: Supports FP8_E4M3/MXFP4/8 low-bit matrix operations, halving memory usage and doubling compute throughput. | LoadData extension in [3510 Architecture Changes - Move Unit](../zh/guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_arch_changes.md) | [asc_mmad_mx](../zh/api/SIMD-API/c_api/cube_compute/asc_mmad_mx.md), [asc_copy_l12l0a_mx](../zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0a_mx.md), [asc_copy_l12l0b_mx](../zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b_mx.md) | [Matmul Feature Introduction](../zh/guide/operator_practice/simd_operator_impl/matrix_advanced_api/feature_scenarios/matmul_features.md), [MxMatmul Scenario](../zh/guide/operator_practice/simd_operator_impl/matrix_advanced_api/feature_scenarios/mx_matmul_scenario.md), [Matrix Multiplication Quantization/Dequantization](../zh/guide/operator_practice/simd_operator_impl/matrix_advanced_api/feature_scenarios/matmul_output_quant_dequant.md) |
26-| 12 | **Fixpipe enhancement**: Adds NZ2DN in-flight conversion, enabling Fixpipe to convert NZ-format data to DN format in flight. | [3510 Architecture Changes - Move Unit](../zh/guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_arch_changes.md) | [Fixpipe API](../zh/api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_store/Fixpipe_L0CToGM.md), [asc_copy_l0c2gm](../zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2gm/asc_copy_l0c2gm_arch_3510.md), [asc_copy_l0c2l1](../zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2l1/asc_copy_l0c2l1_arch_3510.md) | [Matrix Multiplication Result Accumulation](../zh/guide/operator_practice/simd_operator_optimization/matrix_compute/l0c_buffer_matmul_accumulate.md) |
27-| 13 | **UB interconnect/bank structure change**: In the 3510 architecture, the UB changes from 16 bank groups (each with three 4 KB banks) to 8 bank groups (each with two 16 KB banks). | [3510 Architecture Specifications - Storage Unit](../zh/guide/programming_guide/advanced_programming/hardware_implementation/architecture_spec/npu_arch_3510.md) | Not applicable | [Avoiding UB Bank Conflicts Overview](../zh/guide/operator_practice/simd_operator_optimization/memory_access/avoid_ub_bank_conflict/overview.md), [2201 Bank Conflict](../zh/guide/operator_practice/simd_operator_optimization/memory_access/avoid_ub_bank_conflict/avoid_bank_conflict_npu_arch_2201.md), [3510 Bank Conflict](../zh/guide/operator_practice/simd_operator_optimization/memory_access/avoid_ub_bank_conflict/avoid_bank_conflict_npu_arch_3510.md), [SIMT Avoiding Bank Conflicts](../zh/guide/operator_practice/simt_operator_optimization/memory_access/avoid_ub_bank_conflict_simt.md) |
28- 
29----
30- 
31-## Material Status Description
32- 
33-| Status Label | Description |
34-|--------------|-------------|
35-| (With link) | The material for this feature already exists in the docs directory. |
36-| **Under development** | No dedicated material is available for this feature yet. It will be added later. |
37-| **Not applicable** | This feature does not involve related material, and no material is planned. |
38- 
39----
40- 
41-## Related Documents
42- 
43-- [Cross-Generation Migration Compatibility Guide - Overview](../zh/guide/cross_gen_migration_guide/overview.md)
44-- [2201-to-3510 Architecture Changes](../zh/guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_arch_changes.md)
45-- [Basic API Migration Guide](../zh/guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_guide/basic_api_migration.md)
46-- [High-level API Migration Guide](../zh/guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_guide/advanced_api_migration.md)
47-- [Operator Compilation Migration Guide](../zh/guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_guide/op_compilation_migration.md)
48-- [NPU Architecture Version 3510 Specifications](../zh/guide/programming_guide/advanced_programming/hardware_implementation/architecture_spec/npu_arch_3510.md)
@@ -1,48 +0,0 @@
1-# Ascend 950PR/Ascend 950DT新增特性导航
2- 
3-本文档索引Ascend 950PR/Ascend 950DT(NPU架构版本3510)相比上一代(2201)新增的硬件特性,以及每个特性对应的编程模型、API接口和算子实践资料链接。
4- 
5-> 适用芯片:Ascend 950PR、Ascend 950DT(`__NPU_ARCH__` = 3510)
6- 
7-> 架构变更详情见:[2201到3510架构变更](guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_arch_changes.md)
8- 
9----
10- 
11-## 新增特性总览
12- 
13-| 序号 | 新增特性 | 对应编程模型和编程特性 | 对应API | 对应算子实践资料 |
14-|------|--------------|-------------------|---------|---------------|
15-| 1 | **RegBase架构**:AIV核Vector计算从MemBase切换到RegBase,数据从UB搬运到Register进行计算,中间结果直接在寄存器操作,无需回写UB | [Reg矢量计算编程](guide/programming_guide/programming_model/ai_core_simd_programming/cpp_tensor_programming/reg_vector_computation.md) | [Reg矢量计算API列表](api/SIMD-API/basic_api/reg_vector_compute/reg_vector_compute.md) | [VF融合优化](guide/operator_practice/simd_operator_optimization/vector_compute/vf_optimization/vf_fusion_optimization.md)、[VF循环优化](guide/operator_practice/simd_operator_optimization/vector_compute/vf_optimization/vf_loop_optimization.md) |
16-| 2 | **SIMT编程模型**:新增SIMT硬件单元(DCache、Warp Scheduler、128KB Register File),支持线程级并行编程 | [AI Core SIMT编程](guide/programming_guide/programming_model/ai_core_simt_programming/ai_core_simt_programming.md) | [SIMT API列表](api/SIMT-API/overview.md) | [SIMT算子实现](guide/operator_practice/simt_operator_impl/basics.md)、[SIMT算子性能优化](guide/operator_practice/simt_operator_optimization/memory_access/memory_access_merge.md) |
17-| 3 | **SIMD与SIMT混合编程**:同一Kernel中SIMD和SIMT代码协同工作 | [SIMD与SIMT混合编程](<guide/programming_guide/advanced_programming/advanced_ai_core_programming_model/simd_simt_hybrid_programming/overview.md>) | [混合编程API列表](api/SIMT-API/SIMD_SIMT_hybrid_programming_intro/api_list.md)、[内置变量](api/SIMT-API/SIMD_SIMT_hybrid_programming_intro/extended_syntax/builtin_variables.md) | [混合编程算子实现](guide/operator_practice/simd_simt_hybrid_operator_impl/basics.md)、[混合编程性能优化](guide/operator_practice/simd_simt_hybrid_optimization/memory_access/ub_memory_access.md) |
18-| 4 | **HiF8(hifloat8_t)数据类型**:Cube计算单元新增支持HiF8数据类型的矩阵乘 | [3510架构规格](guide/programming_guide/advanced_programming/hardware_implementation/architecture_spec/npu_arch_3510.md)中Cube支持的数据类型 | [内置数据类型说明](api/SIMD-API/basic_api/data_structures/builtin_data_types.md)、[Cast类型转换](api/SIMD-API/basic_api/reg_vector_compute/type_conversion/Cast.md)、[asc_float2hif8(废弃)](api/SIMD-API/c_api/reg_compute/reg_convert/asc_float2hif8_deprecated.md) | 资料开发中 |
19-| 5 | **UB到L1 Buffer通路**:支持数据直接从UB搬运到L1 Buffer,无需经GM中转 | [3510架构变更-搬运单元](guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_arch_changes.md) | 新增支持[UB到L1 Buffer数据搬运](api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/DataCopy_UBToL1_continuous.md) | 资料开发中 |
20-| 6 | **L0C到UB通路**:支持数据直接从L0C Buffer搬运到UB,无需经GM中转 | [3510架构变更-搬运单元](guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_arch_changes.md) | [asc_copy_l0c2ub](api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2ub.md) | [矩阵乘结果累加](guide/operator_practice/simd_operator_optimization/matrix_compute/l0c_buffer_matmul_accumulate.md) |
21-| 7 | **ND-DMA搬运指令**:扩展DataCopy能力,可自由配置搬入数据的维度信息及Stride | [3510架构变更-搬运单元](guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_arch_changes.md) | [多维数据搬运ISASI](api/SIMD-API/basic_api/memory_vector_compute/data_move/DataCopy_GMToUB_NDDMA.md)、[asc_ndim_copy_gm2ub](api/SIMD-API/c_api/vector_datamove/asc_ndim_copy_gm2ub.md) | [非连续搬运减少搬运次数](guide/operator_practice/simd_operator_optimization/memory_access/reduce_non_contiguous_transfer.md) |
22-| 8 | **SSBuffer核间存储**:新增核内存储单元,支持AIC核和AIV核通过Scalar访问 | 资料开发中 | 不涉及 | 资料开发中 |
23-| 9 | **Mutex同步**:核内异步流水指令间同步,功能类似CPU中的锁机制 | 资料开发中 | [Mutex ISASI](<api/SIMD-API/basic_api/sync_control/intra_core_sync/Mutex_ISASI.md>)、[asc_lock](api/SIMD-API/c_api/sync/asc_lock.md) | 资料开发中 |
24-| 10 | **CrossCore核间同步**:AIV0与AIV1可独立触发AIC等待 | 资料开发中 | [CrossCoreSetFlag](<api/SIMD-API/basic_api/sync_control/inter_core_sync/CrossCoreSetFlag_ISASI.md>)、[CrossCoreWaitFlag](<api/SIMD-API/basic_api/sync_control/inter_core_sync/CrossCoreWaitFlag_ISASI.md>) | [CV融合算子实现](guide/operator_practice/simd_operator_impl/fusion_operator_programming/cv_fusion/operator_impl.md) |
25-| 11 | **MX(MicroScaling)数据类型**:支持FP8_E4M3/MXFP4/8低比特矩阵运算,内存占用减半、算力吞吐倍增 | [3510架构变更-搬运单元](guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_arch_changes.md)中LoadData扩展 | [asc_mmad_mx](api/SIMD-API/c_api/cube_compute/asc_mmad_mx.md)、[asc_copy_l12l0a_mx](api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0a_mx.md)、[asc_copy_l12l0b_mx](api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b_mx.md) | [Matmul特性介绍](guide/operator_practice/simd_operator_impl/matrix_advanced_api/feature_scenarios/matmul_features.md)、[MxMatmul场景](guide/operator_practice/simd_operator_impl/matrix_advanced_api/feature_scenarios/mx_matmul_scenario.md)、[矩阵乘量化/反量化](guide/operator_practice/simd_operator_impl/matrix_advanced_api/feature_scenarios/matmul_output_quant_dequant.md) |
26-| 12 | **Fixpipe增强**:新增NZ2DN随路转换,支持Fixpipe将NZ格式数据随路转为DN格式 | [3510架构变更-搬运单元](guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_arch_changes.md) | [Fixpipe API](api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_store/Fixpipe_L0CToGM.md)、[asc_copy_l0c2gm](api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2gm/asc_copy_l0c2gm_arch_3510.md)、[asc_copy_l0c2l1](api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2l1/asc_copy_l0c2l1_arch_3510.md) | [矩阵乘结果累加](guide/operator_practice/simd_operator_optimization/matrix_compute/l0c_buffer_matmul_accumulate.md) |
27-| 13 | **UB互连/bank结构变化**:3510架构UB从16个bank group(各3个4KB bank)变为8个bank group(各2个16KB bank) | [3510架构规格-存储单元](guide/programming_guide/advanced_programming/hardware_implementation/architecture_spec/npu_arch_3510.md) | 不涉及 | [避免UB bank冲突概述](guide/operator_practice/simd_operator_optimization/memory_access/avoid_ub_bank_conflict/overview.md)、[2201 bank冲突](guide/operator_practice/simd_operator_optimization/memory_access/avoid_ub_bank_conflict/avoid_bank_conflict_npu_arch_2201.md)、[3510 bank冲突](guide/operator_practice/simd_operator_optimization/memory_access/avoid_ub_bank_conflict/avoid_bank_conflict_npu_arch_3510.md)、[SIMT避免Bank冲突](guide/operator_practice/simt_operator_optimization/memory_access/avoid_ub_bank_conflict_simt.md) |
28- 
29----
30- 
31-## 资料状态说明
32- 
33-| 状态标签 | 含义 |
34-|---------|------|
35-| (有链接) | 该特性对应资料已存在于docs目录 |
36-| **资料开发中** | 该特性暂无专门资料,需后续补充 |
37-| **不涉及** | 该特性不涉及相关资料,后续不计划补充 |
38- 
39----
40- 
41-## 相关文档
42- 
43-- [跨代迁移兼容性指南-概述](guide/cross_gen_migration_guide/overview.md)
44-- [2201到3510架构变更](guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_arch_changes.md)
45-- [基础API迁移指导](guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_guide/basic_api_migration.md)
46-- [高阶API迁移指导](guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_guide/advanced_api_migration.md)
47-- [算子编译迁移指导](guide/cross_gen_migration_guide/3510_arch_migration/2201_to_3510_guide/op_compilation_migration.md)
48-- [NPU架构版本3510规格](guide/programming_guide/advanced_programming/hardware_implementation/architecture_spec/npu_arch_3510.md)
@@ -0,0 +1,441 @@
1+# 3510新特性使用说明
Y
YYifan Wang8月31日
likedislike
2+ 
3+本文介绍[NPU架构版本3510](../../programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)新增特性,为开发者将算子程序从其他架构迁移至3510架构提供参考。有关3510架构的整体变更,请参见[2201到3510架构变更](../3510_arch_migration/2201_to_3510_arch_changes.md)。
4+ 
5+## 特性总览
6+ 
7+**表 1** 3510新特性总览<a name="table_3510_new_feature_overview"></a>
8+ 
9+| 分类 | 特性 | 相关基础API | 相关C API |
10+|------|------|------------|-----------|
11+| 数据搬运 | [新增UB到L1 Buffer搬运数据通路](#section_ub2l1) | [DataCopy(UB到L1 Buffer)](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/DataCopy_UBToL1_continuous.md)、[DataCopyPad(UB到L1 Buffer)](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/DataCopyPad_UBToL1.md) | [asc_copy_ub2l1](../../../api/SIMD-API/c_api/vector_datamove/asc_copy_ub2l1.md) |
12+| 数据搬运 | [新增L1 Buffer到UB搬运数据通路](#section_l12ub) | [DataCopyL1ToUB](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_store/DataCopyL1ToUB.md) | [asc_copy_l12ub](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12ub.md) |
13+| 数据搬运 | [新增L0C Buffer到UB搬运数据通路](#section_fixpipe_l0c2ub) | [Fixpipe(L0C Buffer到UB)](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_store/Fixpipe_L0CToUB.md) | [asc_copy_l0c2ub](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2ub.md) |
14+| 数据搬运 | [新增ND-DMA多维数据搬运](#section_nddma) | [DataCopy(GM到UB多维数据搬运)](../../../api/SIMD-API/basic_api/memory_vector_compute/data_move/DataCopy_GMToUB_NDDMA.md)、[NdDmaDci](../../../api/SIMD-API/basic_api/memory_vector_compute/data_move_aux_config/NdDmaDci.md) | [asc_ndim_copy_gm2ub](../../../api/SIMD-API/c_api/vector_datamove/asc_ndim_copy_gm2ub.md) |
15+| 数据搬运 | [对齐/非对齐数据搬运新增loop模式](#section_loop_mode) | [SetLoopModePara](../../../api/SIMD-API/basic_api/memory_vector_compute/data_move_aux_config/SetLoopModePara.md)、[ResetLoopModePara](../../../api/SIMD-API/basic_api/memory_vector_compute/data_move_aux_config/ResetLoopModePara.md) | [asc_set_gm2l1_loop_size等](../../../api/SIMD-API/c_api/cube_datamove/asc_set_gm2l1_loop_size.md)、[asc_set_ub2gm_loop1_stride等](../../../api/SIMD-API/c_api/vector_datamove/asc_set_ub2gm_loop1_stride.md) |
16+| 矩阵计算 | [新增MX矩阵搬运与计算](#section_mx) | [LoadData(2D MX搬运)](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/LoadData_2D_MX.md)、[MmadMx](../../../api/SIMD-API/basic_api/cube_compute_ISASI/mmad_compute/MmadMx.md) | [asc_copy_l12l0a_mx](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0a_mx.md)、[asc_copy_l12l0b_mx](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b_mx.md)、[asc_mmad_mx](../../../api/SIMD-API/c_api/cube_compute/asc_mmad_mx.md) |
17+| 矩阵计算 | [2D矩阵搬运(随路转置)能力增强](#section_transpose) | [LoadDataWithTranspose](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/LoadDataWithTranspose.md) | [asc_copy_l12l0b_trans(arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b_trans/asc_copy_l12l0b_trans_arch_3510.md) |
18+| 矩阵计算 | [Fixpipe新增NZ2DN随路转换](#section_nz2dn) | [Fixpipe(L0C Buffer到GM、L1 Buffer、UB)](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_store/Fixpipe_L0CToGM.md) | [asc_copy_l0c2gm(arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2gm/asc_copy_l0c2gm_arch_3510.md)、[asc_copy_l0c2l1(arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2l1/asc_copy_l0c2l1_arch_3510.md)、[asc_copy_l0c2ub](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2ub.md) |
19+| 矩阵计算 | [2D矩阵搬运能力增强](#section_loaddata_2d_v2) | [LoadData(2D矩阵搬运V2)](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/LoadData_2D_V2.md)、[LoadData(GM到L1 Buffer 2D V2)](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/LoadData_GMToL1_2DV2.md) | [asc_copy_l12l0a(2D,arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0a/asc_copy_l12l0a_2d_arch_3510.md)、[asc_copy_l12l0b(2D,arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b/asc_copy_l12l0b_2d_arch_3510.md)、[asc_copy_gm2l1(arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_gm2l1/asc_copy_gm2l1_2d_arch_3510.md) |
20+| 矩阵计算 | [新增Stride卷积矩阵搬运](#section_loaddata_with_stride) | [LoadDataWithStride](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/LoadDataWithStride.md) | [asc_copy_l12l0a(3D,arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0a/asc_copy_l12l0a_3d_arch_3510.md)、[asc_copy_l12l0b(3D,arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b/asc_copy_l12l0b_3d_arch_3510.md)、[asc_set_l13d_rpt](../../../api/SIMD-API/c_api/cube_datamove/asc_set_l13d_rpt.md)、[asc_set_l3d_rpt_b](../../../api/SIMD-API/c_api/cube_datamove/asc_set_l3d_rpt_b.md) |
21+| 矩阵计算 | [矩阵计算支持更多数据类型](#section_mmad_data_types) | [Mmad](../../../api/SIMD-API/basic_api/cube_compute_ISASI/mmad_compute/Mmad.md)、[MmadMx](../../../api/SIMD-API/basic_api/cube_compute_ISASI/mmad_compute/MmadMx.md) | [asc_mmad](../../../api/SIMD-API/c_api/cube_compute/asc_mmad.md)、[asc_mmad_mx](../../../api/SIMD-API/c_api/cube_compute/asc_mmad_mx.md) |
22+| 矩阵计算 | [L0A Buffer分形排布变为NZ](#section_l0a_nz) | - | - |
23+| 矢量计算 | [矢量计算基础API扩展](#section_vec_api_ext) | [相关基础API](#section_vec_api_ext) | - |
24+| 矢量计算 | [新增Regbase矢量计算方式](#section_regbase) | [Reg矢量计算基础API](../../../api/SIMD-API/basic_api/reg_vector_compute/overview.md) | [Reg矢量计算C API](../../../api/SIMD-API/c_api/reg_compute/reg_compute.md) |
25+| 原子操作 | [原子操作接口扩展](#section_atomic_api) | [AtomicAdd等](../../../api/SIMD-API/basic_api/atomic_operations/AtomicAdd.md) | [asc_atomic_add](../../../api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_add.md)、[asc_atomic_max](../../../api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_max.md)、[asc_atomic_min](../../../api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_min.md)、[asc_atomic_exch](../../../api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_exch.md)、[asc_atomic_cas](../../../api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_cas.md) |
26+| 缓存 | [新增DCI(数据缓存失效)能力](#section_dci) | – | [asc_dci](../../../api/SIMD-API/c_api/cache_ctrl/asc_dci.md) |
27+| 存储 | [新增SSBuffer核内存储单元](#section_ssbuf) | [GetSsbufBaseAddr](../../../api/SIMD-API/basic_api/tool_interface/system_resources_and_variables/GetSsbufBaseAddr.md) | – |
28+| 同步 | [新增Mutex核内同步能力](#section_mutex) | [Mutex::Lock/Unlock](../../../api/SIMD-API/basic_api/sync_control/intra_core_sync/Mutex_ISASI.md)、[AllocMutexID](../../../api/SIMD-API/basic_api/sync_control/intra_core_sync/AllocMutexID_ISASI.md) | [asc_lock](../../../api/SIMD-API/c_api/sync/asc_lock.md)、[asc_unlock](../../../api/SIMD-API/c_api/sync/asc_unlock.md) |
29+| 同步 | [新增核间同步控制模式4](#section_crosscore) | [CrossCoreSetFlag](../../../api/SIMD-API/basic_api/sync_control/inter_core_sync/CrossCoreSetFlag_ISASI.md)、[CrossCoreWaitFlag](../../../api/SIMD-API/basic_api/sync_control/inter_core_sync/CrossCoreWaitFlag_ISASI.md) | [asc_sync_intra_arrive](../../../api/SIMD-API/c_api/sync/asc_sync_intra_arrive.md)、[asc_sync_intra_wait](../../../api/SIMD-API/c_api/sync/asc_sync_intra_wait.md) |
30+ 
31+> [!NOTE]
32+> 除上表中所列特性以外,3510架构还新增SIMT编程模型和SIMD与SIMT混合编程,具体说明请参见:
33+> - SIMT编程:[AI Core SIMT编程](../../programming_guide/programming_model/ai_core_simt_programming/ai_core_simt_programming.md)、[SIMT API](../../../api/SIMT-API/overview.md)。
34+> - SIMD与SIMT混编:[SIMD与SIMT混合编程](../../programming_guide/advanced_programming/advanced_ai_core_programming_model/simd_simt_hybrid_programming/overview.md)。
35+ 
36+## 特性说明
37+ 
38+### 新增UB到L1 Buffer搬运数据通路<a name="section_ub2l1"></a>
39+ 
40+#### 特性应用场景说明
41+ 
42+CV融合算子中,UB向L1 Buffer搬运数据不再需要通过GM中转。
43+ 
44+#### 功能说明
45+ 
46+- 对于C API,使用[asc_copy_ub2l1](../../../api/SIMD-API/c_api/vector_datamove/asc_copy_ub2l1.md)接口实现UB到L1 Buffer数据搬运,无需配置编译选项。
47+- 对于基础API,使用[DataCopy(UB到L1 Buffer)](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/DataCopy_UBToL1_continuous.md)、[DataCopyPad(UB到L1 Buffer)](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/DataCopyPad_UBToL1.md)进行搬运,开启该特性需要配置编译选项[`ENABLE_CV_COMM_VIA_SSBUF`](../../programming_guide/compilation_and_execution/operator_compilation/ai_core_operator_compilation.md#内置编译宏开关):
48+ - 开启该编译选项后,数据通过UB到L1 Buffer之间的硬件通道直接搬运。该方式无需经过GM中转,性能较高。
49+ - 未开启该编译选项时,数据需经由GM搬运至L1 Buffer。在此场景下,UB到L1 Buffer搬运接口采用软件仿真实现。
50+ 
51+#### 典型样例说明<a name="section_ub2l1_sample"></a>
52+ 
53+- [data_copy_ub2l1样例](../../../../../examples/01_simd_cpp_api/03_basic_api/00_data_movement/data_copy_ub2l1):在Mmad矩阵乘场景下,基于DataCopy实现UB到L1 Buffer数据搬运,通过编译选项`SCENARIO_NUM`切换连续搬运和随路ND2NZ搬运两种场景,取值1表示连续搬运,取值2表示随路ND2NZ搬运。样例完整数据流为GM到UB到L1 Buffer到L0A Buffer、L0B Buffer到Mmad到L0C Buffer到GM。样例编译工程已通过`ascendc_compile_definitions`配置`-DENABLE_CV_COMM_VIA_SSBUF=true`。
54+ 
55+### 新增L1 Buffer到UB搬运数据通路<a name="section_l12ub"></a>
56+ 
57+#### 特性应用场景说明
58+ 
59+CV融合算子场景,L1 Buffer向UB搬运数据。3510架构新增L1 Buffer到UB搬运数据通路。
60+ 
61+#### 功能说明
62+ 
63+可参考以下资料:
64+- 基础API:[DataCopyL1ToUB](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_store/DataCopyL1ToUB.md)。
65+- C API:[asc_copy_l12ub](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12ub.md)。
66+ 
67+### 新增L0C Buffer到UB搬运数据通路<a name="section_fixpipe_l0c2ub"></a>
68+ 
69+#### 特性应用场景说明
70+ 
71+CV融合算子场景,矩阵计算后的结果若需要在Vector核侧进行归一化、激活等向量计算,需要先将L0C Buffer中的数据搬运到UB。3510架构新增L0C Buffer到UB单向数据通路。
72+ 
73+#### 功能说明
74+ 
75+可参考以下资料:
76+- 基础API:[Fixpipe(L0C Buffer到UB数据搬运)](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_store/Fixpipe_L0CToUB.md)。使用带有`FixpipeParamsArch3510`参数的Fixpipe接口实现L0C Buffer到UB搬出。
77+- C API:[asc_copy_l0c2ub](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2ub.md)。
78+ 
79+ 
80+#### 典型样例说明
81+ 
82+[fixpipe_l0c2ub样例](../../../../../examples/01_simd_cpp_api/03_basic_api/03_matrix_compute/fixpipe_l0c2ub):基于Fixpipe实现L0C Buffer到UB数据搬运,完整数据流为GM到L1 Buffer到L0A Buffer、L0B Buffer到Mmad到L0C Buffer到UB。
83+ 
84+### 新增ND-DMA多维数据搬运<a name="section_nddma"></a>
85+ 
86+#### 特性应用场景说明
87+ 
88+Vector算子场景,从GM搬运至UB时,若涉及多维矩阵、不规则Stride,以及Padding、Transpose、Broadcast或Slice等复杂数据变换时,需要多次调用基础搬运接口。3510架构新增ND-DMA硬件指令。与基础数据搬运接口相比,该指令支持灵活配置搬入数据的维度信息和Stride,可通过一条指令完成上述复杂场景的数据搬运。
89+ 
90+#### 功能说明
91+ 
92+可参考以下资料:
93+- 基础API:[DataCopy(GMToUB多维数据搬运NDDMA)](../../../api/SIMD-API/basic_api/memory_vector_compute/data_move/DataCopy_GMToUB_NDDMA.md)、[NdDmaDci](../../../api/SIMD-API/basic_api/memory_vector_compute/data_move_aux_config/NdDmaDci.md)。
94+- C API:[asc_ndim_copy_gm2ub](../../../api/SIMD-API/c_api/vector_datamove/asc_ndim_copy_gm2ub.md)。
95+ 
96+#### 典型样例说明
97+ 
98+[data_copy_gm2ub_nddma样例](../../../../../examples/01_simd_cpp_api/03_basic_api/00_data_movement/data_copy_gm2ub_nddma):基于ND-DMA指令实现GM到UB多维数据搬运,模拟多维Shape下移动窗口的数据搬运,包含Slice、输入Stride和不连续源数据搬运的配置方式。
99+ 
100+### 对齐/非对齐数据搬运新增loop模式<a name="section_loop_mode"></a>
101+ 
102+#### 特性应用场景说明
103+ 
104+Vector算子场景,当需要将GM中的多段数据交替搬运至UB的不同地址,或沿相反方向搬运时,通常需要循环执行多条DataCopy指令,导致指令数量和流水开销增加。3510架构新增loop模式数据搬运能力,调用一次接口即可完成搬运,从而减少指令下发开销并提升搬运效率。
105+ 
106+#### 功能说明
107+ 
108+可参考以下资料:
109+- 基础API:[SetLoopModePara](../../../api/SIMD-API/basic_api/memory_vector_compute/data_move_aux_config/SetLoopModePara.md)、[ResetLoopModePara](../../../api/SIMD-API/basic_api/memory_vector_compute/data_move_aux_config/ResetLoopModePara.md)。
110+- C API:[asc_set_gm2l1_loop_size](../../../api/SIMD-API/c_api/cube_datamove/asc_set_gm2l1_loop_size.md)、[asc_set_ub2gm_loop1_stride](../../../api/SIMD-API/c_api/vector_datamove/asc_set_ub2gm_loop1_stride.md)等。
111+ 
112+ 
113+### 新增MX矩阵搬运与计算<a name="section_mx"></a>
114+ 
115+#### 特性应用场景说明
116+ 
117+MicroScaling(MX)是一种低比特量化数据格式,例如fp4x2_e2m1_t、fp4x2_e1m2_t、fp8_e5m2_t和fp8_e4m3fn_t。矩阵数据与各数据块对应的量化系数矩阵共同存储,因此矩阵计算时需同步搬运矩阵数据和量化系数矩阵。3510架构新增适用于MicroScaling场景的数据搬运能力,可同步搬运矩阵数据与量化系数矩阵,为MX低比特格式的矩阵计算提供支持。
118+ 
119+#### 功能说明
120+ 
121+可参考以下资料:
122+- 基础API:[LoadData(2D MX搬运)](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/LoadData_2D_MX.md)、[MmadMx](../../../api/SIMD-API/basic_api/cube_compute_ISASI/mmad_compute/MmadMx.md)。
123+- C API:[asc_copy_l12l0a_mx](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0a_mx.md)、[asc_copy_l12l0b_mx](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b_mx.md)、[asc_mmad_mx](../../../api/SIMD-API/c_api/cube_compute/asc_mmad_mx.md)。
124+ 
125+#### 典型样例说明
126+ 
127+- [load_data_2dmx_l12l0样例](../../../../../examples/01_simd_cpp_api/03_basic_api/03_matrix_compute/load_data_2dmx_l12l0):演示MX矩阵数据及其量化系数矩阵的同步搬运。
128+- [mmad_mx样例](../../../../../examples/01_simd_cpp_api/03_basic_api/03_matrix_compute/mmad_mx):演示MmadMx矩阵乘加计算。
129+ 
130+### 2D矩阵搬运(随路转置)能力增强<a name="section_transpose"></a>
131+ 
132+#### 特性应用场景说明
133+ 
134+在矩阵乘计算中,L1 Buffer中的右矩阵B需要以转置后的分形排布搬入L0B Buffer。对于源矩阵中分形非连续排布的场景,2201架构的搬运参数以拼接后的方块矩阵为配置单位,难以直接描述分形级间隔。3510架构增强随路转置搬运能力,可按512字节分形配置搬运起始位置、相邻迭代源Stride及迭代内源分形间隔,适用于分形拼接、非连续搬入等场景。
135+ 
136+#### 功能说明
137+ 
138+可参考以下资料:
139+- 基础API:[LoadDataWithTranspose](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/LoadDataWithTranspose.md)。3510架构使用`LoadData2dTransposeParamsV2`作为参数类型,支持以512字节分形为单位配置源Stride,并可通过`srcFracGap`配置每个迭代内的源分形间隔。
140+- C API:[asc_copy_l12l0b_trans(arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b_trans/asc_copy_l12l0b_trans_arch_3510.md)。
141+ 
142+### Fixpipe新增NZ2DN随路转换<a name="section_nz2dn"></a>
143+ 
144+#### 特性应用场景说明
145+ 
146+L0C Buffer中Mmad计算结果为NZ分形格式,部分算子输出需要列主序的DN格式。3510架构的Fixpipe接口新增NZ2DN随路转换能力,可在L0C Buffer到GM、L1 Buffer、UB搬出过程中完成格式转换。
147+ 
148+#### 功能说明
149+ 
150+可参考以下资料:
151+- 基础API:[Fixpipe](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_store/Fixpipe_L0CToGM.md)。
152+- C API:[asc_copy_l0c2gm(arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2gm/asc_copy_l0c2gm_arch_3510.md)、[asc_copy_l0c2l1(arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2l1/asc_copy_l0c2l1_arch_3510.md)、[asc_copy_l0c2ub](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2ub.md)。
153+ 
154+### 2D矩阵搬运能力增强<a name="section_loaddata_2d_v2"></a>
155+ 
156+#### 特性应用场景说明
157+ 
158+3510架构2D矩阵搬运能力增强,搬运方式更加灵活,并且支持全量数据类型的搬运。
159+ 
160+#### 功能说明
161+ 
162+可参考以下资料:
163+- 基础API:[LoadData(2D矩阵搬运V2)](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/LoadData_2D_V2.md)、[LoadData(GM到L1 Buffer的2D矩阵搬运V2)](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/LoadData_GMToL1_2DV2.md)。
164+- C API:[asc_copy_l12l0a(2D矩阵搬运,arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0a/asc_copy_l12l0a_2d_arch_3510.md)、[asc_copy_l12l0b(2D矩阵搬运,arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b/asc_copy_l12l0b_2d_arch_3510.md)、[asc_copy_gm2l1(arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_gm2l1/asc_copy_gm2l1_2d_arch_3510.md)。
165+ 
166+#### 典型样例说明
167+ 
168+[load_data_2dv2_l12l0样例](../../../../../examples/01_simd_cpp_api/03_basic_api/03_matrix_compute/load_data_2dv2_l12l0):演示使用2D V2指令将矩阵数据从L1 Buffer搬运至L0A Buffer。
169+ 
170+### 新增Stride卷积矩阵搬运<a name="section_loaddata_with_stride"></a>
171+ 
172+#### 特性应用场景说明
173+ 
174+3510架构新增Stride卷积矩阵搬运能力,用于需要配置输出矩阵K轴方向偏移量的卷积数据搬运场景。
175+ 
176+#### 功能说明
177+ 
178+可参考以下资料:
179+- 基础API:[LoadDataWithStride](../../../api/SIMD-API/basic_api/cube_compute_ISASI/cube_compute_load/LoadDataWithStride.md)。
180+- C API:[asc_copy_l12l0a(3D矩阵搬运,arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0a/asc_copy_l12l0a_3d_arch_3510.md)、[asc_copy_l12l0b(3D矩阵搬运,arch3510)](../../../api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b/asc_copy_l12l0b_3d_arch_3510.md)、[asc_set_l13d_rpt](../../../api/SIMD-API/c_api/cube_datamove/asc_set_l13d_rpt.md)和[asc_set_l3d_rpt_b](../../../api/SIMD-API/c_api/cube_datamove/asc_set_l3d_rpt_b.md)。其中,`asc_set_l13d_rpt`和`asc_set_l3d_rpt_b`分别用于配置左寄存器组和右寄存器组的输出矩阵步长。
181+ 
182+#### 典型样例说明
183+ 
184+[load_data_with_stride样例](../../../../../examples/01_simd_cpp_api/03_basic_api/03_matrix_compute/load_data_with_stride):演示Stride卷积矩阵搬运。
185+ 
186+### 矩阵计算支持更多数据类型<a name="section_mmad_data_types"></a>
187+ 
188+#### 特性应用场景说明
189+ 
190+3510架构扩展矩阵计算支持的低比特浮点输入类型,可用于更多矩阵计算场景。
191+ 
192+#### 功能说明
193+ 
194+相比2201架构,3510架构新增支持以下矩阵输入类型:
195+ 
196+- 矩阵计算新增支持hifloat8_t、fp8_e5m2_t和fp8_e4m3fn_t。
197+- MX矩阵计算支持fp4x2_e2m1_t、fp4x2_e1m2_t、fp8_e5m2_t和fp8_e4m3fn_t。MX计算使用fp8_e8m0_t类型的Scale矩阵。
198+ 
199+可参考以下资料:
200+- 基础API:[Mmad](../../../api/SIMD-API/basic_api/cube_compute_ISASI/mmad_compute/Mmad.md)、[MmadMx](../../../api/SIMD-API/basic_api/cube_compute_ISASI/mmad_compute/MmadMx.md)。
201+- C API:[asc_mmad](../../../api/SIMD-API/c_api/cube_compute/asc_mmad.md)、[asc_mmad_mx](../../../api/SIMD-API/c_api/cube_compute/asc_mmad_mx.md)。
202+ 
203+### L0A Buffer分形排布变为NZ<a name="section_l0a_nz"></a>
204+ 
205+#### 特性应用场景说明
206+ 
207+3510架构的L0A Buffer采用NZ排布,不再采用2201架构上的ZZ排布。
208+ 
209+#### 功能说明
210+ 
211+由于分形排布变化,3510架构下,在A矩阵转置且非对齐的场景下,L0A Buffer的K方向按8对齐,无[K方向对齐约束](../../../api/SIMD-API/basic_api/cube_compute_ISASI/mmad_compute_key_features/k_direction_alignment_constraint.md#ZH-CN_TOPIC_0000002569070973)。
212+ 
213+### 矢量计算基础API扩展<a name="section_vec_api_ext"></a>
214+ 
215+#### 特性应用场景说明
Y
YYifan Wang8月31日

给出编程指南中的 Reg矢量计算编程模型 介绍链接。

likedislike
216+ 
217+3510架构矢量计算基础API新增多项接口和参数变体。
218+ 
219+#### 功能说明
220+ 
221+**表 3** 矢量计算基础API扩展说明<a name="table_vec_api_ext"></a>
222+ 
223+| API | 功能说明 |
224+|-----|---------|
225+| [Adds](../../../api/SIMD-API/basic_api/memory_vector_compute/basic_arithmetic/Adds_flexible_scalar.md) | 矢量内每个元素与标量做加法,标量输入支持配置LocalTensor单点元素,支持标量在前、标量在后两种场景。 |
226+| [Muls](../../../api/SIMD-API/basic_api/memory_vector_compute/basic_arithmetic/Muls_flexible_scalar.md) | 矢量内每个元素与标量做乘法,标量输入支持配置LocalTensor单点元素。 |
227+| [Subs](../../../api/SIMD-API/basic_api/memory_vector_compute/basic_arithmetic/Subs_flexible_scalar.md) | 矢量内每个元素与标量做减法,标量输入支持配置LocalTensor单点元素。 |
228+| [Divs](../../../api/SIMD-API/basic_api/memory_vector_compute/basic_arithmetic/Divs_flexible_scalar.md) | 矢量内每个元素与标量做除法,标量输入支持配置LocalTensor单点元素。 |
229+| [Maxs](../../../api/SIMD-API/basic_api/memory_vector_compute/basic_arithmetic/Maxs_flexible_scalar.md) | 矢量内每个元素与标量取最大值,标量输入支持配置LocalTensor单点元素。 |
230+| [Mins](../../../api/SIMD-API/basic_api/memory_vector_compute/basic_arithmetic/Mins_flexible_scalar.md) | 矢量内每个元素与标量取最小值,标量输入支持配置LocalTensor单点元素。 |
231+| [Compares](../../../api/SIMD-API/basic_api/memory_vector_compute/compare_and_select/Compares_flexible_scalar.md) | 矢量内每个元素与标量比较,标量输入支持配置LocalTensor单点元素,支持标量在前、标量在后两种场景。 |
232+| [Select](../../../api/SIMD-API/basic_api/memory_vector_compute/compare_and_select/Select_flexible_scalar.md) | 根据`selMask`的比特位从两个源操作数中选取元素写入目的操作数。 |
233+| [Neg](../../../api/SIMD-API/basic_api/memory_vector_compute/basic_arithmetic/Neg_ISASI.md) | 对源操作数取相反数。 |
234+| [Prelu](../../../api/SIMD-API/basic_api/memory_vector_compute/basic_arithmetic/Prelu_ISASI.md) | 带参数的ReLU计算。 |
235+| [Mull](../../../api/SIMD-API/basic_api/memory_vector_compute/basic_arithmetic/Mull_ISASI.md) | 32位元素相乘得到64位乘积,拆分为低32位与高32位分别写入两个目的操作数。 |
236+| [AbsSub](../../../api/SIMD-API/basic_api/memory_vector_compute/composite_compute/AbsSub_ISASI.md) | 计算两个源操作数差的绝对值。 |
237+| [ExpSub](../../../api/SIMD-API/basic_api/memory_vector_compute/composite_compute/ExpSub_ISASI.md) | 计算`exp(src0)-exp(src1)`。 |
238+| [MulsCast](../../../api/SIMD-API/basic_api/memory_vector_compute/composite_compute/MulsCast_ISASI.md) | 矢量与标量相乘后再进行数据类型转换。 |
239+| [Truncate](../../../api/SIMD-API/basic_api/memory_vector_compute/type_conversion/Truncate_ISASI.md) | 对源操作数执行向下取整操作。 |
240+| [Interleave](../../../api/SIMD-API/basic_api/memory_vector_compute/data_rearrange_ISASI/Interleave.md) | 将两个源操作数中的元素交织存入结果操作数。 |
241+| [DeInterleave](../../../api/SIMD-API/basic_api/memory_vector_compute/data_rearrange_ISASI/DeInterleave.md) | 将源操作数中的元素按交织方式拆分到两个结果操作数。 |
242+| [ShiftLeft](../../../api/SIMD-API/basic_api/memory_vector_compute/logical_compute/ShiftLeft_shift_amount_tensor.md) | 对源操作数中的每个元素按移位量左移,移位量由张量输入指定。 |
243+| [ShiftRight](../../../api/SIMD-API/basic_api/memory_vector_compute/logical_compute/ShiftRight_shift_amount_tensor.md) | 对源操作数中的每个元素按移位量右移,移位量由张量输入指定。 |
244+| [Ands](../../../api/SIMD-API/basic_api/memory_vector_compute/logical_compute/Ands.md) | 矢量内每个元素和标量做按位与操作,标量输入支持配置LocalTensor单点元素。 |
245+| [Ors](../../../api/SIMD-API/basic_api/memory_vector_compute/logical_compute/Ors.md) | 矢量内每个元素和标量做按位或操作,标量输入支持配置LocalTensor单点元素。 |
246+ 
247+ 
248+### 新增Regbase矢量计算方式<a name="section_regbase"></a>
249+ 
250+#### 特性应用场景说明
251+ 
252+3510架构的AIV核采用Regbase架构,中间结果可暂存于寄存器中,从而减少UB读写并提高执行效率。Regbase架构的编程模型请参见[Reg矢量计算编程](../../programming_guide/programming_model/ai_core_simd_programming/c_pointer_programming/reg_vector_computation.md)。
253+ 
254+#### 功能说明
255+ 
256+Reg矢量计算相关接口的完整接口清单请参考[Reg矢量计算](../../../api/SIMD-API/basic_api/reg_vector_compute/overview.md)文档。
257+ 
258+对应的C API请参见[Reg矢量计算C API](../../../api/SIMD-API/c_api/reg_compute/reg_compute.md)。
259+ 
260+#### 典型样例说明
261+ 
262+- 数据搬运:[reg_load_store_align样例](../../../../../examples/01_simd_cpp_api/03_basic_api/00_data_movement/reg_load_store_align)、[reg_load_store_mask样例](../../../../../examples/01_simd_cpp_api/03_basic_api/00_data_movement/reg_load_store_mask)、[reg_load_store_unalign样例](../../../../../examples/01_simd_cpp_api/03_basic_api/00_data_movement/reg_load_store_unalign)、[reg_load_gather样例](../../../../../examples/01_simd_cpp_api/03_basic_api/00_data_movement/reg_load_gather)、[reg_store_scatter样例](../../../../../examples/01_simd_cpp_api/03_basic_api/00_data_movement/reg_store_scatter)、[reg_move样例](../../../../../examples/01_simd_cpp_api/03_basic_api/00_data_movement/reg_move)、[reg_auxscalar样例](../../../../../examples/01_simd_cpp_api/03_basic_api/00_data_movement/reg_auxscalar)。
263+- Reg计算:[mul样例](../../../../../examples/01_simd_cpp_api/03_basic_api/02_reg_vector_compute/mul)、[reduce样例](../../../../../examples/01_simd_cpp_api/03_basic_api/02_reg_vector_compute/reduce)、[reduce_pair样例](../../../../../examples/01_simd_cpp_api/03_basic_api/02_reg_vector_compute/reduce_pair)等。
264+- 高性能算子:[gelu_high_performance样例](../../../../../examples/01_simd_cpp_api/05_best_practices/02_reg_compute/gelu_high_performance)、[gelu_eltwise_high_performance样例](../../../../../examples/01_simd_cpp_api/05_best_practices/02_reg_compute/gelu_eltwise_high_performance)、[softmax_high_performance样例](../../../../../examples/01_simd_cpp_api/05_best_practices/02_reg_compute/softmax_high_performance)。
265+ 
266+### 原子操作接口扩展<a name="section_atomic_api"></a>
267+ 
268+#### 特性应用场景说明
269+ 
270+在多线程或多核并发访问GM中同一数据的场景下,需要对GM地址中的数据执行原子读改写操作,以避免并发写入引发数据竞争。3510架构对原子操作基础接口做了扩充。
271+ 
272+#### 功能说明
273+ 
274+**表 5** 新增原子操作接口说明<a name="table_atomic_api"></a>
275+ 
276+| 功能说明 | 相关基础API | 相关C API |
277+|---------|------------|-----------|
278+| 将GM地址上的旧值与输入标量求和并写回,返回修改前的值。 | [AtomicAdd](../../../api/SIMD-API/basic_api/atomic_operations/AtomicAdd.md) | [asc_atomic_add](../../../api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_add.md) |
279+| 将GM地址上的旧值与输入标量取最大值并写回,返回修改前的值。 | [AtomicMax](../../../api/SIMD-API/basic_api/atomic_operations/AtomicMax.md) | [asc_atomic_max](../../../api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_max.md) |
280+| 将GM地址上的旧值与输入标量取最小值并写回,返回修改前的值。 | [AtomicMin](../../../api/SIMD-API/basic_api/atomic_operations/AtomicMin.md) | [asc_atomic_min](../../../api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_min.md) |
281+| 将GM地址上的旧值与输入标量交换,返回修改前的值。 | [AtomicExch](../../../api/SIMD-API/basic_api/atomic_operations/AtomicExch.md) | [asc_atomic_exch](../../../api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_exch.md) |
282+| 将GM地址上的旧值与期望值比较,相等则写入新值,返回修改前的值。 | [AtomicCas](../../../api/SIMD-API/basic_api/atomic_operations/AtomicCas.md) | [asc_atomic_cas](../../../api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_cas.md) |
283+ 
284+#### 典型样例说明
285+ 
286+[scalar_atomic_operations样例](../../../../../examples/01_simd_cpp_api/03_basic_api/06_atomic/scalar_atomic_operations):基于AtomicAdd和AtomicCas接口,演示在GM地址上进行标量原子加和原子比较交换的实现流程,支持多核并行更新单个内存地址。
287+ 
288+### 新增DCI(数据缓存失效)能力<a name="section_dci"></a>
289+ 
290+#### 特性应用场景说明
291+ 
292+算子执行结束时,需将DCache置为失效,防止后续算子读取其中的无效数据。默认情况下,编译框架会在算子尾部插入DCCI(DataCacheCleanAndInvalid)指令,在使DCache失效的同时将脏数据写回GM,因此会产生额外的Clean开销。3510架构新增DCI(DataCacheInvalid)数据缓存失效能力,DCI指令可直接使整个数据缓存失效,而不回写脏缓存行。在算子尾部使用DCI指令替代DCCI指令,可跳过将DCache脏数据同步至GM的Clean过程,从而降低算子尾部开销。
293+ 
294+#### 功能说明
295+ 
296+可通过以下两种方式插入DCI指令:
297+1. 编译选项方式:编译时配置[`--cce-no-dcache-flush`](../../operator_practice/simd_operator_optimization/overhead_optimization/dci_compile_option.md),编译框架将在算子尾部插入DCI指令,替代默认的DCCI指令。推荐使用该方式开启DCI能力。详细说明请参考[设置DCI编译选项来减少算子尾开销](../../operator_practice/simd_operator_optimization/overhead_optimization/dci_compile_option.md)。
298+2. 接口方式:使用[asc_dci](../../../api/SIMD-API/c_api/cache_ctrl/asc_dci.md)接口执行数据缓存失效,调用前需先通过[asc_sync_data_barrier](../../../api/SIMD-API/c_api/sync/asc_sync_data_barrier.md)插入DSB_ALL指令,等待所有内存访问指令执行结束。
299+ 
300+### 新增SSBuffer核内存储单元<a name="section_ssbuf"></a>
301+ 
302+#### 特性应用场景说明
303+ 
304+在Mix算子中,AIC核与AIV核之间需要传递控制信息和标量数据。在[NPU架构版本2201](../../programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)上,AIC与AIV通过GM通信,通信延迟较高且占用GM带宽。3510架构新增SSBuffer核内存储单元,支持AI Core内的AIC核与AIV核通过Scalar直接访问SSBuffer进行核间通信,该方式无需访问GM,可降低通信延迟并减少GM带宽占用。SSBuffer适用于同一任务内AIC核与AIV核之间的小数据量通信,例如传递控制信息、地址或少量标量数据。大块数据应通过相应的数据通路搬运,不应将SSBuffer用作通用数据缓存。
305+ 
306+#### 功能说明
307+ 
308+- 存储规格:[SSBuffer](../../programming_guide/advanced_programming/hardware_implementation/architecture_spec/npu_arch_3510.md)是3510架构AI Core内新增的核间通信存储单元,容量为3KB。SSBuffer使用独立于L1 Buffer和UB的地址空间,对应的地址空间限定符为`__ssbuf__`。详情请参见[SIMD BuiltIn关键字](../../programming_guide/language_extension/simd_builtin_keywords.md)。
309+- 使用范围:
310+ 
311+ - SSBuffer在分离模式的AIC核数与AIV核数之比为1:2的混合算子中,AIC核与对应AIV核可通过SSBuffer交换数据,核函数类型和AIC核数与AIV核数之比必须满足核间同步接口的约束。
312+ 
313+- 访问方式:
314+ 
315+ - Mix算子是同时包含矩阵计算和矢量计算的算子类型,MIX模式是AIC核与AIV核混合运行的内核模式。
316+ - 非MIX模式下,AIC、AIV0、AIV1各自独立占用1KB空间;MIX模式下AIC核与各AIV核共享整个3KB空间。
317+ - 通过[GetSsbufBaseAddr](../../../api/SIMD-API/basic_api/tool_interface/system_resources_and_variables/GetSsbufBaseAddr.md)接口获取SSBuffer基地址。该接口返回`__ssbuf__`指针,可基于基地址偏移进行读写访问。
318+ - SSBuffer仅支持通过32字节对齐的读写指令访问,通信数据块的起始地址和访问粒度均须满足32字节对齐要求。不得对SSBuffer执行小于32字节的成员读写;访问地址超出SSBuffer范围时会触发异常。
319+ 
320+- 使用约束:
321+ 
322+ - SSBuffer的初始内容不确定,读取结果不保证全为0。每次通信均应由生产者完整写入数据,消费者不得依赖SSBuffer中的历史内容。
323+ - 数据布局必须在通信双方(AIC与AIV)保持一致,且数据不得越过SSBuffer末端地址。
324+ - AIC和AIV启动不同任务时不能访问SSBuffer;当前任务未开启SSBuffer能力时不能访问。
325+ 
326+ 
327+ 
328+#### 典型样例说明
329+ 
330+以下代码示例演示SSBuffer核间通信的完整用法,其中AIC核数与AIV核数之比为1:2,AIV0向AIC单向传递32字节消息。使用SSBuffer前需开启[`ENABLE_CV_COMM_VIA_SSBUF`](../../programming_guide/compilation_and_execution/operator_compilation/ai_core_operator_compilation.md#内置编译宏开关)编译选项。
331+ 
332+- 获取基地址并定义消息:
333+ 
334+ ```cpp
335+ // 获取SSBuffer基地址,返回__ssbuf__指针;NPU域中该特殊基址可能显示为0或nil,不应作为普通空指针解引用。
336+ __ssbuf__ void* ssbuf = AscendC::GetSsbufBaseAddr();
337+ 
338+ // 定义32字节对齐的通信消息。
339+ struct alignas(32) SsbufferMessage {
340+ uint64_t value[4];
341+ };
342+ 
343+ // 基于基地址偏移定位消息区域,起始偏移须32字节对齐且不越过SSBuffer末端。
344+ __ssbuf__ uint8_t* ssbuffer = reinterpret_cast<__ssbuf__ uint8_t*>(ssbuf);
345+ __ssbuf__ SsbufferMessage* message =
346+ reinterpret_cast<__ssbuf__ SsbufferMessage*>(ssbuffer + 256);
347+ ```
348+ 
349+- AIV核(生产者)写入消息并发布就绪标记:
350+ 
351+ ```cpp
352+ if ASCEND_IS_AIV {
353+ // 1:2场景中仅AIV0生产本示例的消息,AIV1仍须参与模式2同步。
354+ if (AscendC::GetSubBlockIdx() == 0) {
355+ // 生产者将完整32字节消息写入SSBuffer。
356+ message->value[0] = 0x1122334455667788ULL;
357+ message->value[1] = 0x8877665544332211ULL;
358+ message->value[2] = 0x0123456789abcdefULL;
359+ message->value[3] = 0xfedcba9876543210ULL;
360+ }
361+ // SSBuffer访问位于Scalar流水,先建立Scalar到Vector的核内顺序,再以模式2发布AIV到AIC的就绪标记。
362+ AscendC::SetFlag<AscendC::HardEvent::S_V>(0);
363+ AscendC::WaitFlag<AscendC::HardEvent::S_V>(0);
364+ AscendC::CrossCoreSetFlag<2, PIPE_V>(AIV_TO_AIC_FLAG);
365+ }
366+ ```
367+ 
368+- AIC核(消费者)等待标记完成后读取消息:
369+ 
370+ ```cpp
371+ if ASCEND_IS_AIC {
372+ // 模式2等待同一逻辑AI Core上的两个AIV均发布完成。
373+ AscendC::CrossCoreWaitFlag<2, PIPE_M>(AIV_TO_AIC_FLAG);
374+ // 先建立Cube流水到Scalar读取的顺序,再读取SSBuffer中的消息。
375+ AscendC::SetFlag<AscendC::HardEvent::M_S>(0);
376+ AscendC::WaitFlag<AscendC::HardEvent::M_S>(0);
377+ // 消费者按通信双方约定的布局使用message中的消息数据。
378+ output[0] = message->value[0];
379+ output[1] = message->value[1];
380+ output[2] = message->value[2];
381+ output[3] = message->value[3];
382+ }
383+ ```
384+ 
385+### 新增Mutex核内同步能力<a name="section_mutex"></a>
386+ 
387+#### 特性应用场景说明
388+ 
389+在Vector算子中,异步流水指令之间通常通过SetFlag和WaitFlag事件进行同步,例如GM到UB搬运(PIPE_MTE2)、向量计算(PIPE_V)和UB到GM搬运(PIPE_MTE3)。该方式需要显式配对事件,编码较为复杂,且受事件资源数量限制。3510架构新增Mutex能力,通过锁定和释放指定流水建立流水间的同步依赖。与SetFlag和WaitFlag相比,Mutex与其他流水解耦,可简化反向同步,并提供更多可用的同步信号量。
390+ 
391+#### 功能说明
392+ 
393+可参考以下资料:
394+- 基础API:[Mutex::Lock](../../../api/SIMD-API/basic_api/sync_control/intra_core_sync/Mutex_ISASI.md)、[Mutex::Unlock](../../../api/SIMD-API/basic_api/sync_control/intra_core_sync/Mutex_ISASI.md)、[AllocMutexID](../../../api/SIMD-API/basic_api/sync_control/intra_core_sync/AllocMutexID_ISASI.md)。
395+- C API:[asc_lock](../../../api/SIMD-API/c_api/sync/asc_lock.md)、[asc_unlock](../../../api/SIMD-API/c_api/sync/asc_unlock.md)。
396+ 
397+#### 典型样例说明
398+ 
399+[mutex样例](../../../../../examples/01_simd_cpp_api/03_basic_api/05_sync_control/mutex):使用Mutex实现MTE2、V流水与MTE3流水之间的同步,在未使用SetFlag、WaitFlag的情况下正确完成数据搬运与计算。
400+ 
401+### 新增核间同步控制模式4<a name="section_crosscore"></a>
402+ 
403+#### 特性应用场景说明
404+ 
405+在Mix算子中,AIV核(Vector)与AIC核(Cube)之间存在数据依赖,需要通过核间同步接口保证数据就绪后再发起后续计算。在[NPU架构版本2201](../../programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)上,当AIC核等待同步时,AIV0与AIV1必须同时上报,即采用模式2实现AIC与所有AIV同步,因此同步粒度较粗。3510架构新增核间同步控制模式4,用于AIC与单个AIV同步,AIV0与AIV1可分别触发AIC等待,从而细化同步粒度、减少冗余等待并提高执行效率。
406+ 
407+#### 功能说明
408+ 
409+可参考以下资料:
410+- 基础API:[CrossCoreSetFlag](../../../api/SIMD-API/basic_api/sync_control/inter_core_sync/CrossCoreSetFlag_ISASI.md)、[CrossCoreWaitFlag](../../../api/SIMD-API/basic_api/sync_control/inter_core_sync/CrossCoreWaitFlag_ISASI.md)。
411+- C API:[asc_sync_intra_arrive](../../../api/SIMD-API/c_api/sync/asc_sync_intra_arrive.md)、[asc_sync_intra_wait](../../../api/SIMD-API/c_api/sync/asc_sync_intra_wait.md)。
412+ 
413+#### 典型样例说明
414+ 
415+[cross_core_set_wait_flag样例](../../../../../examples/01_simd_cpp_api/03_basic_api/05_sync_control/cross_core_set_wait_flag):在Mix算子场景下,使用模式4核间同步,AIV0与AIV1分别单独触发AIC核等待,完成UB到L1 Buffer搬运与Mmad计算的流水协作。
416+ 
417+### 其他增强说明
418+ 
419+除上述特性外,3510架构还提供以下增强能力。
420+ 
421+#### 架构规格
422+ 
423+- **AI Core核数增加**:3510架构的AI Core核数较2201架构有所增加,可支持更大的片上并行规模。
424+- **UB容量提升**:3510架构的UB总容量提升至256KB,由16个bank组成8个bank group,每个bank group包含2个bank,每个bank大小为16KB。若发生UB冲突,可参考[避免UB的bank冲突](../../operator_practice/simd_operator_optimization/memory_access/avoid_ub_bank_conflict/overview.md)解决;[bank_conflict_3510样例](../../../../../examples/01_simd_cpp_api/05_best_practices/04_memory_access/bank_conflict_3510)提供了3510架构下UB Bank冲突场景的验证与分析方法。
425+ 
426+#### 数据类型
427+ 
428+- **数据类型扩展**:3510架构扩展了支持的数据类型,例如fp4x2_e2m1_t、fp4x2_e1m2_t、hifloat8_t、fp8_e8m0_t、fp8_e5m2_t和fp8_e4m3fn_t。具体请参见[数据类型介绍](../../../api/SIMD-API/basic_api/data_structures/builtin_data_types.md)。在Host端,fp4x2_e2m1_t、fp4x2_e1m2_t、hifloat8_t、fp8_e8m0_t、fp8_e5m2_t、fp8_e4m3fn_t、int4x2_t和bfloat16_t仅支持以C++模板形式定义与声明。具体请参见[约束说明](../../programming_guide/compilation_and_execution/operator_compilation/constraints.md)。
429+ 
430+#### 缓存管理
431+ 
432+- **新增Cache类型**:2201架构仅支持L2 Cache、DCache和ICache,3510架构新增支持NDDMA Cache。ND-DMA为多维数据搬运能力的名称,NDDMA Cache为该能力对应的缓存类型名称。多核间数据一致性说明请参见[Cache一致性](../../programming_guide/advanced_programming/memory_model/cache_coherence.md),完整Cache类型与功能说明请参见[系统缓存概述](../../../api/SIMD-API/basic_api/cache_control/system_cache_overview.md)。
433+- **Cache控制接口增强**:3510架构下的[DataCacheCleanAndInvalid](../../../api/SIMD-API/basic_api/cache_control/DataCacheCleanAndInvalid.md)接口新增支持`CACHELINE_ATOMIC`参数,用于在原子操作过程中保证DCache与GM的一致性。
434+ 
435+#### 编译选项与空间优化
436+ 
437+- **UB空间使用与编译选项**:UB总容量为256KB,其中部分空间可能用于系统预留或划分为Data Cache。3510架构下Ascend C接口内部使用**2KB**预留UB空间,用于指令兼容或存储中间数据;2201架构下的预留UB空间为8KB。以下编译选项生效,可调整可用的UB空间大小:
438+ - `--cce-disable-asc-reserved-ubuf`:禁用Ascend C接口使用预留UB空间,开启后依赖预留UB空间的接口不可用,3510架构下使用预留UB空间的API范围请参考[使用预留UB空间的API列表](../../programming_guide/programming_model/ai_core_simd_programming/cpp_tensor_programming/static_tensor_programming.md#section_reserved_ubuf_api)。
439+ - `--cce-disable-vf-stack-reserved-ubuf`:禁用SIMD VF栈预留的UB空间。该选项仅在3510架构下生效。开启后可释放6KB预留空间作为普通UB使用,但编译器无法再使用该空间缓存寄存器溢出数据,需保证寄存器不溢出。
440+- **性能优化编译宏**:`NO_OVERLAP_IN_MULTI_REPEAT`可在没有地址重叠的情况下移除不必要的内存同步指令,提升基础API高维切分计算场景的性能,详情请参考[内置编译宏开关](../../programming_guide/compilation_and_execution/operator_compilation/ai_core_operator_compilation.md#内置编译宏开关)。
441+- **DCI编译选项**:有关`--cce-no-dcache-flush`编译选项的使用说明,请参见[新增DCI(数据缓存失效)能力](#section_dci)。
@@ -376,6 +376,8 @@
376 - [基础API迁移指导](cross_gen_migration_guide/3510_arch_migration/2201_to_3510_guide/basic_api_migration.md)376 - [基础API迁移指导](cross_gen_migration_guide/3510_arch_migration/2201_to_3510_guide/basic_api_migration.md)
377 - [高阶API迁移指导](cross_gen_migration_guide/3510_arch_migration/2201_to_3510_guide/advanced_api_migration.md)377 - [高阶API迁移指导](cross_gen_migration_guide/3510_arch_migration/2201_to_3510_guide/advanced_api_migration.md)
378 - [算子编译迁移指导](cross_gen_migration_guide/3510_arch_migration/2201_to_3510_guide/op_compilation_migration.md)378 - [算子编译迁移指导](cross_gen_migration_guide/3510_arch_migration/2201_to_3510_guide/op_compilation_migration.md)
379+ - [新特性使用指导](cross_gen_migration_guide/instructions_for_new_features/3510_new_features.md)
380+ - [3510新特性使用说明](cross_gen_migration_guide/instructions_for_new_features/3510_new_features.md)
379 381 
380- [技术附录](./technical_appendix/concepts_and_terms/glossary.md)382- [技术附录](./technical_appendix/concepts_and_terms/glossary.md)
381 - [概念原理和术语](./technical_appendix/concepts_and_terms/glossary.md)383 - [概念原理和术语](./technical_appendix/concepts_and_terms/glossary.md)