已合并
优化CAPI资料目录 #5336
JC1126创建于 8月25日
优化CAPI资料目录 #5336
已合并
共 603 个文件变更+2726-2734
| @@ -15,15 +15,15 @@ This document indexes the new hardware features of Ascend 950PR/Ascend 950DT (NP | |||
| 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) | | 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) | | 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) | | 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/data_type_convert/asc_float2hif8_deprecated.md) | Under development | | 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 | | 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_data_move/asc_copy_l0c2ub.md) | [Matrix Multiplication Result Accumulation](../zh/guide/operator_practice/simd_operator_optimization/matrix_compute/l0c_buffer_matmul_accumulate.md) | | 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_data_move/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) | | 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 | | 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 | | 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) | | 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_data_move/asc_copy_l12l0a_mx.md), [asc_copy_l12l0b_mx](../zh/api/SIMD-API/c_api/cube_data_move/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) | | 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_data_move/asc_copy_l0c2gm/asc_copy_l0c2gm_arch_3510.md), [asc_copy_l0c2l1](../zh/api/SIMD-API/c_api/cube_data_move/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) | | 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) | | 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 | 28 | ||
| 29 | --- | 29 | --- |
| @@ -48,25 +48,26 @@ NPU内部有不同的计算单元,在计算时往往需要把计算数据搬 | |||
| 48 | - PIPE_FIX:Fixpipe流水线。 | 48 | - PIPE_FIX:Fixpipe流水线。 |
| 49 | - PIPE_ALL:所有流水线。 | 49 | - PIPE_ALL:所有流水线。 |
| 50 | 50 | ||
| 51 | -可通过[同步控制](sync/sync_control.md)类API控制同一流水线内的运行顺序和不同流水线间的执行顺序。 | 51 | +可通过[同步控制](sync/sync.md)类API控制同一流水线内的运行顺序和不同流水线间的执行顺序。 |
| 52 | 52 | ||
| 53 | ## API列表 | 53 | ## API列表 |
| 54 | 54 | ||
| 55 | | 目录 | | 55 | | 目录 | |
| 56 | |-----------------------| | 56 | |-----------------------| |
| 57 | -| [数据结构](c_api.md#数据结构) | | 57 | +| [基础定义](c_api.md#基础定义) | |
| 58 | -| [矢量计算](c_api.md#矢量计算) | | 58 | +| [工具接口](c_api.md#工具接口) | |
| 59 | -| [数据搬运](c_api.md#数据搬运) | | ||
| 60 | -| [标量操作](c_api.md#标量操作) | | ||
| 61 | | [矩阵计算](c_api.md#矩阵计算) | | 59 | | [矩阵计算](c_api.md#矩阵计算) | |
| 62 | -| [同步控制](c_api.md#同步控制) | | 60 | +| [矩阵计算搬运](c_api.md#矩阵计算搬运) | |
| 63 | -| [系统变量](c_api.md#系统变量) | | 61 | +| [Memory矢量计算](c_api.md#memory矢量计算) | |
| 64 | -| [缓存控制](c_api.md#缓存控制) | | 62 | +| [矢量数据搬运](c_api.md#矢量数据搬运) | |
| 63 | +| [Reg矢量计算](c_api.md#reg矢量计算) | | ||
| 64 | +| [标量计算](c_api.md#标量计算) | | ||
| 65 | | [原子操作](c_api.md#原子操作) | | 65 | | [原子操作](c_api.md#原子操作) | |
| 66 | +| [缓存控制](c_api.md#缓存控制) | | ||
| 67 | +| [同步控制](c_api.md#同步控制) | | ||
| 66 | | [其他操作](c_api.md#其他操作) | | 68 | | [其他操作](c_api.md#其他操作) | |
| 67 | -| [枚举类型](c_api.md#枚举类型) | | 69 | +| [特殊寄存器访问](c_api.md#特殊寄存器访问) | |
| 68 | -| [Reg数据搬运](c_api.md#Reg数据搬运) | | 70 | +| [废弃接口](deprecated_interface/deprecated_interface.md) | |
| 69 | -| [Reg矢量计算](c_api.md#Reg矢量计算) | | ||
| 70 | 71 | ||
| 71 | ## 参考样例 | 72 | ## 参考样例 |
| 72 | 73 | ||
| @@ -0,0 +1,6 @@ | |||
| 1 | +# 原子操作 | ||
| 2 | + | ||
| 3 | +- **[原子操作概述](atomic_operations_overview.md)** | ||
| 4 | +- **[关键特性说明](key_features.md)** | ||
| 5 | +- **[搬运原子操作](datamove_atomic/datamove_atomic.md)** | ||
| 6 | +- **[标量原子操作](scalar_atomic/scalar_atomic.md)** | ||
| @@ -0,0 +1,42 @@ | |||
| 1 | +# 原子操作概述 | ||
| 2 | + | ||
| 3 | +数据搬运随路原子操作接口用于对后续目的地址为GM的数据搬运指令开启原子操作,涉及的接口请参见[表1](#table1)。如下图1的左侧子图所示,未开启原子操作时,写入GM的数据搬运完成后,GM中原始数据将被新搬运数据完全覆盖。如图1右侧子图所示,当数据搬运随路原子操作接口被调用后,系统将为后续写入GM的数据搬运开启原子操作。此时,数据搬运完成后,GM中的最终数据由原始GM数据与新搬运数据共同决定。 | ||
| 4 | + | ||
| 5 | +**图1** 数据搬运随路原子累加效果 | ||
| 6 | + | ||
| 7 | + | ||
| 8 | +**表1** 数据搬运随路原子操作接口<a name="table1"></a> | ||
| 9 | + | ||
| 10 | +| 对应接口 | 接口功能描述 | | ||
| 11 | +| --- | --- | | ||
| 12 | +| [asc_set_atomic_add](datamove_atomic/asc_set_atomic_add.md) | 对后续目的地址为GM的数据搬运开启原子累加。原子累加过程:将待拷贝的内容和GM已有内容进行求和,然后将求和结果写入GM。 | | ||
| 13 | +| [asc_set_atomic_max](datamove_atomic/asc_set_atomic_max.md) | 设置后续搬运到GM的数据是否执行原子比较:将待拷贝的内容和GM已有内容进行比较,然后将最大值写入GM。 | | ||
| 14 | +| [asc_set_atomic_min](datamove_atomic/asc_set_atomic_min.md) | 设置后续搬运到GM的数据是否执行原子比较:将待拷贝的内容和GM已有内容进行比较,然后将最小值写入GM。 | | ||
| 15 | +| [asc_set_atomic_none](datamove_atomic/asc_set_atomic_none.md) | 关闭数据搬运随路原子操作功能。 | | ||
| 16 | +| [asc_set_store_atomic_config_v1](scalar_atomic/asc_set_store_atomic_config_v1.md) | 设置数据搬运的原子操作配置。 | | ||
| 17 | +| [asc_get_store_atomic_config](scalar_atomic/asc_get_store_atomic_config.md) | 获取数据搬运的原子操作配置。 | | ||
| 18 | + | ||
| 19 | +<!-- npu="950" id1 --> | ||
| 20 | +针对Ascend 950PR/Ascend 950DT,新增Scalar原子操作接口,能够在指定GM地址上进行单点原子计算操作,涉及的接口请参见[表2](#table2)。对比数据搬运随路原子操作接口,Scalar原子操作接口不会影响后续向GM搬运数据的指令。 | ||
| 21 | + | ||
| 22 | +如下图2左侧子图所示,不使用`asc_atomic_add`接口时,多个AI Core同时对同一GM地址执行累加操作会相互覆盖,操作不具备原子性,最终结果不可预期。如右侧子图所示,使用`asc_atomic_add`接口后,各AI Core的累加操作串行化执行,确保每次累加操作的原子性,最终结果符合预期。 | ||
| 23 | + | ||
| 24 | +**图2** 标量原子累加效果 | ||
| 25 | + | ||
| 26 | + | ||
| 27 | +**表2** Scalar原子操作接口<a name="table2"></a> | ||
| 28 | + | ||
| 29 | +| 对应接口 | 接口功能描述 | | ||
| 30 | +| --- | --- | | ||
| 31 | +| [asc_atomic_add](scalar_atomic/asc_atomic_add.md) | 用于在指定GM地址上进行原子加操作,将address指向的GM地址上的旧值(`old_value`)与输入标量值(value)求和,将和结果(`new_value`)写回GM地址,返回该地址修改前的值(`old_value`)。 | | ||
| 32 | +| [asc_atomic_min](scalar_atomic/asc_atomic_min.md) | 用于在指定GM地址上进行原子取最小值操作,将address指向的GM地址上的旧值(`old_value`)与输入标量值(value)做比较,将较小值(`new_value`)写回GM地址,返回该地址修改前的值(`old_value`)。 | | ||
| 33 | +| [asc_atomic_max](scalar_atomic/asc_atomic_max.md) | 用于在指定GM地址上进行原子取大操作,将address指向的GM地址上的旧值(`old_value`)与输入的标量值(value)进行比较,将较大值(`new_value`)写回GM地址,返回该地址修改前的值(`old_value`)。 | | ||
| 34 | +| [asc_atomic_cas](scalar_atomic/asc_atomic_cas.md) | 在指定GM地址上进行原子比较操作,读取address指向的GM地址上的旧值(`old_value`)与输入标量值value1进行比较:如果相等,则将输入标量值value2写入GM地址;如果不相等,则GM地址上的值保持不变。返回该地址修改前的值(`old_value`)。 | | ||
| 35 | +| [asc_atomic_exch](scalar_atomic/asc_atomic_exch.md) | 用于在GM内存中执行原子交换操作,读取address指向的GM地址上的旧值(`old_value`),并将输入的标量值(value)替换旧值存储回同一地址,返回该地址修改前的值(`old_value`)。 | | ||
| 36 | +| [asc_atomic_and](scalar_atomic/asc_atomic_and.md) | 对GM中的数据与指定数据执行原子与操作,即将val按位与到address指向的数据元素上。读取address指向的GM地址上的旧值(`old_value`),将旧值与输入标量值val进行按位与运算,将结果(`new_value`)写回GM地址,返回该地址修改前的值(`old_value`)。 | | ||
| 37 | +| [asc_atomic_inc](scalar_atomic/asc_atomic_inc.md) | 对GM中address指向的计数器执行原子递增操作,如果address上的数值大于等于指定数值val,则对address赋值为0,否则将address上数值加1,返回该地址修改前的值(`old_value`)。 | | ||
| 38 | +| [asc_atomic_dec](scalar_atomic/asc_atomic_dec.md) | 对GM中address指向的计数器执行原子递减操作,如果address上的数值等于0或大于指定数值val,则对address赋值为val,否则将address上数值减1,返回该地址修改前的值(`old_value`)。 | | ||
| 39 | +| [asc_atomic_or](scalar_atomic/asc_atomic_or.md) | 对GM中的数据与指定数据执行原子或操作,即将val按位或到address指向的数据元素上。读取address指向的GM地址上的旧值(`old_value`),将旧值与输入标量值val进行按位或运算,将结果(`new_value`)写回GM地址,返回该地址修改前的值(`old_value`)。 | | ||
| 40 | +| [asc_atomic_sub](scalar_atomic/asc_atomic_sub.md) | 对GM中的数据与指定数据执行原子减操作,即将val从address指向的数据元素上减去。读取address指向的GM地址上的旧值(`old_value`),将旧值减去输入标量值val,将结果(`new_value`)写回GM地址,返回该地址修改前的值(`old_value`)。 | | ||
| 41 | +| [asc_atomic_xor](scalar_atomic/asc_atomic_xor.md) | 对GM中的数据与指定数据执行原子异或操作,即将val按位异或到address指向的数据元素上。读取address指向的GM地址上的旧值(`old_value`),将旧值与输入标量值val进行按位异或运算,将结果(`new_value`)写回GM地址,返回该地址修改前的值(`old_value`)。 | | ||
| 42 | +<!-- end id1 --> | ||
Rdocs/zh/api/SIMD-API/c_api/simd_atomic/asc_set_atomic_add.md→docs/zh/api/SIMD-API/c_api/atomic/datamove_atomic/asc_set_atomic_add.md+4-4
| @@ -65,9 +65,9 @@ PIPE_S | |||
| 65 | <!-- npu="910b" id9 --> | 65 | <!-- npu="910b" id9 --> |
| 66 | - Atlas A2 训练系列产品/Atlas A2 推理系列产品,支持的数据通路为UB/L0C Buffer/L1 Buffer->GM。 | 66 | - Atlas A2 训练系列产品/Atlas A2 推理系列产品,支持的数据通路为UB/L0C Buffer/L1 Buffer->GM。 |
| 67 | <!-- end id9 --> | 67 | <!-- end id9 --> |
| 68 | -- 本接口调用后会对后续所有目的地址为GM的搬运指令开启原子操作,可以调用[asc_set_atomic_none](./asc_set_atomic_none.md)接口关闭原子操作。 | 68 | +- 本接口调用后会对后续所有目的地址为GM的搬运指令开启原子操作,可以调用[asc_set_atomic_none](asc_set_atomic_none.md)接口关闭原子操作。 |
| 69 | - 该接口执行前不会自动将GM上已有数据置零。若开发者期望在原子累加前GM上的原始数据为零,则需手动清零。 | 69 | - 该接口执行前不会自动将GM上已有数据置零。若开发者期望在原子累加前GM上的原始数据为零,则需手动清零。 |
| 70 | -- 本接口仅对后续目的地址为GM的搬运指令(通过MTE1/MTE2/MTE3单元搬运)生效,对于标量写GM的指令(例如[asc_store_dev](../scalar_compute/asc_store_dev.md))不生效。 | 70 | +- 本接口仅对后续目的地址为GM的搬运指令(通过MTE1/MTE2/MTE3单元搬运)生效,对于标量写GM的指令(例如[asc_store_dev](../../scalar_compute/scalar_store/asc_store_dev.md))不生效。 |
| 71 | - 本接口与紧邻的后续搬运指令之间的同步由硬件保证,因此以下示例中插入的多流水同步是不必要的: | 71 | - 本接口与紧邻的后续搬运指令之间的同步由硬件保证,因此以下示例中插入的多流水同步是不必要的: |
| 72 | 72 | ||
| 73 | ```c | 73 | ```c |
| @@ -85,11 +85,11 @@ PIPE_S | |||
| 85 | ``` | 85 | ``` |
| 86 | 86 | ||
| 87 | - 后续搬运指令的操作数据类型需与所选接口设置的数据类型一致。 | 87 | - 后续搬运指令的操作数据类型需与所选接口设置的数据类型一致。 |
| 88 | -- 本接口不能保证后续搬运指令的执行顺序,若需保证确定性的执行顺序请参考[关键特性说明](key_features.md)。 | 88 | +- 本接口不能保证后续搬运指令的执行顺序,若需保证确定性的执行顺序请参考[关键特性说明](../key_features.md)。 |
| 89 | 89 | ||
| 90 | ## 调用示例 | 90 | ## 调用示例 |
| 91 | 91 | ||
| 92 | -将代码保存为`example.asc`后,可通过`bisheng`命令编译运行,其中`--npu-arch`参数需根据实际产品型号指定对应的NPU架构,具体产品与NPU架构的映射关系请参考[\_\_NPU\_ARCH\_\_](../../../../guide/programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)。 | 92 | +将代码保存为`example.asc`后,可通过`bisheng`命令编译运行,其中`--npu-arch`参数需根据实际产品型号指定对应的NPU架构,具体产品与NPU架构的映射关系请参考[\_\_NPU\_ARCH\_\_](../../../../../guide/programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)。 |
| 93 | 93 | ||
| 94 | <!-- npu="950" id10 --> | 94 | <!-- npu="950" id10 --> |
| 95 | 以Ascend 950PR/Ascend 950DT产品(对应NPU架构为`dav-3510`)为例,编译运行命令如下: | 95 | 以Ascend 950PR/Ascend 950DT产品(对应NPU架构为`dav-3510`)为例,编译运行命令如下: |
Rdocs/zh/api/SIMD-API/c_api/simd_atomic/asc_set_atomic_max.md→docs/zh/api/SIMD-API/c_api/atomic/datamove_atomic/asc_set_atomic_max.md+1-1
| @@ -57,7 +57,7 @@ PIPE_S | |||
| 57 | 57 | ||
| 58 | ## 约束说明 | 58 | ## 约束说明 |
| 59 | 59 | ||
| 60 | -- 使用结束后,建议通过[asc_set_atomic_none](./asc_set_atomic_none.md)关闭原子最大操作,以免影响后续相关指令功能。 | 60 | +- 使用结束后,建议通过[asc_set_atomic_none](asc_set_atomic_none.md)关闭原子最大操作,以免影响后续相关指令功能。 |
| 61 | - 该指令执行前不会对GM的数据做清零操作,开发者可以在需要时手动添加清零操作。 | 61 | - 该指令执行前不会对GM的数据做清零操作,开发者可以在需要时手动添加清零操作。 |
| 62 | <!-- npu="950" id9 --> | 62 | <!-- npu="950" id9 --> |
| 63 | - 针对Ascend 950PR/Ascend 950DT,不支持L1 Buffer到GM的通路。 | 63 | - 针对Ascend 950PR/Ascend 950DT,不支持L1 Buffer到GM的通路。 |
Rdocs/zh/api/SIMD-API/c_api/simd_atomic/asc_set_atomic_max_int_deprecated.md→docs/zh/api/SIMD-API/c_api/atomic/datamove_atomic/asc_set_atomic_max_int_deprecated.md+2-2
| @@ -28,7 +28,7 @@ | |||
| 28 | 28 | ||
| 29 | **该接口已废弃,请使用[asc_set_atomic_max_int32](asc_set_atomic_max.md)替代。** | 29 | **该接口已废弃,请使用[asc_set_atomic_max_int32](asc_set_atomic_max.md)替代。** |
| 30 | 30 | ||
| 31 | -头文件路径:`"c_api/atomic/atomic.h"`。 | 31 | +头文件路径:`"c_api/atomic/datamove_atomic.h"`。 |
| 32 | 32 | ||
| 33 | 设置计算结果以原子比较的方式传输到GM。在拷贝前,将待传输的int32_t数据与GM中已有数据进行逐元素比较,并将最大值写入GM。 | 33 | 设置计算结果以原子比较的方式传输到GM。在拷贝前,将待传输的int32_t数据与GM中已有数据进行逐元素比较,并将最大值写入GM。 |
| 34 | 34 | ||
| @@ -53,7 +53,7 @@ PIPE_S | |||
| 53 | 53 | ||
| 54 | ## 约束说明 | 54 | ## 约束说明 |
| 55 | 55 | ||
| 56 | -- 使用结束后,建议通过[asc_set_atomic_none](./asc_set_atomic_none.md)关闭原子最大操作,以免影响后续相关指令功能。 | 56 | +- 使用结束后,建议通过[asc_set_atomic_none](asc_set_atomic_none.md)关闭原子最大操作,以免影响后续相关指令功能。 |
| 57 | 57 | ||
| 58 | ## 调用示例 | 58 | ## 调用示例 |
| 59 | 59 | ||
Rdocs/zh/api/SIMD-API/c_api/simd_atomic/asc_set_atomic_min.md→docs/zh/api/SIMD-API/c_api/atomic/datamove_atomic/asc_set_atomic_min.md+1-1
| @@ -57,7 +57,7 @@ PIPE_S | |||
| 57 | 57 | ||
| 58 | ## 约束说明 | 58 | ## 约束说明 |
| 59 | 59 | ||
| 60 | -- 使用结束后,建议通过[asc_set_atomic_none](./asc_set_atomic_none.md)关闭原子最小操作,以免影响后续相关指令功能。 | 60 | +- 使用结束后,建议通过[asc_set_atomic_none](asc_set_atomic_none.md)关闭原子最小操作,以免影响后续相关指令功能。 |
| 61 | - 该指令执行前不会对GM的数据做清零操作,开发者可以在需要时手动添加清零操作。 | 61 | - 该指令执行前不会对GM的数据做清零操作,开发者可以在需要时手动添加清零操作。 |
| 62 | <!-- npu="950" id9 --> | 62 | <!-- npu="950" id9 --> |
| 63 | - 针对Ascend 950PR/Ascend 950DT,不支持L1 Buffer到GM的通路。 | 63 | - 针对Ascend 950PR/Ascend 950DT,不支持L1 Buffer到GM的通路。 |
Rdocs/zh/api/SIMD-API/c_api/simd_atomic/asc_set_atomic_min_int_deprecated.md→docs/zh/api/SIMD-API/c_api/atomic/datamove_atomic/asc_set_atomic_min_int_deprecated.md+2-2
| @@ -28,7 +28,7 @@ | |||
| 28 | 28 | ||
| 29 | **该接口已废弃,请使用[asc_set_atomic_min_int32](asc_set_atomic_min.md)替代。** | 29 | **该接口已废弃,请使用[asc_set_atomic_min_int32](asc_set_atomic_min.md)替代。** |
| 30 | 30 | ||
| 31 | -头文件路径:`"c_api/atomic/atomic.h"`。 | 31 | +头文件路径:`"c_api/atomic/datamove_atomic.h"`。 |
| 32 | 32 | ||
| 33 | 设置计算结果以原子比较的方式传输到GM。在拷贝前,将待传输的int32_t数据与GM中已有数据进行逐元素比较,并将最小值写入GM。 | 33 | 设置计算结果以原子比较的方式传输到GM。在拷贝前,将待传输的int32_t数据与GM中已有数据进行逐元素比较,并将最小值写入GM。 |
| 34 | 34 | ||
| @@ -53,7 +53,7 @@ PIPE_S | |||
| 53 | 53 | ||
| 54 | ## 约束说明 | 54 | ## 约束说明 |
| 55 | 55 | ||
| 56 | -- 使用结束后,建议通过[asc_set_atomic_none](./asc_set_atomic_none.md)关闭原子最小操作,以免影响后续相关指令功能。 | 56 | +- 使用结束后,建议通过[asc_set_atomic_none](asc_set_atomic_none.md)关闭原子最小操作,以免影响后续相关指令功能。 |
| 57 | 57 | ||
| 58 | ## 调用示例 | 58 | ## 调用示例 |
| 59 | 59 | ||
Rdocs/zh/api/SIMD-API/c_api/simd_atomic/asc_set_atomic_none.md→docs/zh/api/SIMD-API/c_api/atomic/datamove_atomic/asc_set_atomic_none.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/simd_atomic/atomic_operations.md→docs/zh/api/SIMD-API/c_api/atomic/datamove_atomic/datamove_atomic.md+2-12
| @@ -1,19 +1,9 @@ | |||
| 1 | -# 原子操作 | 1 | +# 搬运原子操作 |
| 2 | - | ||
| 3 | -- **[asc_get_store_atomic_config](asc_get_store_atomic_config.md)** | ||
| 4 | 2 | ||
| 5 | - **[asc_set_atomic_add](asc_set_atomic_add.md)** | 3 | - **[asc_set_atomic_add](asc_set_atomic_add.md)** |
| 6 | - | ||
| 7 | - **[asc_set_atomic_max](asc_set_atomic_max.md)** | 4 | - **[asc_set_atomic_max](asc_set_atomic_max.md)** |
| 8 | - | ||
| 9 | - **[asc_set_atomic_min](asc_set_atomic_min.md)** | 5 | - **[asc_set_atomic_min](asc_set_atomic_min.md)** |
| 10 | - | ||
| 11 | - **[asc_set_atomic_none](asc_set_atomic_none.md)** | 6 | - **[asc_set_atomic_none](asc_set_atomic_none.md)** |
| 12 | - | 7 | +- **[asc_set_atomic_add_int(废弃)](../../deprecated_interface/asc_set_atomic_add_int_deprecated.md)** |
| 13 | -- **[asc_set_store_atomic_config_v1](asc_set_store_atomic_config_v1.md)** | ||
| 14 | - | ||
| 15 | - **[asc_set_atomic_max_int(废弃)](asc_set_atomic_max_int_deprecated.md)** | 8 | - **[asc_set_atomic_max_int(废弃)](asc_set_atomic_max_int_deprecated.md)** |
| 16 | - | ||
| 17 | - **[asc_set_atomic_min_int(废弃)](asc_set_atomic_min_int_deprecated.md)** | 9 | - **[asc_set_atomic_min_int(废弃)](asc_set_atomic_min_int_deprecated.md)** |
| 18 | - | ||
| 19 | -- **[asc_set_store_atomic_config_v2(废弃)](asc_set_store_atomic_config_v2_deprecated.md)** | ||
Rdocs/zh/api/SIMD-API/c_api/simd_atomic/key_features.md→docs/zh/api/SIMD-API/c_api/atomic/key_features.md+4-4
| @@ -4,9 +4,9 @@ | |||
| 4 | 4 | ||
| 5 | 对下文描述中出现的接口有以下说明: | 5 | 对下文描述中出现的接口有以下说明: |
| 6 | 6 | ||
| 7 | -- 对于浮点数类型的原子累加,本文以`asc_set_atomic_add_float()`为例,更多原子操作类型参考[asc_set_atomic_add](asc_set_atomic_add.md)。 | 7 | +- 对于浮点数类型的原子累加,本文以`asc_set_atomic_add_float()`为例,更多原子操作类型参考[asc_set_atomic_add](datamove_atomic/asc_set_atomic_add.md)。 |
| 8 | -- 对于原子最大和原子最小,本文以`asc_set_atomic_max_float()`和`asc_set_atomic_min_float()`为例,更多原子操作类型参考[asc_set_atomic_max](asc_set_atomic_max.md)和[asc_set_atomic_min](asc_set_atomic_min.md)。 | 8 | +- 对于原子最大和原子最小,本文以`asc_set_atomic_max_float()`和`asc_set_atomic_min_float()`为例,更多原子操作类型参考[asc_set_atomic_max](datamove_atomic/asc_set_atomic_max.md)和[asc_set_atomic_min](datamove_atomic/asc_set_atomic_min.md)。 |
| 9 | -- 对于AIV和AIC中向GM搬运数据的接口,本文分别以`asc_copy_ub2gm()`和`asc_copy_l0c2gm()`为例,更多搬运接口参考[矢量数据搬运](../vector_data_move/vector_data_move.md)和[矩阵数据搬运](../cube_data_move/cube_data_move.md)。 | 9 | +- 对于AIV和AIC中向GM搬运数据的接口,本文分别以`asc_copy_ub2gm()`和`asc_copy_l0c2gm()`为例,更多搬运接口参考[矢量数据搬运](../vector_datamove/vector_datamove.md)和[矩阵计算搬运](../cube_datamove/cube_datamove.md)。 |
| 10 | 10 | ||
| 11 | ## 确定性计算概述 | 11 | ## 确定性计算概述 |
| 12 | 12 | ||
| @@ -157,7 +157,7 @@ Scalar单元访问GM上的信号量,存在两种访问方式: | |||
| 157 | 157 | ||
| 158 | - 不通过DCache访问 | 158 | - 不通过DCache访问 |
| 159 | 159 | ||
| 160 | - 使用[asc_store_dev](../scalar_compute/asc_store_dev.md)和与其对应的绕过DCache读取能力直接访问GM。这种方式无需额外操作即可保证多核间数据的一致性。 | 160 | + 使用[asc_store_dev](../scalar_compute/scalar_store/asc_store_dev.md)和与其对应的绕过DCache读取能力直接访问GM。这种方式无需额外操作即可保证多核间数据的一致性。 |
| 161 | 161 | ||
| 162 | 如图4所示,核间同步方案中也需要与核内同步配合使用,现将三处核内同步作用说明如下: | 162 | 如图4所示,核间同步方案中也需要与核内同步配合使用,现将三处核内同步作用说明如下: |
| 163 | 163 | ||
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_atomic_add.md→docs/zh/api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_add.md+1-1
| @@ -68,7 +68,7 @@ PIPE_S | |||
| 68 | ## 约束说明 | 68 | ## 约束说明 |
| 69 | 69 | ||
| 70 | - 在开启编译器自动同步功能的前提下,编译器能够自动在PIPE_MTE2/PIPE_MTE3与PIPE_S之间插入同步。但是,asc_atomic_add为标量计算,在读写GM时如果与搬运单元(MTE2/MTE3)存在数据依赖,编译器却无法自动插入同步,开发者需要根据实际情况手动插入同步。 | 70 | - 在开启编译器自动同步功能的前提下,编译器能够自动在PIPE_MTE2/PIPE_MTE3与PIPE_S之间插入同步。但是,asc_atomic_add为标量计算,在读写GM时如果与搬运单元(MTE2/MTE3)存在数据依赖,编译器却无法自动插入同步,开发者需要根据实际情况手动插入同步。 |
| 71 | -- Scalar原子操作会绕过DCache,需要调用[asc_dcci](../cache_ctrl/asc_dcci.md)接口确保GM与DCache的一致性。 | 71 | +- Scalar原子操作会绕过DCache,需要调用[asc_dcci](../../cache_ctrl/asc_dcci.md)接口确保GM与DCache的一致性。 |
| 72 | - float类型下接口的性能与接口返回值是否被使用有关,具体情况如下: | 72 | - float类型下接口的性能与接口返回值是否被使用有关,具体情况如下: |
| 73 | - 当使用接口返回值时,接口采用软仿实现,float类型下接口的性能低于其它数据类型。 | 73 | - 当使用接口返回值时,接口采用软仿实现,float类型下接口的性能低于其它数据类型。 |
| 74 | - 当不使用接口返回值时,float类型下接口的性能与其它数据类型一致。 | 74 | - 当不使用接口返回值时,float类型下接口的性能与其它数据类型一致。 |
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_atomic_and.md→docs/zh/api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_and.md+1-1
| @@ -66,7 +66,7 @@ PIPE_S | |||
| 66 | ## 约束说明 | 66 | ## 约束说明 |
| 67 | 67 | ||
| 68 | - 在开启编译器自动同步功能的前提下,编译器能够自动在PIPE_MTE2/PIPE_MTE3与PIPE_S之间插入同步。但是,asc_atomic_and为标量计算,在读写GM时如果与搬运单元(MTE2/MTE3)存在数据依赖,编译器却无法自动插入同步,开发者需要根据实际情况手动插入同步。 | 68 | - 在开启编译器自动同步功能的前提下,编译器能够自动在PIPE_MTE2/PIPE_MTE3与PIPE_S之间插入同步。但是,asc_atomic_and为标量计算,在读写GM时如果与搬运单元(MTE2/MTE3)存在数据依赖,编译器却无法自动插入同步,开发者需要根据实际情况手动插入同步。 |
| 69 | -- Scalar原子操作会绕过DCache,需要调用[asc_dcci](../cache_ctrl/asc_dcci.md)接口确保GM与DCache的一致性。 | 69 | +- Scalar原子操作会绕过DCache,需要调用[asc_dcci](../../cache_ctrl/asc_dcci.md)接口确保GM与DCache的一致性。 |
| 70 | 70 | ||
| 71 | ## 调用示例 | 71 | ## 调用示例 |
| 72 | 72 | ||
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_atomic_cas.md→docs/zh/api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_cas.md+1-1
| @@ -63,7 +63,7 @@ PIPE_S | |||
| 63 | ## 约束说明 | 63 | ## 约束说明 |
| 64 | 64 | ||
| 65 | - 在开启编译器自动同步功能的前提下,编译器能够自动在PIPE_MTE2/PIPE_MTE3与PIPE_S之间插入同步。但是,asc_atomic_cas为标量计算,在读写GM时如果与搬运单元(MTE2/MTE3)存在数据依赖,编译器却无法自动插入同步,开发者需要根据实际情况手动插入同步。 | 65 | - 在开启编译器自动同步功能的前提下,编译器能够自动在PIPE_MTE2/PIPE_MTE3与PIPE_S之间插入同步。但是,asc_atomic_cas为标量计算,在读写GM时如果与搬运单元(MTE2/MTE3)存在数据依赖,编译器却无法自动插入同步,开发者需要根据实际情况手动插入同步。 |
| 66 | -- Scalar原子操作会绕过DCache,需要调用[asc_dcci](../cache_ctrl/asc_dcci.md)接口确保GM与DCache的一致性。 | 66 | +- Scalar原子操作会绕过DCache,需要调用[asc_dcci](../../cache_ctrl/asc_dcci.md)接口确保GM与DCache的一致性。 |
| 67 | 67 | ||
| 68 | ## 调用示例 | 68 | ## 调用示例 |
| 69 | 69 | ||
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_atomic_dec.md→docs/zh/api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_dec.md+1-1
| @@ -56,7 +56,7 @@ PIPE_S | |||
| 56 | ## 约束说明 | 56 | ## 约束说明 |
| 57 | 57 | ||
| 58 | - 在开启编译器自动同步功能的前提下,编译器能够自动在PIPE_MTE2/PIPE_MTE3与PIPE_S之间插入同步。但是,asc_atomic_dec为标量计算,在读写GM时如果与搬运单元(MTE2/MTE3)存在数据依赖,编译器却无法自动插入同步,开发者需要根据实际情况手动插入同步。 | 58 | - 在开启编译器自动同步功能的前提下,编译器能够自动在PIPE_MTE2/PIPE_MTE3与PIPE_S之间插入同步。但是,asc_atomic_dec为标量计算,在读写GM时如果与搬运单元(MTE2/MTE3)存在数据依赖,编译器却无法自动插入同步,开发者需要根据实际情况手动插入同步。 |
| 59 | -- Scalar原子操作会绕过DCache,需要调用[asc_dcci](../cache_ctrl/asc_dcci.md)接口确保GM与DCache的一致性。 | 59 | +- Scalar原子操作会绕过DCache,需要调用[asc_dcci](../../cache_ctrl/asc_dcci.md)接口确保GM与DCache的一致性。 |
| 60 | 60 | ||
| 61 | ## 调用示例 | 61 | ## 调用示例 |
| 62 | 62 | ||
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_atomic_exch.md→docs/zh/api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_exch.md+1-1
| @@ -62,7 +62,7 @@ PIPE_S | |||
| 62 | ## 约束说明 | 62 | ## 约束说明 |
| 63 | 63 | ||
| 64 | - 在开启编译器自动同步功能的前提下,编译器能够自动在PIPE_MTE2/PIPE_MTE3与PIPE_S之间插入同步。但是,asc_atomic_exch为标量计算,在读写GM时如果与搬运单元(MTE2/MTE3)存在数据依赖,编译器却无法自动插入同步,开发者需要根据实际情况手动插入同步。 | 64 | - 在开启编译器自动同步功能的前提下,编译器能够自动在PIPE_MTE2/PIPE_MTE3与PIPE_S之间插入同步。但是,asc_atomic_exch为标量计算,在读写GM时如果与搬运单元(MTE2/MTE3)存在数据依赖,编译器却无法自动插入同步,开发者需要根据实际情况手动插入同步。 |
| 65 | -- Scalar原子操作会绕过DCache,需要调用[asc_dcci](../cache_ctrl/asc_dcci.md)接口确保GM与DCache的一致性。 | 65 | +- Scalar原子操作会绕过DCache,需要调用[asc_dcci](../../cache_ctrl/asc_dcci.md)接口确保GM与DCache的一致性。 |
| 66 | 66 | ||
| 67 | ## 调用示例 | 67 | ## 调用示例 |
| 68 | 68 | ||
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_atomic_inc.md→docs/zh/api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_inc.md+1-1
| @@ -56,7 +56,7 @@ PIPE_S | |||
| 56 | ## 约束说明 | 56 | ## 约束说明 |
| 57 | 57 | ||
| 58 | - 在开启编译器自动同步功能的前提下,编译器能够自动在PIPE_MTE2/PIPE_MTE3与PIPE_S之间插入同步。但是,asc_atomic_inc为标量计算,在读写GM时如果与搬运单元(MTE2/MTE3)存在数据依赖,编译器却无法自动插入同步,开发者需要根据实际情况手动插入同步。 | 58 | - 在开启编译器自动同步功能的前提下,编译器能够自动在PIPE_MTE2/PIPE_MTE3与PIPE_S之间插入同步。但是,asc_atomic_inc为标量计算,在读写GM时如果与搬运单元(MTE2/MTE3)存在数据依赖,编译器却无法自动插入同步,开发者需要根据实际情况手动插入同步。 |
| 59 | -- Scalar原子操作会绕过DCache,需要调用[asc_dcci](../cache_ctrl/asc_dcci.md)接口确保GM与DCache的一致性。 | 59 | +- Scalar原子操作会绕过DCache,需要调用[asc_dcci](../../cache_ctrl/asc_dcci.md)接口确保GM与DCache的一致性。 |
| 60 | 60 | ||
| 61 | ## 调用示例 | 61 | ## 调用示例 |
| 62 | 62 | ||
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_atomic_max.md→docs/zh/api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_max.md+4-4
| @@ -70,10 +70,10 @@ __aicore__ inline int32_t asc_atomic_max(__gm__ int32_t* address, | |||
| 70 | 70 | ||
| 71 | - `address`必须落在Global Memory地址空间。 | 71 | - `address`必须落在Global Memory地址空间。 |
| 72 | - `address`需按`sizeof(dtype)`字节对齐。 | 72 | - `address`需按`sizeof(dtype)`字节对齐。 |
| 73 | -- 本接口不受[asc_set_atomic_max](../simd_atomic/asc_set_atomic_max.md)等数据搬运随路原子设置影响,也不会影响后续搬运指令。 | 73 | +- 本接口不受[asc_set_atomic_max](../datamove_atomic/asc_set_atomic_max.md)等数据搬运随路原子设置影响,也不会影响后续搬运指令。 |
| 74 | - 对同一`address`的并发调用以原子方式完成“读取、比较、写回”,不会丢失更新;最终写入结果为各参与值中的最大值。 | 74 | - 对同一`address`的并发调用以原子方式完成“读取、比较、写回”,不会丢失更新;最终写入结果为各参与值中的最大值。 |
| 75 | -- 本接口运行在标量流水(`PIPE_S`)上,同一标量流水内的数据依赖由指令执行顺序保证。若本接口与`PIPE_MTE2`或`PIPE_MTE3`上的数据搬运指令访问同一GM地址,且执行顺序影响结果,编译器无法自动完成跨流水同步,调用方需按实际依赖插入[asc_sync_pipe](../sync/asc_sync_pipe.md),或配合使用[asc_sync_notify](../sync/asc_sync_notify.md)与[asc_sync_wait](../sync/asc_sync_wait.md)保证执行顺序。 | 75 | +- 本接口运行在标量流水(`PIPE_S`)上,同一标量流水内的数据依赖由指令执行顺序保证。若本接口与`PIPE_MTE2`或`PIPE_MTE3`上的数据搬运指令访问同一GM地址,且执行顺序影响结果,编译器无法自动完成跨流水同步,调用方需按实际依赖插入[asc_sync_pipe](../../sync/asc_sync_pipe.md),或配合使用[asc_sync_notify](../../sync/asc_sync_notify.md)与[asc_sync_wait](../../sync/asc_sync_wait.md)保证执行顺序。 |
| 76 | -- 本接口访问GM时绕过DCache,不维护缓存一致性。若其他核或其他通路通过缓存访问同一GM地址,调用方需使用[asc_dcci](../cache_ctrl/asc_dcci.md)清理或失效对应Cache Line,并使用[asc_sync_data_barrier](../sync/asc_sync_data_barrier.md)保证相关访存操作的执行顺序和数据可见性。详情可参考[Scalar原子操作与DCache一致性](../../../../guide/programming_guide/advanced_programming/memory_model/cache_coherence.md#scalar原子操作与dcache一致性)。 | 76 | +- 本接口访问GM时绕过DCache,不维护缓存一致性。若其他核或其他通路通过缓存访问同一GM地址,调用方需使用[asc_dcci](../../cache_ctrl/asc_dcci.md)清理或失效对应Cache Line,并使用[asc_sync_data_barrier](../../sync/asc_sync_data_barrier.md)保证相关访存操作的执行顺序和数据可见性。详情可参考[Scalar原子操作与DCache一致性](../../../../../guide/programming_guide/advanced_programming/memory_model/cache_coherence.md#scalar原子操作与dcache一致性)。 |
| 77 | - float类型下接口的性能与接口返回值是否被使用有关,具体情况如下: | 77 | - float类型下接口的性能与接口返回值是否被使用有关,具体情况如下: |
| 78 | - 当使用接口返回值时,接口采用软仿实现,float类型下接口的性能低于其它数据类型。 | 78 | - 当使用接口返回值时,接口采用软仿实现,float类型下接口的性能低于其它数据类型。 |
| 79 | - 当不使用接口返回值时,float类型下接口的性能与其它数据类型一致。 | 79 | - 当不使用接口返回值时,float类型下接口的性能与其它数据类型一致。 |
| @@ -90,7 +90,7 @@ __aicore__ inline int32_t asc_atomic_max(__gm__ int32_t* address, | |||
| 90 | 90 | ||
| 91 | ## 调用示例 | 91 | ## 调用示例 |
| 92 | 92 | ||
| 93 | -将代码保存为`example.asc`后,可通过`bisheng`命令编译运行,其中`--npu-arch`参数需根据实际产品型号指定对应的NPU架构,具体产品与NPU架构的映射关系请参考[\_\_NPU\_ARCH\_\_](../../../../guide/programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)。 | 93 | +将代码保存为`example.asc`后,可通过`bisheng`命令编译运行,其中`--npu-arch`参数需根据实际产品型号指定对应的NPU架构,具体产品与NPU架构的映射关系请参考[\_\_NPU\_ARCH\_\_](../../../../../guide/programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)。 |
| 94 | 94 | ||
| 95 | <!-- npu="950" id8 --> | 95 | <!-- npu="950" id8 --> |
| 96 | 以Ascend 950PR/Ascend 950DT产品(对应NPU架构为`dav-3510`)为例,编译运行命令如下: | 96 | 以Ascend 950PR/Ascend 950DT产品(对应NPU架构为`dav-3510`)为例,编译运行命令如下: |
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_atomic_min.md→docs/zh/api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_min.md+4-4
| @@ -70,10 +70,10 @@ __aicore__ inline int32_t asc_atomic_min(__gm__ int32_t* address, | |||
| 70 | 70 | ||
| 71 | - `address`必须落在Global Memory地址空间。 | 71 | - `address`必须落在Global Memory地址空间。 |
| 72 | - `address`需按`sizeof(dtype)`字节对齐。 | 72 | - `address`需按`sizeof(dtype)`字节对齐。 |
| 73 | -- 本接口不受[asc_set_atomic_min](../simd_atomic/asc_set_atomic_min.md)等数据搬运随路原子设置影响,也不会影响后续搬运指令。 | 73 | +- 本接口不受[asc_set_atomic_min](../datamove_atomic/asc_set_atomic_min.md)等数据搬运随路原子设置影响,也不会影响后续搬运指令。 |
| 74 | - 对同一`address`的并发调用以原子方式完成“读取、比较、写回”,不会丢失更新;最终写入结果为各参与值中的最小值。 | 74 | - 对同一`address`的并发调用以原子方式完成“读取、比较、写回”,不会丢失更新;最终写入结果为各参与值中的最小值。 |
| 75 | -- 本接口运行在标量流水(`PIPE_S`)上,同一标量流水内的数据依赖由指令执行顺序保证。若本接口与`PIPE_MTE2`或`PIPE_MTE3`上的数据搬运指令访问同一GM地址,且执行顺序影响结果,编译器无法自动完成跨流水同步,调用方需按实际依赖插入[asc_sync_pipe](../sync/asc_sync_pipe.md),或配合使用[asc_sync_notify](../sync/asc_sync_notify.md)与[asc_sync_wait](../sync/asc_sync_wait.md)保证执行顺序。 | 75 | +- 本接口运行在标量流水(`PIPE_S`)上,同一标量流水内的数据依赖由指令执行顺序保证。若本接口与`PIPE_MTE2`或`PIPE_MTE3`上的数据搬运指令访问同一GM地址,且执行顺序影响结果,编译器无法自动完成跨流水同步,调用方需按实际依赖插入[asc_sync_pipe](../../sync/asc_sync_pipe.md),或配合使用[asc_sync_notify](../../sync/asc_sync_notify.md)与[asc_sync_wait](../../sync/asc_sync_wait.md)保证执行顺序。 |
| 76 | -- 本接口访问GM时绕过DCache,不维护缓存一致性。若其他核或其他通路通过缓存访问同一GM地址,调用方需使用[asc_dcci](../cache_ctrl/asc_dcci.md)清理或失效对应Cache Line,并使用[asc_sync_data_barrier](../sync/asc_sync_data_barrier.md)保证相关访存操作的执行顺序和数据可见性。详情可参考[Scalar原子操作与DCache一致性](../../../../guide/programming_guide/advanced_programming/memory_model/cache_coherence.md#scalar原子操作与dcache一致性)。 | 76 | +- 本接口访问GM时绕过DCache,不维护缓存一致性。若其他核或其他通路通过缓存访问同一GM地址,调用方需使用[asc_dcci](../../cache_ctrl/asc_dcci.md)清理或失效对应Cache Line,并使用[asc_sync_data_barrier](../../sync/asc_sync_data_barrier.md)保证相关访存操作的执行顺序和数据可见性。详情可参考[Scalar原子操作与DCache一致性](../../../../../guide/programming_guide/advanced_programming/memory_model/cache_coherence.md#scalar原子操作与dcache一致性)。 |
| 77 | - float类型下接口的性能与接口返回值是否被使用有关,具体情况如下: | 77 | - float类型下接口的性能与接口返回值是否被使用有关,具体情况如下: |
| 78 | - 当使用接口返回值时,接口采用软仿实现,float类型下接口的性能低于其它数据类型。 | 78 | - 当使用接口返回值时,接口采用软仿实现,float类型下接口的性能低于其它数据类型。 |
| 79 | - 当不使用接口返回值时,float类型下接口的性能与其它数据类型一致。 | 79 | - 当不使用接口返回值时,float类型下接口的性能与其它数据类型一致。 |
| @@ -90,7 +90,7 @@ __aicore__ inline int32_t asc_atomic_min(__gm__ int32_t* address, | |||
| 90 | 90 | ||
| 91 | ## 调用示例 | 91 | ## 调用示例 |
| 92 | 92 | ||
| 93 | -将代码保存为`example.asc`后,可通过`bisheng`命令编译运行,其中`--npu-arch`参数需根据实际产品型号指定对应的NPU架构,具体产品与NPU架构的映射关系请参考[\_\_NPU\_ARCH\_\_](../../../../guide/programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)。 | 93 | +将代码保存为`example.asc`后,可通过`bisheng`命令编译运行,其中`--npu-arch`参数需根据实际产品型号指定对应的NPU架构,具体产品与NPU架构的映射关系请参考[\_\_NPU\_ARCH\_\_](../../../../../guide/programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)。 |
| 94 | 94 | ||
| 95 | <!-- npu="950" id8 --> | 95 | <!-- npu="950" id8 --> |
| 96 | 以Ascend 950PR/Ascend 950DT产品(对应NPU架构为`dav-3510`)为例,编译运行命令如下: | 96 | 以Ascend 950PR/Ascend 950DT产品(对应NPU架构为`dav-3510`)为例,编译运行命令如下: |
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_atomic_or.md→docs/zh/api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_or.md+3-3
| @@ -71,12 +71,12 @@ __aicore__ inline int32_t asc_atomic_or(__gm__ int32_t* address, | |||
| 71 | - `address`必须落在Global Memory地址空间。 | 71 | - `address`必须落在Global Memory地址空间。 |
| 72 | - `address`需按`sizeof(dtype)`字节对齐。 | 72 | - `address`需按`sizeof(dtype)`字节对齐。 |
| 73 | - 对同一`address`的并发调用以原子方式完成“读取、按位或、写回”,不会丢失更新;最终写入结果为各参与值的按位或结果。 | 73 | - 对同一`address`的并发调用以原子方式完成“读取、按位或、写回”,不会丢失更新;最终写入结果为各参与值的按位或结果。 |
| 74 | -- 本接口运行在标量流水(`PIPE_S`)上,同一标量流水内的数据依赖由指令执行顺序保证。若本接口与`PIPE_MTE2`或`PIPE_MTE3`上的数据搬运指令访问同一GM地址,且执行顺序影响结果,编译器无法自动完成跨流水同步,调用方需按实际依赖插入[asc_sync_pipe](../sync/asc_sync_pipe.md),或配合使用[asc_sync_notify](../sync/asc_sync_notify.md)与[asc_sync_wait](../sync/asc_sync_wait.md)保证执行顺序。 | 74 | +- 本接口运行在标量流水(`PIPE_S`)上,同一标量流水内的数据依赖由指令执行顺序保证。若本接口与`PIPE_MTE2`或`PIPE_MTE3`上的数据搬运指令访问同一GM地址,且执行顺序影响结果,编译器无法自动完成跨流水同步,调用方需按实际依赖插入[asc_sync_pipe](../../sync/asc_sync_pipe.md),或配合使用[asc_sync_notify](../../sync/asc_sync_notify.md)与[asc_sync_wait](../../sync/asc_sync_wait.md)保证执行顺序。 |
| 75 | -- 本接口访问GM时绕过DCache,不维护缓存一致性。若其他核或其他通路通过缓存访问同一GM地址,调用方需使用[asc_dcci](../cache_ctrl/asc_dcci.md)清理或失效对应Cache Line,并使用[asc_sync_data_barrier](../sync/asc_sync_data_barrier.md)保证相关访存操作的执行顺序和数据可见性。详情可参考[Scalar原子操作与DCache一致性](../../../../guide/programming_guide/advanced_programming/memory_model/cache_coherence.md#scalar原子操作与dcache一致性)。 | 75 | +- 本接口访问GM时绕过DCache,不维护缓存一致性。若其他核或其他通路通过缓存访问同一GM地址,调用方需使用[asc_dcci](../../cache_ctrl/asc_dcci.md)清理或失效对应Cache Line,并使用[asc_sync_data_barrier](../../sync/asc_sync_data_barrier.md)保证相关访存操作的执行顺序和数据可见性。详情可参考[Scalar原子操作与DCache一致性](../../../../../guide/programming_guide/advanced_programming/memory_model/cache_coherence.md#scalar原子操作与dcache一致性)。 |
| 76 | 76 | ||
| 77 | ## 调用示例 | 77 | ## 调用示例 |
| 78 | 78 | ||
| 79 | -将代码保存为`example.asc`后,可通过`bisheng`命令编译运行,其中`--npu-arch`参数需根据实际产品型号指定对应的NPU架构,具体产品与NPU架构的映射关系请参考[\_\_NPU\_ARCH\_\_](../../../../guide/programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)。 | 79 | +将代码保存为`example.asc`后,可通过`bisheng`命令编译运行,其中`--npu-arch`参数需根据实际产品型号指定对应的NPU架构,具体产品与NPU架构的映射关系请参考[\_\_NPU\_ARCH\_\_](../../../../../guide/programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)。 |
| 80 | 80 | ||
| 81 | <!-- npu="950" id8 --> | 81 | <!-- npu="950" id8 --> |
| 82 | 以Ascend 950PR/Ascend 950DT产品(对应NPU架构为`dav-3510`)为例,编译运行命令如下: | 82 | 以Ascend 950PR/Ascend 950DT产品(对应NPU架构为`dav-3510`)为例,编译运行命令如下: |
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_atomic_sub.md→docs/zh/api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_sub.md+3-3
| @@ -71,12 +71,12 @@ __aicore__ inline int32_t asc_atomic_sub(__gm__ int32_t* address, | |||
| 71 | - `address`必须落在Global Memory地址空间。 | 71 | - `address`必须落在Global Memory地址空间。 |
| 72 | - `address`需按`sizeof(dtype)`字节对齐。 | 72 | - `address`需按`sizeof(dtype)`字节对齐。 |
| 73 | - 对同一`address`的并发调用以原子方式完成“读取、计算、写回”,不会丢失更新。`dtype`为`float`时,最终结果可能因执行顺序不同而存在差异;如需确定性计算结果,需要通过同步指令控制执行顺序。 | 73 | - 对同一`address`的并发调用以原子方式完成“读取、计算、写回”,不会丢失更新。`dtype`为`float`时,最终结果可能因执行顺序不同而存在差异;如需确定性计算结果,需要通过同步指令控制执行顺序。 |
| 74 | -- 本接口运行在标量流水(`PIPE_S`)上,同一标量流水内的数据依赖由指令执行顺序保证。若本接口与`PIPE_MTE2`或`PIPE_MTE3`上的数据搬运指令访问同一GM地址,且执行顺序影响结果,编译器无法自动完成跨流水同步,调用方需按实际依赖插入[asc_sync_pipe](../sync/asc_sync_pipe.md),或配合使用[asc_sync_notify](../sync/asc_sync_notify.md)与[asc_sync_wait](../sync/asc_sync_wait.md)保证执行顺序。 | 74 | +- 本接口运行在标量流水(`PIPE_S`)上,同一标量流水内的数据依赖由指令执行顺序保证。若本接口与`PIPE_MTE2`或`PIPE_MTE3`上的数据搬运指令访问同一GM地址,且执行顺序影响结果,编译器无法自动完成跨流水同步,调用方需按实际依赖插入[asc_sync_pipe](../../sync/asc_sync_pipe.md),或配合使用[asc_sync_notify](../../sync/asc_sync_notify.md)与[asc_sync_wait](../../sync/asc_sync_wait.md)保证执行顺序。 |
| 75 | -- 本接口访问GM时绕过DCache,不维护缓存一致性。若其他核或其他通路通过缓存访问同一GM地址,调用方需使用[asc_dcci](../cache_ctrl/asc_dcci.md)清理或失效对应Cache Line,并使用[asc_sync_data_barrier](../sync/asc_sync_data_barrier.md)保证相关访存操作的执行顺序和数据可见性。详情可参考[Scalar原子操作与DCache一致性](../../../../guide/programming_guide/advanced_programming/memory_model/cache_coherence.md#scalar原子操作与dcache一致性)。 | 75 | +- 本接口访问GM时绕过DCache,不维护缓存一致性。若其他核或其他通路通过缓存访问同一GM地址,调用方需使用[asc_dcci](../../cache_ctrl/asc_dcci.md)清理或失效对应Cache Line,并使用[asc_sync_data_barrier](../../sync/asc_sync_data_barrier.md)保证相关访存操作的执行顺序和数据可见性。详情可参考[Scalar原子操作与DCache一致性](../../../../../guide/programming_guide/advanced_programming/memory_model/cache_coherence.md#scalar原子操作与dcache一致性)。 |
| 76 | 76 | ||
| 77 | ## 调用示例 | 77 | ## 调用示例 |
| 78 | 78 | ||
| 79 | -将代码保存为`example.asc`后,可通过`bisheng`命令编译运行,其中`--npu-arch`参数需根据实际产品型号指定对应的NPU架构,具体产品与NPU架构的映射关系请参考[\_\_NPU\_ARCH\_\_](../../../../guide/programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)。 | 79 | +将代码保存为`example.asc`后,可通过`bisheng`命令编译运行,其中`--npu-arch`参数需根据实际产品型号指定对应的NPU架构,具体产品与NPU架构的映射关系请参考[\_\_NPU\_ARCH\_\_](../../../../../guide/programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)。 |
| 80 | 80 | ||
| 81 | <!-- npu="950" id8 --> | 81 | <!-- npu="950" id8 --> |
| 82 | 以Ascend 950PR/Ascend 950DT产品(对应NPU架构为`dav-3510`)为例,编译运行命令如下: | 82 | 以Ascend 950PR/Ascend 950DT产品(对应NPU架构为`dav-3510`)为例,编译运行命令如下: |
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_atomic_xor.md→docs/zh/api/SIMD-API/c_api/atomic/scalar_atomic/asc_atomic_xor.md+3-3
| @@ -71,12 +71,12 @@ __aicore__ inline int32_t asc_atomic_xor(__gm__ int32_t* address, | |||
| 71 | - `address`必须落在Global Memory地址空间。 | 71 | - `address`必须落在Global Memory地址空间。 |
| 72 | - `address`需按`sizeof(dtype)`字节对齐。 | 72 | - `address`需按`sizeof(dtype)`字节对齐。 |
| 73 | - 对同一`address`的并发调用以原子方式完成“读取、计算、写回”,不会丢失更新;最终写入结果为各参与值的按位异或结果。 | 73 | - 对同一`address`的并发调用以原子方式完成“读取、计算、写回”,不会丢失更新;最终写入结果为各参与值的按位异或结果。 |
| 74 | -- 本接口运行在标量流水(`PIPE_S`)上,同一标量流水内的数据依赖由指令执行顺序保证。若本接口与`PIPE_MTE2`或`PIPE_MTE3`上的数据搬运指令访问同一GM地址,且执行顺序影响结果,编译器无法自动完成跨流水同步,调用方需按实际依赖插入[asc_sync_pipe](../sync/asc_sync_pipe.md),或配合使用[asc_sync_notify](../sync/asc_sync_notify.md)与[asc_sync_wait](../sync/asc_sync_wait.md)保证执行顺序。 | 74 | +- 本接口运行在标量流水(`PIPE_S`)上,同一标量流水内的数据依赖由指令执行顺序保证。若本接口与`PIPE_MTE2`或`PIPE_MTE3`上的数据搬运指令访问同一GM地址,且执行顺序影响结果,编译器无法自动完成跨流水同步,调用方需按实际依赖插入[asc_sync_pipe](../../sync/asc_sync_pipe.md),或配合使用[asc_sync_notify](../../sync/asc_sync_notify.md)与[asc_sync_wait](../../sync/asc_sync_wait.md)保证执行顺序。 |
| 75 | -- 本接口访问GM时绕过DCache,不维护缓存一致性。若其他核或其他通路通过缓存访问同一GM地址,调用方需使用[asc_dcci](../cache_ctrl/asc_dcci.md)清理或失效对应Cache Line,并使用[asc_sync_data_barrier](../sync/asc_sync_data_barrier.md)保证相关访存操作的执行顺序和数据可见性。详情可参考[Scalar原子操作与DCache一致性](../../../../guide/programming_guide/advanced_programming/memory_model/cache_coherence.md#scalar原子操作与dcache一致性)。 | 75 | +- 本接口访问GM时绕过DCache,不维护缓存一致性。若其他核或其他通路通过缓存访问同一GM地址,调用方需使用[asc_dcci](../../cache_ctrl/asc_dcci.md)清理或失效对应Cache Line,并使用[asc_sync_data_barrier](../../sync/asc_sync_data_barrier.md)保证相关访存操作的执行顺序和数据可见性。详情可参考[Scalar原子操作与DCache一致性](../../../../../guide/programming_guide/advanced_programming/memory_model/cache_coherence.md#scalar原子操作与dcache一致性)。 |
| 76 | 76 | ||
| 77 | ## 调用示例 | 77 | ## 调用示例 |
| 78 | 78 | ||
| 79 | -将代码保存为`example.asc`后,可通过`bisheng`命令编译运行,其中`--npu-arch`参数需根据实际产品型号指定对应的NPU架构,具体产品与NPU架构的映射关系请参考[\_\_NPU\_ARCH\_\_](../../../../guide/programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)。 | 79 | +将代码保存为`example.asc`后,可通过`bisheng`命令编译运行,其中`--npu-arch`参数需根据实际产品型号指定对应的NPU架构,具体产品与NPU架构的映射关系请参考[\_\_NPU\_ARCH\_\_](../../../../../guide/programming_guide/language_extension/simd_builtin_keywords.md#npu-arch)。 |
| 80 | 80 | ||
| 81 | <!-- npu="950" id8 --> | 81 | <!-- npu="950" id8 --> |
| 82 | 以Ascend 950PR/Ascend 950DT产品(对应NPU架构为`dav-3510`)为例,编译运行命令如下: | 82 | 以Ascend 950PR/Ascend 950DT产品(对应NPU架构为`dav-3510`)为例,编译运行命令如下: |
Rdocs/zh/api/SIMD-API/c_api/simd_atomic/asc_get_store_atomic_config.md→docs/zh/api/SIMD-API/c_api/atomic/scalar_atomic/asc_get_store_atomic_config.md+4-4
| @@ -26,10 +26,10 @@ | |||
| 26 | 26 | ||
| 27 | ## 功能说明 | 27 | ## 功能说明 |
| 28 | 28 | ||
| 29 | -获取原子操作启用位与原子操作类型的值,可用于校验[asc_set_store_atomic_config_v1](./asc_set_store_atomic_config_v1.md)和[asc_set_store_atomic_config_v2(废弃)](./asc_set_store_atomic_config_v2_deprecated.md)设置的原子操作启用位和原子操作类型的值是否符合预期。 | 29 | +获取原子操作启用位与原子操作类型的值,可用于校验[asc_set_store_atomic_config_v1](asc_set_store_atomic_config_v1.md)和[asc_set_store_atomic_config_v2(废弃)](asc_set_store_atomic_config_v2_deprecated.md)设置的原子操作启用位和原子操作类型的值是否符合预期。 |
| 30 | 30 | ||
| 31 | <!-- npu="950" id8 --> | 31 | <!-- npu="950" id8 --> |
| 32 | -**Ascend 950PR/Ascend 950DT产品上该接口已废弃。原子加操作可以直接使用[asc_atomic_add](../scalar_compute/asc_atomic_add.md)实现。无需再对原子操作启用位和原子操作类型的值进行配置和校验。** | 32 | +**Ascend 950PR/Ascend 950DT产品上该接口已废弃。原子加操作可以直接使用[asc_atomic_add](asc_atomic_add.md)实现。无需再对原子操作启用位和原子操作类型的值进行配置和校验。** |
| 33 | <!-- end id8 --> | 33 | <!-- end id8 --> |
| 34 | 34 | ||
| 35 | ## 函数原型 | 35 | ## 函数原型 |
| @@ -44,7 +44,7 @@ __aicore__ inline void asc_get_store_atomic_config(asc_store_atomic_config& conf | |||
| 44 | 44 | ||
| 45 | | 参数名 | 输入/输出 | 描述 | | 45 | | 参数名 | 输入/输出 | 描述 | |
| 46 | | :----- | :------- | :------- | | 46 | | :----- | :------- | :------- | |
| 47 | -| config | 输出 | 用于获取原子操作启用位和原子操作类型的值,详细说明请参考[asc_store_atomic_config](../struct/asc_store_atomic_config.md)。 | | 47 | +| config | 输出 | 用于获取原子操作启用位和原子操作类型的值,详细说明请参考[asc_store_atomic_config](../../defs/union/asc_store_atomic_config.md)。 | |
| 48 | 48 | ||
| 49 | ## 返回值说明 | 49 | ## 返回值说明 |
| 50 | 50 | ||
| @@ -56,7 +56,7 @@ PIPE_S | |||
| 56 | 56 | ||
| 57 | ## 约束说明 | 57 | ## 约束说明 |
| 58 | 58 | ||
| 59 | -需配合[asc_set_store_atomic_config_v1](./asc_set_store_atomic_config_v1.md)和[asc_set_store_atomic_config_v2(废弃)](./asc_set_store_atomic_config_v2_deprecated.md)接口使用,该接口用于设置原子操作启用位和原子操作类型的值。 | 59 | +需配合[asc_set_store_atomic_config_v1](asc_set_store_atomic_config_v1.md)和[asc_set_store_atomic_config_v2(废弃)](asc_set_store_atomic_config_v2_deprecated.md)接口使用,该接口用于设置原子操作启用位和原子操作类型的值。 |
| 60 | 60 | ||
| 61 | ## 调用示例 | 61 | ## 调用示例 |
| 62 | 62 | ||
Rdocs/zh/api/SIMD-API/c_api/simd_atomic/asc_set_store_atomic_config_v1.md→docs/zh/api/SIMD-API/c_api/atomic/scalar_atomic/asc_set_store_atomic_config_v1.md+1-1
| @@ -53,7 +53,7 @@ PIPE_S | |||
| 53 | 53 | ||
| 54 | ## 约束说明 | 54 | ## 约束说明 |
| 55 | 55 | ||
| 56 | -- 使用完成后,建议通过[asc_set_atomic_none](./asc_set_atomic_none.md)清空原子操作的状态,以免影响后续相关指令功能。 | 56 | +- 使用完成后,建议通过[asc_set_atomic_none](../datamove_atomic/asc_set_atomic_none.md)清空原子操作的状态,以免影响后续相关指令功能。 |
| 57 | - 该指令执行前不会对GM的数据做清零操作,开发者需在需要时手动添加清零操作。 | 57 | - 该指令执行前不会对GM的数据做清零操作,开发者需在需要时手动添加清零操作。 |
| 58 | 58 | ||
| 59 | ## 调用示例 | 59 | ## 调用示例 |
Rdocs/zh/api/SIMD-API/c_api/simd_atomic/asc_set_store_atomic_config_v2_deprecated.md→docs/zh/api/SIMD-API/c_api/atomic/scalar_atomic/asc_set_store_atomic_config_v2_deprecated.md+1-1
| @@ -26,7 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | ## 功能说明 | 27 | ## 功能说明 |
| 28 | 28 | ||
| 29 | -**该接口已废弃。原子加操作请使用[asc_atomic_add](../scalar_compute/asc_atomic_add.md)实现。** | 29 | +**该接口已废弃。原子加操作请使用[asc_atomic_add](asc_atomic_add.md)实现。** |
| 30 | 30 | ||
| 31 | 设置原子操作启用位与原子操作类型的值。 | 31 | 设置原子操作启用位与原子操作类型的值。 |
| 32 | 32 | ||
| @@ -0,0 +1,16 @@ | |||
| 1 | +# 标量原子操作 | ||
| 2 | + | ||
| 3 | +- **[asc_atomic_add](asc_atomic_add.md)** | ||
| 4 | +- **[asc_atomic_and](asc_atomic_and.md)** | ||
| 5 | +- **[asc_atomic_cas](asc_atomic_cas.md)** | ||
| 6 | +- **[asc_atomic_dec](asc_atomic_dec.md)** | ||
| 7 | +- **[asc_atomic_exch](asc_atomic_exch.md)** | ||
| 8 | +- **[asc_atomic_inc](asc_atomic_inc.md)** | ||
| 9 | +- **[asc_atomic_max](asc_atomic_max.md)** | ||
| 10 | +- **[asc_atomic_min](asc_atomic_min.md)** | ||
| 11 | +- **[asc_atomic_or](asc_atomic_or.md)** | ||
| 12 | +- **[asc_atomic_sub](asc_atomic_sub.md)** | ||
| 13 | +- **[asc_atomic_xor](asc_atomic_xor.md)** | ||
| 14 | +- **[asc_get_store_atomic_config](asc_get_store_atomic_config.md)** | ||
| 15 | +- **[asc_set_store_atomic_config_v1](asc_set_store_atomic_config_v1.md)** | ||
| 16 | +- **[asc_set_store_atomic_config_v2(废弃)](asc_set_store_atomic_config_v2_deprecated.md)** | ||
| @@ -32,14 +32,14 @@ | |||
| 32 | 32 | ||
| 33 | 如上图所示: | 33 | 如上图所示: |
| 34 | 34 | ||
| 35 | -DMA搬运单元读写Global Memory,数据通过[asc_copy_ub2gm](../vector_data_move/asc_copy_ub2gm/asc_copy_ub2gm.md)和[asc_copy_gm2ub](../vector_data_move/asc_copy_gm2ub/asc_copy_gm2ub.md)等接口在Unified Buffer(UB)等Local Memory和Global Memory间交互,没有Cache一致性问题; | 35 | +DMA搬运单元读写Global Memory,数据通过[asc_copy_ub2gm](../vector_datamove/asc_copy_ub2gm/asc_copy_ub2gm.md)和[asc_copy_gm2ub](../vector_datamove/asc_copy_gm2ub/asc_copy_gm2ub.md)等接口在Unified Buffer(UB)等Local Memory和Global Memory间交互,没有Cache一致性问题; |
| 36 | Scalar单元访问Global Memory,首先会访问每个核内的Data Cache,因此存在Data Cache与Global Memory的Cache一致性问题。 | 36 | Scalar单元访问Global Memory,首先会访问每个核内的Data Cache,因此存在Data Cache与Global Memory的Cache一致性问题。 |
| 37 | 该接口用来刷新Cache,保证Cache的一致性,使用场景如下: | 37 | 该接口用来刷新Cache,保证Cache的一致性,使用场景如下: |
| 38 | 38 | ||
| 39 | 读取Global Memory的数据,但该数据可能在外部被其余核修改,此时需要使用asc_dcci接口,直接访问Global Memory,获取最新数据; | 39 | 读取Global Memory的数据,但该数据可能在外部被其余核修改,此时需要使用asc_dcci接口,直接访问Global Memory,获取最新数据; |
| 40 | 用户通过Scalar单元写Global Memory的数据,希望立刻写出,也需要使用asc_dcci接口。 | 40 | 用户通过Scalar单元写Global Memory的数据,希望立刻写出,也需要使用asc_dcci接口。 |
| 41 | 41 | ||
| 42 | -Scalar单元访问UB数据时,该接口需配合[asc_set_ctrl()](../sys_var/asc_set_ctrl.md)接口使用,将CTRL[49]设置为1'b1,开启datacache模式。 | 42 | +Scalar单元访问UB数据时,该接口需配合[asc_set_ctrl()](../spr/asc_set_ctrl.md)接口使用,将CTRL[49]设置为1'b1,开启datacache模式。 |
| 43 | 43 | ||
| 44 | <!-- npu="950" id8 --> | 44 | <!-- npu="950" id8 --> |
| 45 | 针对Ascend 950PR/Ascend 950DT,不支持asc_dcci_entire_ub接口。 | 45 | 针对Ascend 950PR/Ascend 950DT,不支持asc_dcci_entire_ub接口。 |
| @@ -28,7 +28,7 @@ | |||
| 28 | 28 | ||
| 29 | 获取ICache的Preload的状态。 | 29 | 获取ICache的Preload的状态。 |
| 30 | 30 | ||
| 31 | -该接口为调试接口,在[asc_icache_preload](./asc_icache_preload.md)后调用,用于获取ICache的PreLoad的状态。当返回值为0时,说明ICache的PreLoad已完成;当返回值为1时,说明ICache的PreLoad未完成。 | 31 | +该接口为调试接口,在[asc_icache_preload](asc_icache_preload.md)后调用,用于获取ICache的PreLoad的状态。当返回值为0时,说明ICache的PreLoad已完成;当返回值为1时,说明ICache的PreLoad未完成。 |
| 32 | 32 | ||
| 33 | ## 函数原型 | 33 | ## 函数原型 |
| 34 | 34 | ||
Rdocs/zh/api/SIMD-API/c_api/cache_ctrl/cache_control.md→docs/zh/api/SIMD-API/c_api/cache_ctrl/cache_ctrl.md+0-4
| @@ -1,11 +1,7 @@ | |||
| 1 | # 缓存控制 | 1 | # 缓存控制 |
| 2 | 2 | ||
| 3 | - **[asc_datacache_preload](asc_datacache_preload.md)** | 3 | - **[asc_datacache_preload](asc_datacache_preload.md)** |
| 4 | - | ||
| 5 | - **[asc_dcci](asc_dcci.md)** | 4 | - **[asc_dcci](asc_dcci.md)** |
| 6 | - | ||
| 7 | - **[asc_dci](asc_dci.md)** | 5 | - **[asc_dci](asc_dci.md)** |
| 8 | - | ||
| 9 | - **[asc_get_icache_preload_status](asc_get_icache_preload_status.md)** | 6 | - **[asc_get_icache_preload_status](asc_get_icache_preload_status.md)** |
| 10 | - | ||
| 11 | - **[asc_icache_preload](asc_icache_preload.md)** | 7 | - **[asc_icache_preload](asc_icache_preload.md)** |
| @@ -26,7 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | ## 功能说明 | 27 | ## 功能说明 |
| 28 | 28 | ||
| 29 | -用于设置Mmad计算开启FP8模式。该接口会关闭HiF8模式(与[asc_enable_hif8](./asc_enable_hif8.md)相反),开启该模式后L0A Buffer/L0B Buffer中的FP8数据在参与Mmad计算之前不会被转化为hifloat8_t类型数据。 | 29 | +用于设置Mmad计算开启FP8模式。该接口会关闭HiF8模式(与[asc_enable_hif8](asc_enable_hif8.md)相反),开启该模式后L0A Buffer/L0B Buffer中的FP8数据在参与Mmad计算之前不会被转化为hifloat8_t类型数据。 |
| 30 | 30 | ||
| 31 | ## 函数原型 | 31 | ## 函数原型 |
| 32 | 32 | ||
| @@ -44,8 +44,8 @@ PIPE_S | |||
| 44 | 44 | ||
| 45 | ## 约束说明 | 45 | ## 约束说明 |
| 46 | 46 | ||
| 47 | -- 与[asc_enable_hif8](./asc_enable_hif8.md)相反,二者不同时生效。 | 47 | +- 与[asc_enable_hif8](asc_enable_hif8.md)相反,二者不同时生效。 |
| 48 | -- 需在[asc_mmad](./asc_mmad.md)执行前调用。 | 48 | +- 需在[asc_mmad](asc_mmad.md)执行前调用。 |
| 49 | 49 | ||
| 50 | ## 调用示例 | 50 | ## 调用示例 |
| 51 | 51 | ||
| @@ -105,8 +105,8 @@ PIPE_S | |||
| 105 | 105 | ||
| 106 | ## 约束说明 | 106 | ## 约束说明 |
| 107 | 107 | ||
| 108 | -- 本接口需在矩阵乘加指令([asc_mmad](./asc_mmad.md))执行前调用,以此来确保模式配置在矩阵乘加计算过程中生效。 | 108 | +- 本接口需在矩阵乘加指令([asc_mmad](asc_mmad.md))执行前调用,以此来确保模式配置在矩阵乘加计算过程中生效。 |
| 109 | -- HF32模式启用后会持续生效,不会自动关闭。后续矩阵乘加指令若不显式重新配置,将沿用当前模式。如需关闭HF32模式,请重新调用[asc_set_fp32_mode](./asc_set_fp32_mode.md)接口。 | 109 | +- HF32模式启用后会持续生效,不会自动关闭。后续矩阵乘加指令若不显式重新配置,将沿用当前模式。如需关闭HF32模式,请重新调用[asc_set_fp32_mode](asc_set_fp32_mode.md)接口。 |
| 110 | - HF32模式启用后,FP32转换为HF32格式的舍入模式由配套的[asc_set_hf32_round_mode](asc_set_hf32_round_mode.md)接口配置,须在本接口之后调用该配套接口配置舍入模式,否则舍入模式沿用上次配置或默认值。 | 110 | - HF32模式启用后,FP32转换为HF32格式的舍入模式由配套的[asc_set_hf32_round_mode](asc_set_hf32_round_mode.md)接口配置,须在本接口之后调用该配套接口配置舍入模式,否则舍入模式沿用上次配置或默认值。 |
| 111 | - HF32模式仅对输入矩阵数据类型为`float`的矩阵乘加运算场景生效。 | 111 | - HF32模式仅对输入矩阵数据类型为`float`的矩阵乘加运算场景生效。 |
| 112 | 112 | ||
| @@ -26,7 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | ## 功能说明 | 27 | ## 功能说明 |
| 28 | 28 | ||
| 29 | -本接口用于设置HF32模式舍入方式,使用该接口前需要先使用[asc_enable_hf32](./asc_enable_hf32.md)开启HF32模式。 | 29 | +本接口用于设置HF32模式舍入方式,使用该接口前需要先使用[asc_enable_hf32](asc_enable_hf32.md)开启HF32模式。 |
| 30 | 30 | ||
| 31 | ## 函数原型 | 31 | ## 函数原型 |
| 32 | 32 | ||
| @@ -52,7 +52,7 @@ PIPE_S | |||
| 52 | 52 | ||
| 53 | ## 约束说明 | 53 | ## 约束说明 |
| 54 | 54 | ||
| 55 | -- 本接口需在矩阵乘加指令([asc_mmad](./asc_mmad.md))执行前调用,以此来确保模式配置在矩阵乘加计算过程中生效。 | 55 | +- 本接口需在矩阵乘加指令([asc_mmad](asc_mmad.md))执行前调用,以此来确保模式配置在矩阵乘加计算过程中生效。 |
| 56 | - 本接口配置的舍入模式仅在HF32模式开启期间生效,需先开启HF32模式再调用本接口,否则舍入模式配置不产生实际作用。 | 56 | - 本接口配置的舍入模式仅在HF32模式开启期间生效,需先开启HF32模式再调用本接口,否则舍入模式配置不产生实际作用。 |
| 57 | - 舍入模式配置后会持续生效,HF32模式关闭后再次开启仍将沿用上次的舍入模式配置,如需切换舍入模式,请重新调用本接口。 | 57 | - 舍入模式配置后会持续生效,HF32模式关闭后再次开启仍将沿用上次的舍入模式配置,如需切换舍入模式,请重新调用本接口。 |
| 58 | 58 | ||
| @@ -228,12 +228,12 @@ PIPE_M | |||
| 228 | - UnitFlag约束说明: | 228 | - UnitFlag约束说明: |
| 229 | 229 | ||
| 230 | - 开启UnitFlag时,矩阵乘加指令与对应矩阵搬出指令需同时开启UnitFlag。当希望同一块L0C Buffer内存空间能持续只被多条矩阵乘加指令或多条矩阵搬出指令操作时,需将前n-1条指令的unitFlag值设置为2,维持被操作内存空间的持续占用状态,最后一条指令设置为3,解除被占用状态。 | 230 | - 开启UnitFlag时,矩阵乘加指令与对应矩阵搬出指令需同时开启UnitFlag。当希望同一块L0C Buffer内存空间能持续只被多条矩阵乘加指令或多条矩阵搬出指令操作时,需将前n-1条指令的unitFlag值设置为2,维持被操作内存空间的持续占用状态,最后一条指令设置为3,解除被占用状态。 |
| 231 | - - 开启UnitFlag时,矩阵计算方向需与矩阵搬出读取顺序保持一致。矩阵搬出指令开启Nz2ND随路格式转换,或未进行随路格式转换但开启B8/B4量化并触发Channel Merge功能时,调用[asc_set_mmad_direction_n](./asc_set_mmad_direction_n.md);其他场景调用[asc_set_mmad_direction_m](./asc_set_mmad_direction_m.md)。 | 231 | + - 开启UnitFlag时,矩阵计算方向需与矩阵搬出读取顺序保持一致。矩阵搬出指令开启Nz2ND随路格式转换,或未进行随路格式转换但开启B8/B4量化并触发Channel Merge功能时,调用[asc_set_mmad_direction_n](asc_set_mmad_direction_n.md);其他场景调用[asc_set_mmad_direction_m](asc_set_mmad_direction_m.md)。 |
| 232 | - - 开启UnitFlag时,建议矩阵乘加的计算数据量与矩阵搬出的数据量保持一致。两者不一致可能导致执行异常。需要清除UnitFlag产生的残留状态时,可调用[asc_set_l0c2gm_config](./asc_set_l0c2gm_config.md),并将`enable_unit_flag`设置为true,将L0C Buffer中所有内存块的单元标志位设置为0并关闭UnitFlag。 | 232 | + - 开启UnitFlag时,建议矩阵乘加的计算数据量与矩阵搬出的数据量保持一致。两者不一致可能导致执行异常。需要清除UnitFlag产生的残留状态时,可调用[asc_set_l0c2gm_config](../cube_datamove/asc_set_l0c2gm_config.md),并将`enable_unit_flag`设置为true,将L0C Buffer中所有内存块的单元标志位设置为0并关闭UnitFlag。 |
| 233 | 233 | ||
| 234 | - 特殊值/边界值约束说明: | 234 | - 特殊值/边界值约束说明: |
| 235 | 235 | ||
| 236 | - 浮点类型的输入或输出包含inf/nan时,可通过[asc_set_ctrl](../sys_var/asc_set_ctrl.md)接口配置CTRL寄存器的CTRL\[48\]比特位控制计算时的模式: | 236 | + 浮点类型的输入或输出包含inf/nan时,可通过[asc_set_ctrl](../spr/asc_set_ctrl.md)接口配置CTRL寄存器的CTRL\[48\]比特位控制计算时的模式: |
| 237 | 237 | ||
| 238 | - 设置为0时使用饱和模式,inf输出饱和为±MAX、nan输出饱和为0; | 238 | - 设置为0时使用饱和模式,inf输出饱和为±MAX、nan输出饱和为0; |
| 239 | - 设置为1时使用非饱和模式,inf/nan保持原输出。 | 239 | - 设置为1时使用非饱和模式,inf/nan保持原输出。 |
| @@ -129,7 +129,7 @@ PIPE_M | |||
| 129 | 129 | ||
| 130 | - 本接口仅在AIC上生效,在AIV上调用将直接返回。 | 130 | - 本接口仅在AIC上生效,在AIV上调用将直接返回。 |
| 131 | - `left_height`、`n_dim`、`right_width`中的任意一个值为0时,接口将被视为NOP(空操作)。 | 131 | - `left_height`、`n_dim`、`right_width`中的任意一个值为0时,接口将被视为NOP(空操作)。 |
| 132 | -- 调用本接口前,需通过[asc_copy_l12l0a_mx](../cube_data_move/asc_copy_l12l0a_mx.md)和[asc_copy_l12l0b_mx](../cube_data_move/asc_copy_l12l0b_mx.md)等接口,将ScaleA和ScaleB矩阵分别搬入L0A_MX Buffer和L0B_MX Buffer。ScaleA和ScaleB矩阵的数据类型必须为`fp8_e8m0_t`,K方向上每个Scale元素对应32个输入矩阵元素。 | 132 | +- 调用本接口前,需通过[asc_copy_l12l0a_mx](../cube_datamove/asc_copy_l12l0a_mx.md)和[asc_copy_l12l0b_mx](../cube_datamove/asc_copy_l12l0b_mx.md)等接口,将ScaleA和ScaleB矩阵分别搬入L0A_MX Buffer和L0B_MX Buffer。ScaleA和ScaleB矩阵的数据类型必须为`fp8_e8m0_t`,K方向上每个Scale元素对应32个输入矩阵元素。 |
| 133 | 133 | ||
| 134 | - 内存使用约束说明: | 134 | - 内存使用约束说明: |
| 135 | 135 | ||
| @@ -148,12 +148,12 @@ PIPE_M | |||
| 148 | - UnitFlag约束说明: | 148 | - UnitFlag约束说明: |
| 149 | 149 | ||
| 150 | - 开启UnitFlag时,矩阵乘加指令与对应矩阵搬出指令需同时开启UnitFlag。当希望同一块L0C Buffer内存空间能持续只被多条矩阵乘加指令或多条矩阵搬出指令操作时,需将前n-1条指令的unitFlag值设置为2,维持被操作内存空间的持续占用状态,最后一条指令设置为3,解除被占用状态。 | 150 | - 开启UnitFlag时,矩阵乘加指令与对应矩阵搬出指令需同时开启UnitFlag。当希望同一块L0C Buffer内存空间能持续只被多条矩阵乘加指令或多条矩阵搬出指令操作时,需将前n-1条指令的unitFlag值设置为2,维持被操作内存空间的持续占用状态,最后一条指令设置为3,解除被占用状态。 |
| 151 | - - 开启UnitFlag时,矩阵计算方向需与矩阵搬出读取顺序保持一致。矩阵搬出指令开启Nz2ND随路格式转换,或未进行随路格式转换但开启B8/B4量化并触发Channel Merge功能时,调用[asc_set_mmad_direction_n](./asc_set_mmad_direction_n.md);其他场景调用[asc_set_mmad_direction_m](./asc_set_mmad_direction_m.md)。 | 151 | + - 开启UnitFlag时,矩阵计算方向需与矩阵搬出读取顺序保持一致。矩阵搬出指令开启Nz2ND随路格式转换,或未进行随路格式转换但开启B8/B4量化并触发Channel Merge功能时,调用[asc_set_mmad_direction_n](asc_set_mmad_direction_n.md);其他场景调用[asc_set_mmad_direction_m](asc_set_mmad_direction_m.md)。 |
| 152 | - - 开启UnitFlag时,建议矩阵乘加的计算数据量与矩阵搬出的数据量保持一致。两者不一致可能导致执行异常。需要清除UnitFlag产生的残留状态时,可调用[asc_set_l0c2gm_config](./asc_set_l0c2gm_config.md),并将`enable_unit_flag`设置为true,将L0C Buffer中所有内存块的单元标志位设置为0并关闭UnitFlag。 | 152 | + - 开启UnitFlag时,建议矩阵乘加的计算数据量与矩阵搬出的数据量保持一致。两者不一致可能导致执行异常。需要清除UnitFlag产生的残留状态时,可调用[asc_set_l0c2gm_config](../cube_datamove/asc_set_l0c2gm_config.md),并将`enable_unit_flag`设置为true,将L0C Buffer中所有内存块的单元标志位设置为0并关闭UnitFlag。 |
| 153 | 153 | ||
| 154 | - 特殊值/边界值约束说明: | 154 | - 特殊值/边界值约束说明: |
| 155 | 155 | ||
| 156 | - 浮点类型的输入或输出包含inf/nan时,可通过[asc_set_ctrl](../sys_var/asc_set_ctrl.md)接口配置CTRL寄存器的CTRL\[48\]比特位控制计算时的模式: | 156 | + 浮点类型的输入或输出包含inf/nan时,可通过[asc_set_ctrl](../spr/asc_set_ctrl.md)接口配置CTRL寄存器的CTRL\[48\]比特位控制计算时的模式: |
| 157 | 157 | ||
| 158 | - 设置为0时使用饱和模式,inf输出饱和为±MAX、nan输出饱和为0; | 158 | - 设置为0时使用饱和模式,inf输出饱和为±MAX、nan输出饱和为0; |
| 159 | - 设置为1时使用非饱和模式,inf/nan保持原输出。 | 159 | - 设置为1时使用非饱和模式,inf/nan保持原输出。 |
| @@ -26,7 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | ## 功能说明 | 27 | ## 功能说明 |
| 28 | 28 | ||
| 29 | -完成矩阵乘加操作,传入的左矩阵A为稀疏矩阵,右矩阵B为稠密矩阵。对于矩阵A,在asc_mmad_sparse计算时完成稠密化;对于矩阵B,在计算执行前的输入数据准备时自行完成稠密化(按照下文中介绍的稠密算法进行稠密化)。稠密矩阵B需要通过[asc_copy_l12l0b_sparse](../cube_data_move/asc_copy_l12l0b_sparse.md)载入,同时加载索引矩阵,索引矩阵在矩阵B稠密化的过程中生成,再用于矩阵A的稠密化。 | 29 | +完成矩阵乘加操作,传入的左矩阵A为稀疏矩阵,右矩阵B为稠密矩阵。对于矩阵A,在asc_mmad_sparse计算时完成稠密化;对于矩阵B,在计算执行前的输入数据准备时自行完成稠密化(按照下文中介绍的稠密算法进行稠密化)。稠密矩阵B需要通过[asc_copy_l12l0b_sparse](../cube_datamove/asc_copy_l12l0b_sparse.md)载入,同时加载索引矩阵,索引矩阵在矩阵B稠密化的过程中生成,再用于矩阵A的稠密化。 |
| 30 | 30 | ||
| 31 | ## 函数原型 | 31 | ## 函数原型 |
| 32 | 32 | ||
| @@ -26,7 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | ## 功能说明 | 27 | ## 功能说明 |
| 28 | 28 | ||
| 29 | -本接口用于设置Mmad计算关闭HF32模式,其作用与[asc_enable_hf32](./asc_enable_hf32.md)相反,两个接口不同时生效。关闭HF32模式后,L0A Buffer与L0B Buffer中的`float`数据在参与Mmad计算之前不做舍入处理。 | 29 | +本接口用于设置Mmad计算关闭HF32模式,其作用与[asc_enable_hf32](asc_enable_hf32.md)相反,两个接口不同时生效。关闭HF32模式后,L0A Buffer与L0B Buffer中的`float`数据在参与Mmad计算之前不做舍入处理。 |
| 30 | 30 | ||
| 31 | ## 函数原型 | 31 | ## 函数原型 |
| 32 | 32 | ||
| @@ -48,8 +48,8 @@ PIPE_S | |||
| 48 | 48 | ||
| 49 | ## 约束说明 | 49 | ## 约束说明 |
| 50 | 50 | ||
| 51 | -- 本接口需在矩阵乘加指令([asc_mmad](./asc_mmad.md))执行前调用,以此来确保模式配置在矩阵乘加计算过程中生效。 | 51 | +- 本接口需在矩阵乘加指令([asc_mmad](asc_mmad.md))执行前调用,以此来确保模式配置在矩阵乘加计算过程中生效。 |
| 52 | -- FP32模式启用后会持续生效,不会自动关闭。后续矩阵乘加指令若不显式重新配置,将沿用当前模式。如需开启HF32模式,请重新调用[asc_enable_hf32](./asc_enable_hf32.md)接口。 | 52 | +- FP32模式启用后会持续生效,不会自动关闭。后续矩阵乘加指令若不显式重新配置,将沿用当前模式。如需开启HF32模式,请重新调用[asc_enable_hf32](asc_enable_hf32.md)接口。 |
| 53 | 53 | ||
| 54 | <!-- npu="950" id8 --> | 54 | <!-- npu="950" id8 --> |
| 55 | ## 调用示例 | 55 | ## 调用示例 |
| @@ -26,7 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | ## 功能说明 | 27 | ## 功能说明 |
| 28 | 28 | ||
| 29 | -本接口用于设置HF32模式舍入方式,使用该接口前需要先使用[asc_enable_hf32](./asc_enable_hf32.md)开启HF32模式。 | 29 | +本接口用于设置HF32模式舍入方式,使用该接口前需要先使用[asc_enable_hf32](asc_enable_hf32.md)开启HF32模式。 |
| 30 | 30 | ||
| 31 | ## 函数原型 | 31 | ## 函数原型 |
| 32 | 32 | ||
| @@ -38,7 +38,7 @@ __aicore__ inline void asc_set_hf32_round_mode(asc_hf32_round_mode hf32_round_mo | |||
| 38 | 38 | ||
| 39 | | 参数名 | 输入/输出 | 描述 | | 39 | | 参数名 | 输入/输出 | 描述 | |
| 40 | |:-------|:----------|:------| | 40 | |:-------|:----------|:------| |
| 41 | -| hf32_round_mode | 输入 | HF32舍入模式控制入参,[asc_hf32_round_mode](../enum/asc_hf32_round_mode.md)枚举类型,支持如下2种枚举值:<br> • NEAREST_AWAY:FP32将以向最接近的值舍入,平局时远离零的方式舍入为HF32。<br> • NEAREST_EVEN:FP32将以向最接近的值舍入,平局时向偶数舍入的方式舍入为HF32。 | | 41 | +| hf32_round_mode | 输入 | HF32舍入模式控制入参,[asc_hf32_round_mode](../defs/enum/asc_hf32_round_mode.md)枚举类型,支持如下2种枚举值:<br> • NEAREST_AWAY:FP32将以向最接近的值舍入,平局时远离零的方式舍入为HF32。<br> • NEAREST_EVEN:FP32将以向最接近的值舍入,平局时向偶数舍入的方式舍入为HF32。 | |
| 42 | 42 | ||
| 43 | ## 返回值说明 | 43 | ## 返回值说明 |
| 44 | 44 | ||
| @@ -51,7 +51,7 @@ PIPE_S | |||
| 51 | ## 约束说明 | 51 | ## 约束说明 |
| 52 | 52 | ||
| 53 | - 开启HF32模式后,若不调用本接口,则默认使用`NEAREST_EVEN`代表的舍入模式。 | 53 | - 开启HF32模式后,若不调用本接口,则默认使用`NEAREST_EVEN`代表的舍入模式。 |
| 54 | -- 本接口需在矩阵乘加指令([asc_mmad](./asc_mmad.md))执行前调用,以此来确保模式配置在矩阵乘加计算过程中生效。 | 54 | +- 本接口需在矩阵乘加指令([asc_mmad](asc_mmad.md))执行前调用,以此来确保模式配置在矩阵乘加计算过程中生效。 |
| 55 | - 本接口配置的舍入模式仅在HF32模式开启期间生效,需先开启HF32模式再调用本接口,否则舍入模式配置不产生实际作用。 | 55 | - 本接口配置的舍入模式仅在HF32模式开启期间生效,需先开启HF32模式再调用本接口,否则舍入模式配置不产生实际作用。 |
| 56 | - 舍入模式配置后会持续生效,HF32模式关闭后再次开启仍将沿用上次的舍入模式配置,如需切换舍入模式,请重新调用本接口。 | 56 | - 舍入模式配置后会持续生效,HF32模式关闭后再次开启仍将沿用上次的舍入模式配置,如需切换舍入模式,请重新调用本接口。 |
| 57 | 57 | ||
| @@ -54,8 +54,8 @@ PIPE_S | |||
| 54 | 54 | ||
| 55 | ## 约束说明 | 55 | ## 约束说明 |
| 56 | 56 | ||
| 57 | -- 本接口需在矩阵乘加指令([asc_mmad](./asc_mmad.md)、[asc_mmad_mx](./asc_mmad_mx.md))执行前调用,以此来确保模式配置在矩阵乘加计算过程中生效。 | 57 | +- 本接口需在矩阵乘加指令([asc_mmad](asc_mmad.md)、[asc_mmad_mx](asc_mmad_mx.md))执行前调用,以此来确保模式配置在矩阵乘加计算过程中生效。 |
| 58 | -- 方向配置一旦写入会持续生效,后续矩阵乘加指令若不显式重新配置,将沿用当前方向配置。如需切换为逐行生成矩阵计算结果分形,请重新调用[asc_set_mmad_direction_n](./asc_set_mmad_direction_n.md)接口。 | 58 | +- 方向配置一旦写入会持续生效,后续矩阵乘加指令若不显式重新配置,将沿用当前方向配置。如需切换为逐行生成矩阵计算结果分形,请重新调用[asc_set_mmad_direction_n](asc_set_mmad_direction_n.md)接口。 |
| 59 | 59 | ||
| 60 | <!-- npu="950" id8 --> | 60 | <!-- npu="950" id8 --> |
| 61 | ## 调用示例 | 61 | ## 调用示例 |
| @@ -53,8 +53,8 @@ PIPE_S | |||
| 53 | 53 | ||
| 54 | ## 约束说明 | 54 | ## 约束说明 |
| 55 | 55 | ||
| 56 | -- 本接口需在矩阵乘加指令([asc_mmad](./asc_mmad.md)、[asc_mmad_mx](./asc_mmad_mx.md))执行前调用,以此来确保模式配置在矩阵乘加计算过程中生效。 | 56 | +- 本接口需在矩阵乘加指令([asc_mmad](asc_mmad.md)、[asc_mmad_mx](asc_mmad_mx.md))执行前调用,以此来确保模式配置在矩阵乘加计算过程中生效。 |
| 57 | -- 方向配置一旦写入会持续生效,后续矩阵乘加指令若不显式重新配置,将沿用当前方向配置。如需切换为逐列生成矩阵计算结果分形,请重新调用[asc_set_mmad_direction_m](./asc_set_mmad_direction_m.md)接口。 | 57 | +- 方向配置一旦写入会持续生效,后续矩阵乘加指令若不显式重新配置,将沿用当前方向配置。如需切换为逐列生成矩阵计算结果分形,请重新调用[asc_set_mmad_direction_m](asc_set_mmad_direction_m.md)接口。 |
| 58 | 58 | ||
| 59 | <!-- npu="950" id8 --> | 59 | <!-- npu="950" id8 --> |
| 60 | ## 调用示例 | 60 | ## 调用示例 |
| @@ -1,33 +1,13 @@ | |||
| 1 | # 矩阵计算 | 1 | # 矩阵计算 |
| 2 | 2 | ||
| 3 | -- **[asc_enable_hf32](asc_enable_hf32.md)** | ||
| 4 | - | ||
| 5 | -- **[asc_set_hf32_round_mode](asc_set_hf32_round_mode.md)** | ||
| 6 | - | ||
| 7 | -- **[asc_enable_hf32_trans](asc_enable_hf32_trans.md)** | ||
| 8 | - | ||
| 9 | -- **[asc_enable_hif8](asc_enable_hif8.md)** | ||
| 10 | - | ||
| 11 | - **[asc_enable_fp8](asc_enable_fp8.md)** | 3 | - **[asc_enable_fp8](asc_enable_fp8.md)** |
| 12 | - | 4 | +- **[asc_enable_hf32](asc_enable_hf32.md)** |
| 13 | -- **[asc_get_l0c2gm_prequant](asc_get_l0c2gm_prequant.md)** | 5 | +- **[asc_enable_hf32_trans](asc_enable_hf32_trans.md)** |
| 14 | - | 6 | +- **[asc_enable_hif8](asc_enable_hif8.md)** |
| 15 | -- **[asc_get_l0c2gm_relu](asc_get_l0c2gm_relu.md)** | ||
| 16 | - | ||
| 17 | -- **[asc_get_l0c2gm_unitflag](asc_get_l0c2gm_unitflag.md)** | ||
| 18 | - | ||
| 19 | - **[asc_mmad](asc_mmad.md)** | 7 | - **[asc_mmad](asc_mmad.md)** |
| 20 | - | ||
| 21 | - **[asc_mmad_mx](asc_mmad_mx.md)** | 8 | - **[asc_mmad_mx](asc_mmad_mx.md)** |
| 22 | - | ||
| 23 | - **[asc_mmad_sparse](asc_mmad_sparse.md)** | 9 | - **[asc_mmad_sparse](asc_mmad_sparse.md)** |
| 24 | - | ||
| 25 | - **[asc_set_fp32_mode](asc_set_fp32_mode.md)** | 10 | - **[asc_set_fp32_mode](asc_set_fp32_mode.md)** |
| 26 | - | 11 | +- **[asc_set_hf32_round_mode](asc_set_hf32_round_mode.md)** |
| 27 | -- **[asc_set_l0c2gm_config](asc_set_l0c2gm_config.md)** | ||
| 28 | - | ||
| 29 | -- **[asc_set_l0c2gm_nz2nd](asc_set_l0c2gm_nz2nd.md)** | ||
| 30 | - | ||
| 31 | - **[asc_set_mmad_direction_m](asc_set_mmad_direction_m.md)** | 12 | - **[asc_set_mmad_direction_m](asc_set_mmad_direction_m.md)** |
| 32 | - | ||
| 33 | - **[asc_set_mmad_direction_n](asc_set_mmad_direction_n.md)** | 13 | - **[asc_set_mmad_direction_n](asc_set_mmad_direction_n.md)** |
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_gm2l0a.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_gm2l0a.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_gm2l0b.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_gm2l0b.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_gm2l1/asc_copy_gm2l1.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_gm2l1/asc_copy_gm2l1.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_gm2l1/asc_copy_gm2l1_arch_2201.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_gm2l1/asc_copy_gm2l1_arch_2201.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_gm2l1/asc_copy_gm2l1_arch_3510.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_gm2l1/asc_copy_gm2l1_arch_3510.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_gm2l1_align.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_gm2l1_align.md+1-1
| @@ -26,7 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | ## 功能说明 | 27 | ## 功能说明 |
| 28 | 28 | ||
| 29 | -对矩阵数据进行实时padding,完成padding后将数据从Global Memory搬运到L1 Buffer。需要与[asc_set_gm2l1_loop_size](./asc_set_gm2l1_loop_size.md)、[asc_set_gm2l1_loop1_stride](./asc_set_gm2l1_loop1_stride.md)、[asc_set_gm2l1_loop2_stride](./asc_set_gm2l1_loop2_stride.md)和[asc_set_gm2l1_pad](./asc_set_gm2l1_pad.md)配合使用。 | 29 | +对矩阵数据进行实时padding,完成padding后将数据从Global Memory搬运到L1 Buffer。需要与[asc_set_gm2l1_loop_size](asc_set_gm2l1_loop_size.md)、[asc_set_gm2l1_loop1_stride](asc_set_gm2l1_loop1_stride.md)、[asc_set_gm2l1_loop2_stride](asc_set_gm2l1_loop2_stride.md)和[asc_set_gm2l1_pad](asc_set_gm2l1_pad.md)配合使用。 |
| 30 | 30 | ||
| 31 | ## 函数原型 | 31 | ## 函数原型 |
| 32 | 32 | ||
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_gm2l1_dn2nz.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_gm2l1_dn2nz.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_gm2l1_nd2nz/asc_copy_gm2l1_nd2nz.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_gm2l1_nd2nz/asc_copy_gm2l1_nd2nz.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_gm2l1_nd2nz/asc_copy_gm2l1_nd2nz_arch_2201.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_gm2l1_nd2nz/asc_copy_gm2l1_nd2nz_arch_2201.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_gm2l1_nd2nz/asc_copy_gm2l1_nd2nz_arch_3510.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_gm2l1_nd2nz/asc_copy_gm2l1_nd2nz_arch_3510.md+2-2
| @@ -28,7 +28,7 @@ | |||
| 28 | 28 | ||
| 29 | 将数据从Global Memory搬运到L1 Buffer,并在搬运过程中将源端按N维连续排布的ND格式数据转换为L1 Buffer侧的Nz分形排布,使其满足后续矩阵计算对分形列连续性的要求。该接口也适用于卷积格式NHWC(ND)转换为NC1HWC0格式等转换场景。 | 29 | 将数据从Global Memory搬运到L1 Buffer,并在搬运过程中将源端按N维连续排布的ND格式数据转换为L1 Buffer侧的Nz分形排布,使其满足后续矩阵计算对分形列连续性的要求。该接口也适用于卷积格式NHWC(ND)转换为NC1HWC0格式等转换场景。 |
| 30 | 30 | ||
| 31 | -进行ND2Nz格式搬运前,需先通过[asc_set_gm2l1_nz_para](../../sys_var/asc_set_gm2l1_nz_para.md)接口配置ND2Nz搬运的目的Nz矩阵的stride与ND矩阵搬运个数。 | 31 | +进行ND2Nz格式搬运前,需先通过[asc_set_gm2l1_nz_para](../asc_set_gm2l1_nz_para.md)接口配置ND2Nz搬运的目的Nz矩阵的stride与ND矩阵搬运个数。 |
| 32 | 32 | ||
| 33 | 本接口仅在AIC上执行有效。 | 33 | 本接口仅在AIC上执行有效。 |
| 34 | 34 | ||
| @@ -135,7 +135,7 @@ PIPE_MTE2 | |||
| 135 | 135 | ||
| 136 | ### ND2Nz搬运约束 | 136 | ### ND2Nz搬运约束 |
| 137 | 137 | ||
| 138 | -- 调用本指令前,需要先调用[asc_set_gm2l1_nz_para](../../sys_var/asc_set_gm2l1_nz_para.md)接口配置ND2Nz搬运的目的Nz矩阵步长与ND矩阵搬运个数。 | 138 | +- 调用本指令前,需要先调用[asc_set_gm2l1_nz_para](../asc_set_gm2l1_nz_para.md)接口配置ND2Nz搬运的目的Nz矩阵步长与ND矩阵搬运个数。 |
| 139 | - `loop1_src_stride`取值范围为[0, $2^{40}-1$],超出取值范围的值会被截断,导致搬运结果不符合预期。 | 139 | - `loop1_src_stride`取值范围为[0, $2^{40}-1$],超出取值范围的值会被截断,导致搬运结果不符合预期。 |
| 140 | - `n_value`取值范围为[1, 65535],超出取值范围的值会被截断,导致搬运结果不符合预期。 | 140 | - `n_value`取值范围为[1, 65535],超出取值范围的值会被截断,导致搬运结果不符合预期。 |
| 141 | - `d_value`取值范围为[1, $2^{21}-1$],超出取值范围的值会被截断,导致搬运结果不符合预期。 | 141 | - `d_value`取值范围为[1, $2^{21}-1$],超出取值范围的值会被截断,导致搬运结果不符合预期。 |
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l0c2gm/asc_copy_l0c2gm.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2gm/asc_copy_l0c2gm.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l0c2gm/asc_copy_l0c2gm_arch_2201.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2gm/asc_copy_l0c2gm_arch_2201.md+1-1
| @@ -80,7 +80,7 @@ | |||
| 80 | | dst_stride_dst_d | 输入 | <br> - 不开启NZ2ND功能,目的NZ矩阵中相邻Z排布的起始地址偏移,取值不为0,单位:element。<br> - 开启NZ2ND/NZ2DN功能,目的ND矩阵每一行中的元素个数,取值不为0 ,单位:element。| | 80 | | dst_stride_dst_d | 输入 | <br> - 不开启NZ2ND功能,目的NZ矩阵中相邻Z排布的起始地址偏移,取值不为0,单位:element。<br> - 开启NZ2ND/NZ2DN功能,目的ND矩阵每一行中的元素个数,取值不为0 ,单位:element。| |
| 81 | | src_stride | 输入 | 源NZ矩阵中相邻Z排布的起始地址偏移,取值范围:[0, 65535],单位:C0_Size(16*sizeof(T), T为src的数据类型)。 | | 81 | | src_stride | 输入 | 源NZ矩阵中相邻Z排布的起始地址偏移,取值范围:[0, 65535],单位:C0_Size(16*sizeof(T), T为src的数据类型)。 | |
| 82 | | unit_flag_mode | 输入 | 与unit_flag参数相关,取值如下:<br>0:保留值;<br>2:开启unit_flag,硬件执行完指令之后,不会设置寄存器;<br>3:开启unit_flag,硬件执行完指令后,会将unit_flag关闭。 | | 82 | | unit_flag_mode | 输入 | 与unit_flag参数相关,取值如下:<br>0:保留值;<br>2:开启unit_flag,硬件执行完指令之后,不会设置寄存器;<br>3:开启unit_flag,硬件执行完指令后,会将unit_flag关闭。 | |
| 83 | -| quant_pre |输入|量化参数。取值见[功能说明](./asc_copy_l0c2gm_arch_2201.md#功能说明)。| | 83 | +| quant_pre |输入|量化参数。取值见[功能说明](asc_copy_l0c2gm_arch_2201.md#功能说明)。| |
| 84 | | relu_pre | 输入 | 开启relu。 | | 84 | | relu_pre | 输入 | 开启relu。 | |
| 85 | | channel_split | 输入 | 是否开启通道拆分的功能,默认false,不开启该功能。仅在src和dst都为float时才能开启通道拆分,且不能同时开启channel_split和NZ2ND功能。 | | 85 | | channel_split | 输入 | 是否开启通道拆分的功能,默认false,不开启该功能。仅在src和dst都为float时才能开启通道拆分,且不能同时开启channel_split和NZ2ND功能。 | |
| 86 | | nz2nd_en | 输入 |开启nz2nd开关,false:不开启;true:开启。 | | 86 | | nz2nd_en | 输入 |开启nz2nd开关,false:不开启;true:开启。 | |
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l0c2gm/asc_copy_l0c2gm_arch_3510.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2gm/asc_copy_l0c2gm_arch_3510.md+6-6
| @@ -36,11 +36,11 @@ | |||
| 36 | 36 | ||
| 37 | 本接口支持多种随路能力的组合,需通过配套接口预先配置量化参数、激活参数、通道参数等寄存器,再调用本接口完成搬运。 | 37 | 本接口支持多种随路能力的组合,需通过配套接口预先配置量化参数、激活参数、通道参数等寄存器,再调用本接口完成搬运。 |
| 38 | 38 | ||
| 39 | -- Nz2ND格式转换场景下,需通过[asc_set_l0c2gm_nz2nd](../../cube_compute/asc_set_l0c2gm_nz2nd.md)预先配置格式转换参数,并且需要搭配本接口`enable_nz2nd`使用; | 39 | +- Nz2ND格式转换场景下,需通过[asc_set_l0c2gm_nz2nd](../asc_set_l0c2gm_nz2nd.md)预先配置格式转换参数,并且需要搭配本接口`enable_nz2nd`使用; |
| 40 | -- Nz2DN格式转换场景下,需通过[asc_set_l0c2gm_nz2nd](../../cube_compute/asc_set_l0c2gm_nz2nd.md)、[asc_set_l0c2gm_channel_para](../../sys_var/asc_set_l0c2gm_channel_para.md)预先配置格式转换参数,并且需要搭配本接口`enable_nz2dn`使用; | 40 | +- Nz2DN格式转换场景下,需通过[asc_set_l0c2gm_nz2nd](../asc_set_l0c2gm_nz2nd.md)、[asc_set_l0c2gm_channel_para](../asc_set_l0c2gm_channel_para.md)预先配置格式转换参数,并且需要搭配本接口`enable_nz2dn`使用; |
| 41 | - 随路scalar量化模式下,需通过[asc_set_l0c_copy_prequant](../asc_set_l0c_copy_prequant.md)设置随路scalar量化参数,并且需要搭配本接口`quant_pre_mode`使用; | 41 | - 随路scalar量化模式下,需通过[asc_set_l0c_copy_prequant](../asc_set_l0c_copy_prequant.md)设置随路scalar量化参数,并且需要搭配本接口`quant_pre_mode`使用; |
| 42 | -- 随路tensor量化模式下,需通过[asc_set_l0c2gm_config](../../cube_compute/asc_set_l0c2gm_config.md)设置随路tensor量化使用tensor的起始地址,其中量化tensor的每个元素都代表一个量化参数,并且需要搭配本接口`quant_pre_mode`使用; | 42 | +- 随路tensor量化模式下,需通过[asc_set_l0c2gm_config](../asc_set_l0c2gm_config.md)设置随路tensor量化使用tensor的起始地址,其中量化tensor的每个元素都代表一个量化参数,并且需要搭配本接口`quant_pre_mode`使用; |
| 43 | -- 随路激活模式下,需通过[asc_set_l0c2gm_relu_alpha](../../sys_var/asc_set_l0c2gm_relu_alpha.md)、[asc_set_l0c2gm_lrelu_alpha](../asc_set_l0c2gm_lrelu_alpha.md)预先配置ReLU/Leaky ReLU激活参数,并且需要搭配本接口`enable_clip_relu_pre`与`relu_pre_mode`使用; | 43 | +- 随路激活模式下,需通过[asc_set_l0c2gm_relu_alpha](../asc_set_l0c2gm_relu_alpha.md)、[asc_set_l0c2gm_lrelu_alpha](../asc_set_l0c2gm_lrelu_alpha.md)预先配置ReLU/Leaky ReLU激活参数,并且需要搭配本接口`enable_clip_relu_pre`与`relu_pre_mode`使用; |
| 44 | 44 | ||
| 45 | `quant_pre_mode`量化模式参数支持的枚举值如下: | 45 | `quant_pre_mode`量化模式参数支持的枚举值如下: |
| 46 | 46 | ||
| @@ -217,8 +217,8 @@ PIPE_FIX | |||
| 217 | - src与dst dtype组合需与`quant_pre_mode`量化模式匹配,否则会导致搬运结果不符合预期。 | 217 | - src与dst dtype组合需与`quant_pre_mode`量化模式匹配,否则会导致搬运结果不符合预期。 |
| 218 | - `enable_channel_split`仅在输出dtype为`float`且输出为Nz格式时可设为true。 | 218 | - `enable_channel_split`仅在输出dtype为`float`且输出为Nz格式时可设为true。 |
| 219 | - 量化与激活模式中使用的量化系数不可为INF/NaN和非规格化数,否则会导致量化激活结果错误。 | 219 | - 量化与激活模式中使用的量化系数不可为INF/NaN和非规格化数,否则会导致量化激活结果错误。 |
| 220 | -- 开启Nz2DN转换时,需通过[asc_set_l0c2gm_channel_para](../../sys_var/asc_set_l0c2gm_channel_para.md)预先配置源矩阵步长,且源矩阵步长不可为0,否则会导致搬运异常。 | 220 | +- 开启Nz2DN转换时,需通过[asc_set_l0c2gm_channel_para](../asc_set_l0c2gm_channel_para.md)预先配置源矩阵步长,且源矩阵步长不可为0,否则会导致搬运异常。 |
| 221 | -- 开启Nz2DN转换时,仅当通过[asc_set_l0c2gm_channel_para](../../sys_var/asc_set_l0c2gm_channel_para.md)配置源矩阵步长为1时,可同时开启UnitFlag功能。 | 221 | +- 开启Nz2DN转换时,仅当通过[asc_set_l0c2gm_channel_para](../asc_set_l0c2gm_channel_para.md)配置源矩阵步长为1时,可同时开启UnitFlag功能。 |
| 222 | - `enable_clip_relu_pre`设为Clip ReLU(标量模式)时需搭配`relu_pre_mode`与量化功能一起使用。 | 222 | - `enable_clip_relu_pre`设为Clip ReLU(标量模式)时需搭配`relu_pre_mode`与量化功能一起使用。 |
| 223 | 223 | ||
| 224 | ## 调用示例 | 224 | ## 调用示例 |
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l0c2l1/asc_copy_l0c2l1.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2l1/asc_copy_l0c2l1.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l0c2l1/asc_copy_l0c2l1_arch_2201.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2l1/asc_copy_l0c2l1_arch_2201.md+1-1
| @@ -82,7 +82,7 @@ | |||
| 82 | | dst_stride | 输入 | • 不开启NZ2ND功能,目的NZ矩阵中相邻Z排布的起始地址偏移,取值不为0,单位:element。<br/>• 开启NZ2ND/NZ2DN功能,目的ND矩阵每一行中的元素个数,取值不为0 ,单位:element。 | | 82 | | dst_stride | 输入 | • 不开启NZ2ND功能,目的NZ矩阵中相邻Z排布的起始地址偏移,取值不为0,单位:element。<br/>• 开启NZ2ND/NZ2DN功能,目的ND矩阵每一行中的元素个数,取值不为0 ,单位:element。 | |
| 83 | | src_stride | 输入 | 源NZ矩阵中相邻Z排布的起始地址偏移,取值范围:[0, 65535],单位:C0_Size(16*sizeof(T), T为src的数据类型)。 | | 83 | | src_stride | 输入 | 源NZ矩阵中相邻Z排布的起始地址偏移,取值范围:[0, 65535],单位:C0_Size(16*sizeof(T), T为src的数据类型)。 | |
| 84 | | unit_flag_mode | 输入 | 与unit_flag参数相关,取值如下:<br/>• 0保留值;<br/>• 2 开启unit_flag,硬件执行完指令之后,不会设置寄存器;<br/>• 3 开启unit_flag,硬件执行完指令后,会将unit_flag关闭。 | | 84 | | unit_flag_mode | 输入 | 与unit_flag参数相关,取值如下:<br/>• 0保留值;<br/>• 2 开启unit_flag,硬件执行完指令之后,不会设置寄存器;<br/>• 3 开启unit_flag,硬件执行完指令后,会将unit_flag关闭。 | |
| 85 | -| quant_pre | 输入 | 量化参数。取值见[功能说明](./asc_copy_l0c2l1_arch_2201.md#功能说明)。 | | 85 | +| quant_pre | 输入 | 量化参数。取值见[功能说明](asc_copy_l0c2l1_arch_2201.md#功能说明)。 | |
| 86 | | relu_pre | 输入 | 开启relu。 | | 86 | | relu_pre | 输入 | 开启relu。 | |
| 87 | | enable_channel_split | 输入 | 是否开启通道拆分的功能,默认false,不开启该功能。仅在src和dst都为float时才能开启通道拆分,且不能同时开启channel_split和NZ2ND功能。 | | 87 | | enable_channel_split | 输入 | 是否开启通道拆分的功能,默认false,不开启该功能。仅在src和dst都为float时才能开启通道拆分,且不能同时开启channel_split和NZ2ND功能。 | |
| 88 | | enable_nz2nd | 输入 | 开启NZ2ND开关。<br/>• false:不开启;<br/>• true:开启。 | | 88 | | enable_nz2nd | 输入 | 开启NZ2ND开关。<br/>• false:不开启;<br/>• true:开启。 | |
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l0c2l1/asc_copy_l0c2l1_arch_3510.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2l1/asc_copy_l0c2l1_arch_3510.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l0c2ub.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l0c2ub.md+6-6
| @@ -36,11 +36,11 @@ | |||
| 36 | 36 | ||
| 37 | 本接口支持多种随路能力的组合,需通过配套接口预先配置量化参数、激活参数、通道参数等寄存器,再调用本接口完成搬运。 | 37 | 本接口支持多种随路能力的组合,需通过配套接口预先配置量化参数、激活参数、通道参数等寄存器,再调用本接口完成搬运。 |
| 38 | 38 | ||
| 39 | -- Nz2ND格式转换场景下,需通过[asc_set_l0c2gm_nz2nd](../cube_compute/asc_set_l0c2gm_nz2nd.md)预先配置格式转换参数,并且需要搭配本接口`enable_nz2nd`使用; | 39 | +- Nz2ND格式转换场景下,需通过[asc_set_l0c2gm_nz2nd](asc_set_l0c2gm_nz2nd.md)预先配置格式转换参数,并且需要搭配本接口`enable_nz2nd`使用; |
| 40 | -- Nz2DN格式转换场景下,需通过[asc_set_l0c2gm_nz2nd](../cube_compute/asc_set_l0c2gm_nz2nd.md)、[asc_set_l0c2gm_channel_para](../sys_var/asc_set_l0c2gm_channel_para.md)预先配置格式转换参数,并且需要搭配本接口`enable_nz2dn`使用; | 40 | +- Nz2DN格式转换场景下,需通过[asc_set_l0c2gm_nz2nd](asc_set_l0c2gm_nz2nd.md)、[asc_set_l0c2gm_channel_para](asc_set_l0c2gm_channel_para.md)预先配置格式转换参数,并且需要搭配本接口`enable_nz2dn`使用; |
| 41 | - 随路scalar量化模式下,需通过[asc_set_l0c_copy_prequant](asc_set_l0c_copy_prequant.md)设置随路scalar量化参数,并且需要搭配本接口`quant_pre_mode`使用; | 41 | - 随路scalar量化模式下,需通过[asc_set_l0c_copy_prequant](asc_set_l0c_copy_prequant.md)设置随路scalar量化参数,并且需要搭配本接口`quant_pre_mode`使用; |
| 42 | -- 随路tensor量化模式下,需通过[asc_set_l0c2gm_config](../cube_compute/asc_set_l0c2gm_config.md)设置随路tensor量化使用tensor的起始地址,其中量化tensor的每个元素都代表一个量化参数,并且需要搭配本接口`quant_pre_mode`使用; | 42 | +- 随路tensor量化模式下,需通过[asc_set_l0c2gm_config](asc_set_l0c2gm_config.md)设置随路tensor量化使用tensor的起始地址,其中量化tensor的每个元素都代表一个量化参数,并且需要搭配本接口`quant_pre_mode`使用; |
| 43 | -- 随路激活模式下,需通过[asc_set_l0c2gm_relu_alpha](../sys_var/asc_set_l0c2gm_relu_alpha.md)、[asc_set_l0c2gm_lrelu_alpha](asc_set_l0c2gm_lrelu_alpha.md)预先配置ReLU/Leaky ReLU激活参数,并且需要搭配本接口`enable_clip_relu_pre`与`relu_pre_mode`使用; | 43 | +- 随路激活模式下,需通过[asc_set_l0c2gm_relu_alpha](asc_set_l0c2gm_relu_alpha.md)、[asc_set_l0c2gm_lrelu_alpha](asc_set_l0c2gm_lrelu_alpha.md)预先配置ReLU/Leaky ReLU激活参数,并且需要搭配本接口`enable_clip_relu_pre`与`relu_pre_mode`使用; |
| 44 | 44 | ||
| 45 | `quant_pre_mode`量化模式参数支持的枚举值如下: | 45 | `quant_pre_mode`量化模式参数支持的枚举值如下: |
| 46 | 46 | ||
| @@ -216,8 +216,8 @@ PIPE_FIX | |||
| 216 | - `dual_dst_ctrl`仅支持在普通搬运模式(Nz2Nz)或Nz2ND搬运场景下使用,不支持其他随路功能场景。 | 216 | - `dual_dst_ctrl`仅支持在普通搬运模式(Nz2Nz)或Nz2ND搬运场景下使用,不支持其他随路功能场景。 |
| 217 | - `enable_channel_split`仅在输出dtype为`float`且输出为Nz格式时可设为true。 | 217 | - `enable_channel_split`仅在输出dtype为`float`且输出为Nz格式时可设为true。 |
| 218 | - 量化与激活模式中使用的量化系数不可为INF/NaN和非规格化数,否则会导致量化激活结果错误。 | 218 | - 量化与激活模式中使用的量化系数不可为INF/NaN和非规格化数,否则会导致量化激活结果错误。 |
| 219 | -- 开启Nz2DN转换时,需通过[asc_set_l0c2gm_channel_para](../sys_var/asc_set_l0c2gm_channel_para.md)预先配置源矩阵步长,且源矩阵步长不可为0,否则会导致搬运异常。 | 219 | +- 开启Nz2DN转换时,需通过[asc_set_l0c2gm_channel_para](asc_set_l0c2gm_channel_para.md)预先配置源矩阵步长,且源矩阵步长不可为0,否则会导致搬运异常。 |
| 220 | -- 开启Nz2DN转换时,仅当通过[asc_set_l0c2gm_channel_para](../sys_var/asc_set_l0c2gm_channel_para.md)配置源矩阵步长为1时,可同时开启UnitFlag功能。 | 220 | +- 开启Nz2DN转换时,仅当通过[asc_set_l0c2gm_channel_para](asc_set_l0c2gm_channel_para.md)配置源矩阵步长为1时,可同时开启UnitFlag功能。 |
| 221 | - `enable_clip_relu_pre`设为Clip ReLU(标量模式)时需搭配`relu_pre_mode`与量化功能一起使用。 | 221 | - `enable_clip_relu_pre`设为Clip ReLU(标量模式)时需搭配`relu_pre_mode`与量化功能一起使用。 |
| 222 | 222 | ||
| 223 | ## 调用示例 | 223 | ## 调用示例 |
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12bt/asc_copy_l12bt.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12bt/asc_copy_l12bt.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12bt/asc_copy_l12bt_arch_2201.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12bt/asc_copy_l12bt_arch_2201.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12bt/asc_copy_l12bt_arch_3510.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12bt/asc_copy_l12bt_arch_3510.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12fb/asc_copy_l12fb.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12fb/asc_copy_l12fb.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12fb/asc_copy_l12fb_arch_2201.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12fb/asc_copy_l12fb_arch_2201.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12fb/asc_copy_l12fb_arch_3510.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12fb/asc_copy_l12fb_arch_3510.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12gm.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12gm.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0a/asc_copy_l12l0a.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0a/asc_copy_l12l0a.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0a/asc_copy_l12l0a_2d_arch_3510.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0a/asc_copy_l12l0a_2d_arch_3510.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0a/asc_copy_l12l0a_3d_arch_3510.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0a/asc_copy_l12l0a_3d_arch_3510.md+1-1
| @@ -127,7 +127,7 @@ __aicore__ inline void asc_copy_l12l0a(__ca__ half* dst, | |||
| 127 | | `filter_size_w` | 输入 | 是否在`filter_w`的基础上将卷积核width增加256个元素。<br> • `true`:增加;<br> • `false`:不增加。 | | 127 | | `filter_size_w` | 输入 | 是否在`filter_w`的基础上将卷积核width增加256个元素。<br> • `true`:增加;<br> • `false`:不增加。 | |
| 128 | | `filter_size_h` | 输入 | 是否在`filter_h`的基础上将卷积核height增加256个元素。<br> • `true`:增加;<br> • `false`:不增加。 | | 128 | | `filter_size_h` | 输入 | 是否在`filter_h`的基础上将卷积核height增加256个元素。<br> • `true`:增加;<br> • `false`:不增加。 | |
| 129 | | `transpose` | 输入 | 是否启用转置功能,对整个目标矩阵进行转置。<br> • `false`:不开启转置;<br> • `true`:开启转置。 | | 129 | | `transpose` | 输入 | 是否启用转置功能,对整个目标矩阵进行转置。<br> • `false`:不开启转置;<br> • `true`:开启转置。 | |
| 130 | -| `f_matrix_ctrl` | 输入 | 3D数据搬运Feature Map的属性描述寄存器组选择位,一般设置为`false`。<br> • `true`:从右矩阵中获取Feature Map的属性描述,配合[asc_set_l13d_fmatrix_b](../asc_set_l13d_fmatrix_b.md)、[asc_set_l12l0b_3d_padding](../../sys_var/asc_set_l12l0_padding_val.md)、`asc_set_l13d_rpt_b`使用;<br> • `false`:从左矩阵中获取FeatureMap的属性描述,配合[asc_set_l13d_fmatrix](../asc_set_l13d_fmatrix.md)、[asc_set_l12l0a_3d_padding](../asc_set_l13d_padding.md)、[asc_set_l13d_rpt](../asc_set_l13d_rpt.md)使用。 | | 130 | +| `f_matrix_ctrl` | 输入 | 3D数据搬运Feature Map的属性描述寄存器组选择位,一般设置为`false`。<br> • `true`:从右矩阵中获取Feature Map的属性描述,配合[asc_set_l13d_fmatrix_b](../asc_set_l13d_fmatrix_b.md)、[asc_set_l12l0b_3d_padding](../asc_set_l12l0_padding_val.md)、`asc_set_l13d_rpt_b`使用;<br> • `false`:从左矩阵中获取FeatureMap的属性描述,配合[asc_set_l13d_fmatrix](../asc_set_l13d_fmatrix.md)、[asc_set_l12l0a_3d_padding](../asc_set_l13d_padding.md)、[asc_set_l13d_rpt](../asc_set_l13d_rpt.md)使用。 | |
| 131 | | `channel_size` | 输入 | 源操作数的通道数N。<br>对于b32类型,`channel_size`除8的余数应当为0或4,最大值可取为65532。<br>对于b16类型,`channel_size`除16的余数应当为0,4或8,最大值可取为65528。<br>对于b8类型,`channel_size`除32的余数应当为0,4,8或16,最大值可取为65520。 | | 131 | | `channel_size` | 输入 | 源操作数的通道数N。<br>对于b32类型,`channel_size`除8的余数应当为0或4,最大值可取为65532。<br>对于b16类型,`channel_size`除16的余数应当为0,4或8,最大值可取为65528。<br>对于b8类型,`channel_size`除32的余数应当为0,4,8或16,最大值可取为65520。 | |
| 132 | 132 | ||
| 133 | ## 返回值说明 | 133 | ## 返回值说明 |
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0a/asc_copy_l12l0a_arch_2201.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0a/asc_copy_l12l0a_arch_2201.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0a_mx.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0a_mx.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0a_trans.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0a_trans.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0b/asc_copy_l12l0b.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b/asc_copy_l12l0b.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0b/asc_copy_l12l0b_2d_arch_3510.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b/asc_copy_l12l0b_2d_arch_3510.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0b/asc_copy_l12l0b_3d_arch_3510.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b/asc_copy_l12l0b_3d_arch_3510.md+3-3
| @@ -30,7 +30,7 @@ | |||
| 30 | 30 | ||
| 31 | 搬运过程中是以512字节的数据分形为单位进行搬运的,此接口也可以用于普通矩阵计算所需的2D格式数据的搬运。如何使用此接口进行2D格式数据的搬运可以参考[关键特性说明](#l12l0b_3d_key_features)。支持从L1 Buffer到L0B Buffer的数据搬运。 | 31 | 搬运过程中是以512字节的数据分形为单位进行搬运的,此接口也可以用于普通矩阵计算所需的2D格式数据的搬运。如何使用此接口进行2D格式数据的搬运可以参考[关键特性说明](#l12l0b_3d_key_features)。支持从L1 Buffer到L0B Buffer的数据搬运。 |
| 32 | 32 | ||
| 33 | -3D img2col搬运模式下,Feature Map的属性描述(fm_w、fm_h及四周padding)需通过[asc_set_l13d_fmatrix_b](../asc_set_l13d_fmatrix_b.md)预先配置,填充值与填充模式需通过[asc_set_l12l0b_3d_padding](../../sys_var/asc_set_l12l0_padding_val.md)预先配置;如需使用repeat模式,repeat方向、次数与步长需通过`asc_set_l13d_rpt_b`预先配置。 | 33 | +3D img2col搬运模式下,Feature Map的属性描述(fm_w、fm_h及四周padding)需通过[asc_set_l13d_fmatrix_b](../asc_set_l13d_fmatrix_b.md)预先配置,填充值与填充模式需通过[asc_set_l12l0b_3d_padding](../asc_set_l12l0_padding_val.md)预先配置;如需使用repeat模式,repeat方向、次数与步长需通过`asc_set_l13d_rpt_b`预先配置。 |
| 34 | 34 | ||
| 35 | 本接口仅在AIC上执行有效。 | 35 | 本接口仅在AIC上执行有效。 |
| 36 | 36 | ||
| @@ -121,7 +121,7 @@ __aicore__ inline void asc_copy_l12l0b(__cb__ half* dst, | |||
| 121 | | `filter_size_w` | 输入 | 是否在`filter_w`的基础上将卷积核width增加256个元素。<br> • `true`:增加;<br> • `false`:不增加。 | | 121 | | `filter_size_w` | 输入 | 是否在`filter_w`的基础上将卷积核width增加256个元素。<br> • `true`:增加;<br> • `false`:不增加。 | |
| 122 | | `filter_size_h` | 输入 | 是否在`filter_h`的基础上将卷积核height增加256个元素。<br> • `true`:增加;<br> • `false`:不增加。 | | 122 | | `filter_size_h` | 输入 | 是否在`filter_h`的基础上将卷积核height增加256个元素。<br> • `true`:增加;<br> • `false`:不增加。 | |
| 123 | | `transpose` | 输入 | 是否启用转置功能,本接口对写入L0B Buffer的分形矩阵自动执行转置,该参数被硬件忽略,传入true或false不影响转置行为。 | | 123 | | `transpose` | 输入 | 是否启用转置功能,本接口对写入L0B Buffer的分形矩阵自动执行转置,该参数被硬件忽略,传入true或false不影响转置行为。 | |
| 124 | -| `f_matrix_ctrl` | 输入 | 3D数据搬运Feature Map的属性描述寄存器组选择位,一般设置为`false`。<br> • `true`:从右矩阵中获取Feature Map的属性描述,配合[asc_set_l13d_fmatrix_b](../asc_set_l13d_fmatrix_b.md)、[asc_set_l12l0b_3d_padding](../../sys_var/asc_set_l12l0_padding_val.md)、`asc_set_l13d_rpt_b`使用;<br> • `false`:从左矩阵中获取FeatureMap的属性描述,配合[asc_set_l13d_fmatrix](../asc_set_l13d_fmatrix.md)、[asc_set_l12l0a_3d_padding](../asc_set_l13d_padding.md)、[asc_set_l13d_rpt](../asc_set_l13d_rpt.md)使用。 | | 124 | +| `f_matrix_ctrl` | 输入 | 3D数据搬运Feature Map的属性描述寄存器组选择位,一般设置为`false`。<br> • `true`:从右矩阵中获取Feature Map的属性描述,配合[asc_set_l13d_fmatrix_b](../asc_set_l13d_fmatrix_b.md)、[asc_set_l12l0b_3d_padding](../asc_set_l12l0_padding_val.md)、`asc_set_l13d_rpt_b`使用;<br> • `false`:从左矩阵中获取FeatureMap的属性描述,配合[asc_set_l13d_fmatrix](../asc_set_l13d_fmatrix.md)、[asc_set_l12l0a_3d_padding](../asc_set_l13d_padding.md)、[asc_set_l13d_rpt](../asc_set_l13d_rpt.md)使用。 | |
| 125 | | `channel_size` | 输入 | 源操作数的通道数N。<br>对于b32类型,`channel_size`除8的余数应当为0或4,最大值可取为65532。<br>对于b16类型,`channel_size`除16的余数应当为0,4或8,最大值可取为65528。<br>对于b8类型,`channel_size`除32的余数应当为0,4,8或16,最大值可取为65520。 | | 125 | | `channel_size` | 输入 | 源操作数的通道数N。<br>对于b32类型,`channel_size`除8的余数应当为0或4,最大值可取为65532。<br>对于b16类型,`channel_size`除16的余数应当为0,4或8,最大值可取为65528。<br>对于b8类型,`channel_size`除32的余数应当为0,4,8或16,最大值可取为65520。 | |
| 126 | 126 | ||
| 127 | ## 返回值说明 | 127 | ## 返回值说明 |
| @@ -146,7 +146,7 @@ PIPE_MTE1 | |||
| 146 | ### 3D img2col搬运模式约束 | 146 | ### 3D img2col搬运模式约束 |
| 147 | 147 | ||
| 148 | - 此接口必须先调用`asc_set_l13d_rpt_b`接口配置dst_stride参数,dst_stride为输出矩阵在height维度对齐后的大小。 | 148 | - 此接口必须先调用`asc_set_l13d_rpt_b`接口配置dst_stride参数,dst_stride为输出矩阵在height维度对齐后的大小。 |
| 149 | -- 此接口需要先调用配套的寄存器设置接口[asc_set_l13d_fmatrix_b](../asc_set_l13d_fmatrix_b.md)与[asc_set_l12l0b_3d_padding](../../sys_var/asc_set_l12l0_padding_val.md)预先配置feature map描述、填充值与填充模式,否则会导致搬运接口不符合预期。如需使用repeat模式,须先调用`asc_set_l13d_rpt_b`接口配置repeat方向、次数与步长。 | 149 | +- 此接口需要先调用配套的寄存器设置接口[asc_set_l13d_fmatrix_b](../asc_set_l13d_fmatrix_b.md)与[asc_set_l12l0b_3d_padding](../asc_set_l12l0_padding_val.md)预先配置feature map描述、填充值与填充模式,否则会导致搬运接口不符合预期。如需使用repeat模式,须先调用`asc_set_l13d_rpt_b`接口配置repeat方向、次数与步长。 |
| 150 | - 3D格式搬运到L0B Buffer时会自动进行转置,transpose参数无效,不支持非转置场景。 | 150 | - 3D格式搬运到L0B Buffer时会自动进行转置,transpose参数无效,不支持非转置场景。 |
| 151 | - `k_extension`、`m_extension`或`channel_size`为`0`,`filter_w`为`0`且`filter_size_w`为`false`,或`filter_h`为`0`且`filter_size_h`为`false`时不执行搬运,本接口被视为NOP(空操作)。 | 151 | - `k_extension`、`m_extension`或`channel_size`为`0`,`filter_w`为`0`且`filter_size_w`为`false`,或`filter_h`为`0`且`filter_size_h`为`false`时不执行搬运,本接口被视为NOP(空操作)。 |
| 152 | - 对于b32类型,`channel_size`除8的余数应当为0或4,最大值可取为65532。对于b16类型,`channel_size`除16的余数应当为0,4或8,最大值可取为65528。对于b8类型,`channel_size`除32的余数应当为0,4,8或16,最大值可取为65520。否则会导致搬运结果不符合预期。 | 152 | - 对于b32类型,`channel_size`除8的余数应当为0或4,最大值可取为65532。对于b16类型,`channel_size`除16的余数应当为0,4或8,最大值可取为65528。对于b8类型,`channel_size`除32的余数应当为0,4,8或16,最大值可取为65520。否则会导致搬运结果不符合预期。 |
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0b/asc_copy_l12l0b_arch_2201.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b/asc_copy_l12l0b_arch_2201.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0b_mx.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b_mx.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0b_sparse.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b_sparse.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0b_trans/asc_copy_l12l0b_trans.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b_trans/asc_copy_l12l0b_trans.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0b_trans/asc_copy_l12l0b_trans_arch_2201.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b_trans/asc_copy_l12l0b_trans_arch_2201.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0b_trans/asc_copy_l12l0b_trans_arch_3510.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0b_trans/asc_copy_l12l0b_trans_arch_3510.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12l0c.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12l0c.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_copy_l12ub.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_copy_l12ub.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_fill_l0a.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_fill_l0a.md+1-1
| @@ -78,7 +78,7 @@ | |||
| 78 | | :----- | :------- | :------- | | 78 | | :----- | :------- | :------- | |
| 79 | | dst | 输出 | 目的操作数(矢量)的起始地址。 | | 79 | | dst | 输出 | 目的操作数(矢量)的起始地址。 | |
| 80 | | value | 输入 | 源操作数(标量)。 | | 80 | | value | 输入 | 源操作数(标量)。 | |
| 81 | -| config | 输入 | 使用的初始化相关参数,详细说明请参考[asc_fill_value_config](../struct/asc_fill_value_config.md)。 | | 81 | +| config | 输入 | 使用的初始化相关参数,详细说明请参考[asc_fill_value_config](../defs/union/asc_fill_value_config.md)。 | |
| 82 | 82 | ||
| 83 | ## 返回值说明 | 83 | ## 返回值说明 |
| 84 | 84 | ||
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_fill_l0b.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_fill_l0b.md+1-1
| @@ -78,7 +78,7 @@ | |||
| 78 | | :----- | :------- | :------- | | 78 | | :----- | :------- | :------- | |
| 79 | | dst | 输出 | 目的操作数(矩阵)的起始地址。 | | 79 | | dst | 输出 | 目的操作数(矩阵)的起始地址。 | |
| 80 | | value | 输入 | 源操作数(标量)。 | | 80 | | value | 输入 | 源操作数(标量)。 | |
| 81 | -| config | 输入 | 使用的初始化相关参数,详细说明请参考[asc_fill_value_config](../struct/asc_fill_value_config.md)。 | | 81 | +| config | 输入 | 使用的初始化相关参数,详细说明请参考[asc_fill_value_config](../defs/union/asc_fill_value_config.md)。 | |
| 82 | 82 | ||
| 83 | ## 返回值说明 | 83 | ## 返回值说明 |
| 84 | 84 | ||
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_fill_l1.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_fill_l1.md+2-2
| @@ -26,7 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | ## 功能说明 | 27 | ## 功能说明 |
| 28 | 28 | ||
| 29 | -将一个标量填充值写入L1 Buffer的目的地址,并将填充值广播到多个32字节分形块中,可用于L1 Buffer的内存初始化。需要通过[asc_fill_value_config](../struct/asc_fill_value_config.md)配置的重复次数、单次分形块数、相邻重复之间的间隔。 | 29 | +将一个标量填充值写入L1 Buffer的目的地址,并将填充值广播到多个32字节分形块中,可用于L1 Buffer的内存初始化。需要通过[asc_fill_value_config](../defs/union/asc_fill_value_config.md)配置的重复次数、单次分形块数、相邻重复之间的间隔。 |
| 30 | 30 | ||
| 31 | 本接口仅在AIC上执行有效。 | 31 | 本接口仅在AIC上执行有效。 |
| 32 | 32 | ||
| @@ -65,7 +65,7 @@ __aicore__ inline void asc_fill_l1(__cbuf__ half* dst, | |||
| 65 | |---|---|---| | 65 | |---|---|---| |
| 66 | | dst | 输出 | 目的操作数,目的矩阵的起始地址,存储位置为L1 Buffer,起始地址需要按照32字节对齐。 | | 66 | | dst | 输出 | 目的操作数,目的矩阵的起始地址,存储位置为L1 Buffer,起始地址需要按照32字节对齐。 | |
| 67 | | value | 输入 | 源操作数,标量填充值。| | 67 | | value | 输入 | 源操作数,标量填充值。| |
| 68 | -| config | 输入 | 填充配置的结构体[asc_fill_value_config](../struct/asc_fill_value_config.md),结构体说明见[表2](#fill_value_config_fields)。 | | 68 | +| config | 输入 | 填充配置的结构体[asc_fill_value_config](../defs/union/asc_fill_value_config.md),结构体说明见[表2](#fill_value_config_fields)。 | |
| 69 | 69 | ||
| 70 | **表2** config字段说明 <a id="fill_value_config_fields"></a> | 70 | **表2** config字段说明 <a id="fill_value_config_fields"></a> |
| 71 | 71 | ||
Rdocs/zh/api/SIMD-API/c_api/cube_compute/asc_get_l0c2gm_prequant.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_get_l0c2gm_prequant.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_compute/asc_get_l0c2gm_relu.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_get_l0c2gm_relu.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_compute/asc_get_l0c2gm_unitflag.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_get_l0c2gm_unitflag.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_load_image_to_cbuf.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_load_image_to_cbuf.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_set_gm2l1_loop1_stride.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_gm2l1_loop1_stride.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_set_gm2l1_loop2_stride.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_gm2l1_loop2_stride.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_set_gm2l1_loop_size.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_gm2l1_loop_size.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_set_gm2l1_nz_para.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_gm2l1_nz_para.md+1-1
| @@ -26,7 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | ## 功能说明 | 27 | ## 功能说明 |
| 28 | 28 | ||
| 29 | -本接口用于配置Global Memory到L1 Buffer的ND2Nz和DN2Nz搬运参数。配置写入后,由后续的[asc_copy_gm2l1_nd2nz](../cube_data_move/asc_copy_gm2l1_nd2nz/asc_copy_gm2l1_nd2nz_arch_3510.md)或[asc_copy_gm2l1_dn2nz](../cube_data_move/asc_copy_gm2l1_dn2nz.md)接口使用。 | 29 | +本接口用于配置Global Memory到L1 Buffer的ND2Nz和DN2Nz搬运参数。配置写入后,由后续的[asc_copy_gm2l1_nd2nz](asc_copy_gm2l1_nd2nz/asc_copy_gm2l1_nd2nz_arch_3510.md)或[asc_copy_gm2l1_dn2nz](asc_copy_gm2l1_dn2nz.md)接口使用。 |
| 30 | 30 | ||
| 31 | 本接口为矩阵搬入相关配置接口,仅在AIC上生效。 | 31 | 本接口为矩阵搬入相关配置接口,仅在AIC上生效。 |
| 32 | 32 | ||
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_set_gm2l1_pad.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_gm2l1_pad.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_set_l0c2gm_channel_para.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l0c2gm_channel_para.md+1-1
| @@ -26,7 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | ## 功能说明 | 27 | ## 功能说明 |
| 28 | 28 | ||
| 29 | -本接口用于在L0C Buffer搬出并执行Nz2DN格式转换时,配置源Nz矩阵中相邻行的地址偏移。配置写入后,由后续开启Nz2DN功能的[asc_copy_l0c2gm](../cube_data_move/asc_copy_l0c2gm/asc_copy_l0c2gm_arch_3510.md)、[asc_copy_l0c2l1](../cube_data_move/asc_copy_l0c2l1/asc_copy_l0c2l1_arch_3510.md)或[asc_copy_l0c2ub](../cube_data_move/asc_copy_l0c2ub.md)接口使用;未开启Nz2DN功能时,本配置不生效。 | 29 | +本接口用于在L0C Buffer搬出并执行Nz2DN格式转换时,配置源Nz矩阵中相邻行的地址偏移。配置写入后,由后续开启Nz2DN功能的[asc_copy_l0c2gm](asc_copy_l0c2gm/asc_copy_l0c2gm_arch_3510.md)、[asc_copy_l0c2l1](asc_copy_l0c2l1/asc_copy_l0c2l1_arch_3510.md)或[asc_copy_l0c2ub](asc_copy_l0c2ub.md)接口使用;未开启Nz2DN功能时,本配置不生效。 |
| 30 | 30 | ||
| 31 | 本接口为矩阵搬出相关配置接口,仅在AIC上生效。 | 31 | 本接口为矩阵搬出相关配置接口,仅在AIC上生效。 |
| 32 | 32 | ||
Rdocs/zh/api/SIMD-API/c_api/cube_compute/asc_set_l0c2gm_config.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l0c2gm_config.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_set_l0c2gm_lrelu_alpha.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l0c2gm_lrelu_alpha.md+0-0
文件重命名但无更改。
Rdocs/zh/api/SIMD-API/c_api/cube_compute/asc_set_l0c2gm_nz2nd.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l0c2gm_nz2nd.md+2-2
| @@ -26,7 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | ## 功能说明 | 27 | ## 功能说明 |
| 28 | 28 | ||
| 29 | -本接口用于在L0C Buffer搬出接口[asc_copy_l0c2gm](../cube_data_move/asc_copy_l0c2gm/asc_copy_l0c2gm_arch_3510.md)、[asc_copy_l0c2l1](../cube_data_move/asc_copy_l0c2l1/asc_copy_l0c2l1_arch_3510.md)、[asc_copy_l0c2ub](../cube_data_move/asc_copy_l0c2ub.md)启用随路Nz转ND格式功能时,配置格式转换所需的相关参数。 | 29 | +本接口用于在L0C Buffer搬出接口[asc_copy_l0c2gm](asc_copy_l0c2gm/asc_copy_l0c2gm_arch_3510.md)、[asc_copy_l0c2l1](asc_copy_l0c2l1/asc_copy_l0c2l1_arch_3510.md)、[asc_copy_l0c2ub](asc_copy_l0c2ub.md)启用随路Nz转ND格式功能时,配置格式转换所需的相关参数。 |
| 30 | 30 | ||
| 31 | 本接口为矩阵搬出相关配置接口,仅在AIC上生效。 | 31 | 本接口为矩阵搬出相关配置接口,仅在AIC上生效。 |
| 32 | 32 | ||
| @@ -59,7 +59,7 @@ PIPE_S | |||
| 59 | ## 约束说明 | 59 | ## 约束说明 |
| 60 | 60 | ||
| 61 | - 本接口仅在AIC上生效,在AIV上调用将直接返回。 | 61 | - 本接口仅在AIC上生效,在AIV上调用将直接返回。 |
H | |||
| 62 | -- 调用L0C Buffer搬出接口[asc_copy_l0c2gm](../cube_data_move/asc_copy_l0c2gm/asc_copy_l0c2gm_arch_3510.md)、[asc_copy_l0c2l1](../cube_data_move/asc_copy_l0c2l1/asc_copy_l0c2l1_arch_3510.md)、[asc_copy_l0c2ub](../cube_data_move/asc_copy_l0c2ub.md)并且需要进行随路Nz转ND格式之前,必须先调用本接口配置格式转换参数。 | 62 | +- 调用L0C Buffer搬出接口[asc_copy_l0c2gm](asc_copy_l0c2gm/asc_copy_l0c2gm_arch_3510.md)、[asc_copy_l0c2l1](asc_copy_l0c2l1/asc_copy_l0c2l1_arch_3510.md)、[asc_copy_l0c2ub](asc_copy_l0c2ub.md)并且需要进行随路Nz转ND格式之前,必须先调用本接口配置格式转换参数。 |
| 63 | 63 | ||
| 64 | <!-- npu="950" id8 --> | 64 | <!-- npu="950" id8 --> |
| 65 | ## 调用示例 | 65 | ## 调用示例 |
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_set_l0c2gm_quant_post.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l0c2gm_quant_post.md+1-1
| @@ -27,7 +27,7 @@ | |||
| 27 | ## 功能说明 | 27 | ## 功能说明 |
| 28 | 28 | ||
| 29 | 对QUANT_POST寄存器中的值进行设置, QUANT_POST是一个64bit的寄存器,存储Fixpipe后处理阶段量化信息。 | 29 | 对QUANT_POST寄存器中的值进行设置, QUANT_POST是一个64bit的寄存器,存储Fixpipe后处理阶段量化信息。 |
| 30 | -其中各bit含义如下,其中各种量化模式的说明可见[asc_copy_l0c2l1](../cube_data_move/asc_copy_l0c2l1/asc_copy_l0c2l1_arch_3510.md)中对各种量化模式的说明: | 30 | +其中各bit含义如下,其中各种量化模式的说明可见[asc_copy_l0c2l1](asc_copy_l0c2l1/asc_copy_l0c2l1_arch_3510.md)中对各种量化模式的说明: |
| 31 | 31 | ||
| 32 | **表1** QUANT_POST寄存器比特位说明 | 32 | **表1** QUANT_POST寄存器比特位说明 |
| 33 | 33 | ||
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_set_l0c2gm_relu_alpha.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l0c2gm_relu_alpha.md+0-0
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_set_l0c_copy_params.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l0c_copy_params.md+0-0
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_set_l0c_copy_prequant.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l0c_copy_prequant.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_set_l12l0_padding_val.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l12l0_padding_val.md+0-0
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_set_l13d_fmatrix.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l13d_fmatrix.md+1-1
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_set_l13d_fmatrix_b.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l13d_fmatrix_b.md+2-2
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_set_l13d_padding.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l13d_padding.md+0-0
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_set_l13d_rpt.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l13d_rpt.md+2-2
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/asc_set_l13d_size.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l13d_size.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_set_l3d_rpt_b.md→docs/zh/api/SIMD-API/c_api/cube_datamove/asc_set_l3d_rpt_b.md+2-2
Rdocs/zh/api/SIMD-API/c_api/cube_data_move/cube_data_move.md→docs/zh/api/SIMD-API/c_api/cube_datamove/cube_datamove.md+44-53
Rdocs/zh/api/SIMD-API/c_api/enum/asc_hf32_round_mode.md→docs/zh/api/SIMD-API/c_api/defs/enum/asc_hf32_round_mode.md+1-1
Rdocs/zh/api/SIMD-API/c_api/enum/asc_load_l2_cache_mode.md→docs/zh/api/SIMD-API/c_api/defs/enum/asc_load_l2_cache_mode.md+1-1
Rdocs/zh/api/SIMD-API/c_api/enum/asc_store_l2_cache_mode.md→docs/zh/api/SIMD-API/c_api/defs/enum/asc_store_l2_cache_mode.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/reg_data_types/data_type_definition.md→docs/zh/api/SIMD-API/c_api/defs/type/data_type_definition.md+7-7
Rdocs/zh/api/SIMD-API/c_api/struct/asc_fill_value_config.md→docs/zh/api/SIMD-API/c_api/defs/union/asc_fill_value_config.md+1-1
Rdocs/zh/api/SIMD-API/c_api/struct/asc_l13d_fmatrix_config.md→docs/zh/api/SIMD-API/c_api/defs/union/asc_l13d_fmatrix_config.md+1-1
Rdocs/zh/api/SIMD-API/c_api/struct/asc_load3d_v2_config.md→docs/zh/api/SIMD-API/c_api/defs/union/asc_load3d_v2_config.md+0-0
Rdocs/zh/api/SIMD-API/c_api/struct/asc_ndim_pad_count_config.md→docs/zh/api/SIMD-API/c_api/defs/union/asc_ndim_pad_count_config.md+1-1
Rdocs/zh/api/SIMD-API/c_api/struct/asc_store_atomic_config.md→docs/zh/api/SIMD-API/c_api/defs/union/asc_store_atomic_config.md+1-1
Rdocs/zh/api/SIMD-API/c_api/struct/data_structures.md→docs/zh/api/SIMD-API/c_api/defs/union/union.md+1-5
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_pipe_idle_slot_count.md→docs/zh/api/SIMD-API/c_api/experimental/asc_get_pipe_idle_slot_count.md+0-0
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_gather.md→docs/zh/api/SIMD-API/c_api/reg_compute/gather/asc_gather.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_gather_datablock.md→docs/zh/api/SIMD-API/c_api/reg_compute/gather/asc_gather_datablock.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_load.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_load.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign.md+6-6
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_brc_datablock.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_brc_datablock.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_brc_datablock_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_brc_datablock_postupdate.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_brc_elem.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_brc_elem.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_brc_elem2datablock.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_brc_elem2datablock.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_brc_elem2datablock_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_brc_elem2datablock_postupdate.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_brc_elem_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_brc_elem_postupdate.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_deintlv.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_deintlv.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_deintlv_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_deintlv_postupdate.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_downsample.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_downsample.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_downsample_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_downsample_postupdate.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_postupdate.md+4-4
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_unpack.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_unpack.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_unpack4.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_unpack4.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_unpack4_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_unpack4_postupdate.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_unpack_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_unpack_postupdate.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_upsample.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_upsample.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadalign_upsample_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadalign_upsample_postupdate.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadunalign.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadunalign.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadunalign_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadunalign_postupdate.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_loadunalign_pre.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/asc_loadunalign_pre.md+4-4
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/reg_load.md→docs/zh/api/SIMD-API/c_api/reg_compute/load/load.md+11-26
Rdocs/zh/api/SIMD-API/c_api/reg/reg_data_types/asc_create_iter_reg_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_addr_reg/asc_create_iter_reg_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/reg_data_types/asc_update_addr_reg.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_addr_reg/asc_update_addr_reg.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_abs.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_abs.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_add.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_add.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_add_scalar.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_add_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_addc.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_addc.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_div.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_div.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_exp.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_exp.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_ln.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_ln.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_max.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_max.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_max_scalar.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_max_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_min.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_min.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_min_scalar.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_min_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_mul.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_mul.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_mul_scalar.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_mul_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_mull.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_mull.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_neg.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_neg.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_sqrt.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_sqrt.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_sub.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_sub.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_subc.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_arith/asc_subc.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_fill/asc_duplicate.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_broadcast/asc_duplicate.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_fill/asc_duplicate_highest.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_broadcast/asc_duplicate_highest.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_fill/asc_duplicate_highest_merge.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_broadcast/asc_duplicate_highest_merge.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_fill/asc_duplicate_merge.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_broadcast/asc_duplicate_merge.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_fill/asc_duplicate_scalar.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_broadcast/asc_duplicate_scalar.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_fill/asc_duplicate_scalar_merge.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_broadcast/asc_duplicate_scalar_merge.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_eq.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_compare/asc_eq.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_eq_scalar.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_compare/asc_eq_scalar.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_ge.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_compare/asc_ge.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_ge_scalar.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_compare/asc_ge_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_gt.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_compare/asc_gt.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_gt_scalar.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_compare/asc_gt_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_le.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_compare/asc_le.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_le_scalar.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_compare/asc_le_scalar.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_lt.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_compare/asc_lt.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_lt_scalar.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_compare/asc_lt_scalar.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_ne.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_compare/asc_ne.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_ne_scalar.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_compare/asc_ne_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_bfloat162e1m2x2_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_bfloat162e1m2x2_deprecated.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_bfloat162e2m1x2_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_bfloat162e2m1x2_deprecated.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_bfloat162float.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_bfloat162float.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_bfloat162half.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_bfloat162half.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_bfloat162int32.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_bfloat162int32.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_ceil.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_ceil.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_e1m2x22bfloat16_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_e1m2x22bfloat16_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_e2m1x22bfloat16_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_e2m1x22bfloat16_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_e4m32float_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_e4m32float_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_e5m22float_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_e5m22float_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_float2bfloat16.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_float2bfloat16.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_float2e4m3_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_float2e4m3_deprecated.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_float2e5m2_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_float2e5m2_deprecated.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_float2half.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_float2half.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_float2hif8_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_float2hif8_deprecated.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_float2int16.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_float2int16.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_float2int32.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_float2int32.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_float2int64.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_float2int64.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_floor.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_floor.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_half2bfloat16.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_half2bfloat16.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_half2float.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_half2float.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_half2hif8.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_half2hif8.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_half2int16.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_half2int16.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_half2int32.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_half2int32.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_half2int4x2_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_half2int4x2_deprecated.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_half2int8.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_half2int8.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_half2uint8.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_half2uint8.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_hif82float_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_hif82float_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_hif82half.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_hif82half.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int162float.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int162float.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int162half.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int162half.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int162int32.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int162int32.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int162uint32.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int162uint32.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int162uint8.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int162uint8.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int322float.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int322float.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int322int16.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int322int16.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int322int64.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int322int64.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int322uint16.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int322uint16.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int322uint8_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int322uint8_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int4x22bfloat16_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int4x22bfloat16_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int4x22half_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int4x22half_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int4x22int16_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int4x22int16_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int642float.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int642float.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int642int32.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int642int32.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int82half.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int82half.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int82int16.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int82int16.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_int82int32_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_int82int32_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_rint.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_rint.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_round.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_round.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_trunc.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_trunc.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_uint162uint32.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_uint162uint32.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_uint162uint8.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_uint162uint8.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_uint322int16.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_uint322int16.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_uint322uint16.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_uint322uint16.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_uint322uint8_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_uint322uint8_deprecated.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_uint82half.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_uint82half.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_uint82uint16.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_uint82uint16.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/asc_uint82uint32_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/asc_uint82uint32_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_type_convert/rounding_mode.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_convert/rounding_mode.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/reg_load/asc_copy.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_copy/asc_copy.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/compound_compute/asc_abs_sub.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_fused/asc_abs_sub.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/compound_compute/asc_axpy.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_fused/asc_axpy.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/compound_compute/asc_exp_sub_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_fused/asc_exp_sub_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/compound_compute/asc_fma.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_fused/asc_fma.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_leakyrelu.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_fused/asc_leakyrelu.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/compound_compute/asc_madd.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_fused/asc_madd.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/compound_compute/asc_mula.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_fused/asc_mula.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_muls_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_fused/asc_muls_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_prelu.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_fused/asc_prelu.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/arithmetic_compute/asc_relu.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_fused/asc_relu.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/histogram_compute/asc_cumulative_histogram.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_histogram/asc_cumulative_histogram.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/histogram_compute/asc_frequency_histogram.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_histogram/asc_frequency_histogram.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/index_operate/asc_arange.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_index/asc_arange.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/index_operate/index_operate.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_index/reg_index.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/logic_compute/asc_and.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_logic/asc_and.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/logic_compute/asc_not.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_logic/asc_not.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/logic_compute/asc_or.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_logic/asc_or.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/logic_compute/asc_shiftleft.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_logic/asc_shiftleft.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/logic_compute/asc_shiftleft_scalar.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_logic/asc_shiftleft_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/logic_compute/asc_shiftright.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_logic/asc_shiftright.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/logic_compute/asc_shiftright_scalar.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_logic/asc_shiftright_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/logic_compute/asc_xor.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_logic/asc_xor.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/reg_data_types/asc_create_mask.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_mask/asc_create_mask.md+0-0
Rdocs/zh/api/SIMD-API/c_api/reg/reg_data_types/asc_get_mask_spr.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_mask/asc_get_mask_spr.md+0-0
Rdocs/zh/api/SIMD-API/c_api/reg/reg_data_types/asc_update_mask.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_mask/asc_update_mask.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/system_variables_access/asc_clear_ar_spr_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_clear_ar_spr_deprecated.md+2-3
Rdocs/zh/api/SIMD-API/c_api/reg/data_rearrange/asc_deintlv.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_deintlv.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_rearrange/asc_intlv.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_intlv.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_compress/asc_pack_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_pack_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_compress/asc_pack_to_high.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_pack_to_high.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_compress/asc_pack_to_low.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_pack_to_low.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_select.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_select.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_squeeze.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_squeeze.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_squeeze_and_storeunalign.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_squeeze_and_storeunalign.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_squeeze_and_storeunalign_finalize.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_squeeze_and_storeunalign_finalize.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/system_variables_access/asc_squeeze_and_storeunalign_init.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_squeeze_and_storeunalign_init.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_squeeze_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_squeeze_deprecated.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/compare_and_select/asc_squeeze_with_status_deprecated.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_squeeze_with_status_deprecated.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/data_compress/asc_unpack.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_unpack.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/data_compress/asc_unsqueeze.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_permute_sel/asc_unsqueeze.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/reduce_compute/asc_pair_reduce_sum.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_reduce/asc_pair_reduce_sum.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/reduce_compute/asc_reduce_max.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_reduce/asc_reduce_max.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/reduce_compute/asc_reduce_max_datablock.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_reduce/asc_reduce_max_datablock.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/reduce_compute/asc_reduce_min.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_reduce/asc_reduce_min.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/reduce_compute/asc_reduce_min_datablock.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_reduce/asc_reduce_min_datablock.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/reduce_compute/asc_reduce_sum.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_reduce/asc_reduce_sum.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/reduce_compute/asc_reduce_sum_datablock.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_reduce/asc_reduce_sum_datablock.md+1-1
Rdocs/zh/api/SIMD-API/c_api/reg/sync_control/asc_mem_bar.md→docs/zh/api/SIMD-API/c_api/reg_compute/reg_sync/asc_mem_bar.md+4-4
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_scatter.md→docs/zh/api/SIMD-API/c_api/reg_compute/scatter/asc_scatter.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_store.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/asc_store.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_storealign.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/asc_storealign.md+4-4
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_storealign_1st.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/asc_storealign_1st.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_storealign_1st_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/asc_storealign_1st_postupdate.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_storealign_intlv.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/asc_storealign_intlv.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_storealign_pack.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/asc_storealign_pack.md+4-4
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_storealign_pack_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/asc_storealign_pack_postupdate.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_storealign_pack_quarter.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/asc_storealign_pack_quarter.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_storealign_pack_quarter_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/asc_storealign_pack_quarter_postupdate.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_storealign_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/asc_storealign_postupdate.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_storeunalign.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/asc_storeunalign.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_storeunalign_post.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/asc_storeunalign_post.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_storeunalign_post_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/asc_storeunalign_post_postupdate.md+2-2
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/asc_storeunalign_postupdate.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/asc_storeunalign_postupdate.md+3-3
Rdocs/zh/api/SIMD-API/c_api/reg/reg_store/reg_store.md→docs/zh/api/SIMD-API/c_api/reg_compute/store/store.md+15-19
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_clear_nthbit.md→docs/zh/api/SIMD-API/c_api/scalar_compute/scalar_bit/asc_clear_nthbit.md+0-0
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_clz.md→docs/zh/api/SIMD-API/c_api/scalar_compute/scalar_bit/asc_clz.md+1-1
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_ffs.md→docs/zh/api/SIMD-API/c_api/scalar_compute/scalar_bit/asc_ffs.md+1-1
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_ffz.md→docs/zh/api/SIMD-API/c_api/scalar_compute/scalar_bit/asc_ffz.md+1-1
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_popc.md→docs/zh/api/SIMD-API/c_api/scalar_compute/scalar_bit/asc_popc.md+1-1
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_set_nthbit.md→docs/zh/api/SIMD-API/c_api/scalar_compute/scalar_bit/asc_set_nthbit.md+1-1
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_sflbits.md→docs/zh/api/SIMD-API/c_api/scalar_compute/scalar_bit/asc_sflbits.md+1-1
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_zero_bits_cnt.md→docs/zh/api/SIMD-API/c_api/scalar_compute/scalar_bit/asc_zero_bits_cnt.md+1-1
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_float2int32.md→docs/zh/api/SIMD-API/c_api/scalar_compute/scalar_convert/asc_float2int32.md+3-3
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_load_dev.md→docs/zh/api/SIMD-API/c_api/scalar_compute/scalar_load/asc_load_dev.md+0-0
Rdocs/zh/api/SIMD-API/c_api/scalar_compute/asc_store_dev.md→docs/zh/api/SIMD-API/c_api/scalar_compute/scalar_store/asc_store_dev.md+2-2
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_ar_spr_deprecated.md→docs/zh/api/SIMD-API/c_api/spr/asc_get_ar_spr_deprecated.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_ctrl.md→docs/zh/api/SIMD-API/c_api/spr/asc_get_ctrl.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_squeeze_status.md→docs/zh/api/SIMD-API/c_api/spr/asc_get_squeeze_status.md+1-1
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_set_ctrl.md→docs/zh/api/SIMD-API/c_api/spr/asc_set_ctrl.md+0-0
Rdocs/zh/api/SIMD-API/c_api/misc/asc_init.md→docs/zh/api/SIMD-API/c_api/utils/sys_init/asc_init.md+1-1
Rdocs/zh/api/SIMD-API/c_api/misc/other_operations.md→docs/zh/api/SIMD-API/c_api/utils/sys_init/sys_init.md+1-2
Rdocs/zh/api/SIMD-API/c_api/misc/asc_nop.md→docs/zh/api/SIMD-API/c_api/utils/sys_misc/asc_nop.md+2-2
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_arch_ver.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/asc_get_arch_ver.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_core_id.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/asc_get_core_id.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_ffts_base_addr.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/asc_get_ffts_base_addr.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_phy_buf_addr.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/asc_get_phy_buf_addr.md+1-1
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_phy_stack_base.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/asc_get_phy_stack_base.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_program_counter.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/asc_get_program_counter.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_smmu_tag_version.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/asc_get_smmu_tag_version.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_status.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/asc_get_status.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_sub_block_id.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/asc_get_sub_block_id.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_sub_block_num.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/asc_get_sub_block_num.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_sys_virtual_base.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/asc_get_sys_virtual_base.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_system_cycle.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/asc_get_system_cycle.md+1-1
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_get_vf_len.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/asc_get_vf_len.md+0-0
Rdocs/zh/api/SIMD-API/c_api/sys_var/asc_set_ffts_base_addr.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/asc_set_ffts_base_addr.md+2-2
Rdocs/zh/api/SIMD-API/c_api/sys_var/system_variables.md→docs/zh/api/SIMD-API/c_api/utils/sys_var/sys_var.md+3-36
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_abs.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_abs.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_add.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_add.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_add_scalar.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_add_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_div.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_div.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_exp.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_exp.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_log.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_log.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_max.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_max.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_max_scalar.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_max_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_min.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_min.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_min_scalar.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_min_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_mul.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_mul.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_mul_scalar.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_mul_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_rcp.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_rcp.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_rsqrt.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_rsqrt.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_sqrt.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_sqrt.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_sub.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_sub.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_sub_scalar.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_arith/asc_sub_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_brcb.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_broadcast/asc_brcb.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_duplicate.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_broadcast/asc_duplicate.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_eq.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_compare/asc_eq.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_eq_scalar.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_compare/asc_eq_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_ge.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_compare/asc_ge.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_ge_scalar.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_compare/asc_ge_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_get_cmp_mask.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_compare/asc_get_cmp_mask.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_gt.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_compare/asc_gt.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_gt_scalar.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_compare/asc_gt_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_le.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_compare/asc_le.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_le_scalar.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_compare/asc_le_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_lt.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_compare/asc_lt.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_lt_scalar.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_compare/asc_lt_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_ne.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_compare/asc_ne.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_ne_scalar.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_compare/asc_ne_scalar.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_set_cmp_mask.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_compare/asc_set_cmp_mask.md+2-2
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_bfloat162float.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_bfloat162float.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_bfloat162int32.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_bfloat162int32.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_float2bfloat16.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_float2bfloat16.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_float2float.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_float2float.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_float2half.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_float2half.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_float2int16.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_float2int16.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_float2int32.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_float2int32.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_float2int64.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_float2int64.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_half2float.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_half2float.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_half2int16.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_half2int16.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_half2int32.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_half2int32.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_half2int4.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_half2int4.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_half2int8.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_half2int8.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_half2uint8.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_half2uint8.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_int162float.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_int162float.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_int162half.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_int162half.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_int322float.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_int322float.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_int322int16.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_int322int16.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_int322int64.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_int322int64.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_int42half.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_int42half.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_int642float.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_int642float.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_int642int32.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_int642int32.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_int82half.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_int82half.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_uint82half.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_convert/asc_uint82half.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_add_relu.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_fused/asc_add_relu.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_axpy.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_fused/asc_axpy.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_deq_int162b8.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_fused/asc_deq_int162b8.md+3-3
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_deq_int322half.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_fused/asc_deq_int322half.md+2-2
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_fma.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_fused/asc_fma.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_leakyrelu.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_fused/asc_leakyrelu.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_mul_add.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_fused/asc_mul_add.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_mul_add_relu.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_fused/asc_mul_add_relu.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_mul_cast_half2int8.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_fused/asc_mul_cast_half2int8.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_mul_cast_half2uint8.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_fused/asc_mul_cast_half2uint8.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_relu.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_fused/asc_relu.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_set_deq_scale.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_fused/asc_set_deq_scale.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_sub_relu.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_fused/asc_sub_relu.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_vdeq_int162b8.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_fused/asc_vdeq_int162b8.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_gather.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_gather/asc_gather.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_gather_datablock.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_gather/asc_gather_datablock.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_and.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_logic/asc_and.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_not.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_logic/asc_not.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_or.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_logic/asc_or.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_shiftleft.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_logic/asc_shiftleft.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_shiftright.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_logic/asc_shiftright.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_set_mask_count.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_mask_config/asc_set_mask_count.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_set_mask_norm.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_mask_config/asc_set_mask_norm.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_set_vector_mask.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_mask_config/asc_set_vector_mask.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_select.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_permute_sel/asc_select.md+3-3
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_set_va_reg.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_permute_sel/asc_set_va_reg.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_squeeze.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_permute_sel/asc_squeeze.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_transpose.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_permute_sel/asc_transpose.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_transto5hd.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_permute_sel/asc_transto5hd.md+8-8
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_datablock_reduce_max.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_reduce/asc_datablock_reduce_max.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_datablock_reduce_min.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_reduce/asc_datablock_reduce_min.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_datablock_reduce_sum.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_reduce/asc_datablock_reduce_sum.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_get_reduce_max_cnt.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_reduce/asc_get_reduce_max_cnt.md+3-3
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_get_reduce_min_cnt.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_reduce/asc_get_reduce_min_cnt.md+3-3
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_get_rsvd_count.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_reduce/asc_get_rsvd_count.md+4-4
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_pair_reduce_sum.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_reduce/asc_pair_reduce_sum.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_reduce.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_reduce/asc_reduce.md+2-2
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_repeat_reduce_max.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_reduce/asc_repeat_reduce_max.md+2-2
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_repeat_reduce_min.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_reduce/asc_repeat_reduce_min.md+2-2
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_repeat_reduce_sum.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_reduce/asc_repeat_reduce_sum.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_bitsort.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_sort/asc_bitsort.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_get_vms4_sr.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_sort/asc_get_vms4_sr.md+3-3
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_mrgsort4.md→docs/zh/api/SIMD-API/c_api/vector_compute/vector_sort/asc_mrgsort4.md+3-3
Rdocs/zh/api/SIMD-API/c_api/vector_compute/asc_copy.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_copy_gm2ub/asc_copy_gm2ub.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy_gm2ub/asc_copy_gm2ub.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_copy_gm2ub/asc_copy_gm2ub_arch_2201.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy_gm2ub/asc_copy_gm2ub_arch_2201.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_copy_gm2ub/asc_copy_gm2ub_arch_3510.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy_gm2ub/asc_copy_gm2ub_arch_3510.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_copy_gm2ub_align/asc_copy_gm2ub_align.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy_gm2ub_align/asc_copy_gm2ub_align.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_copy_gm2ub_align/asc_copy_gm2ub_align_arch_2201.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy_gm2ub_align/asc_copy_gm2ub_align_arch_2201.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_copy_gm2ub_align/asc_copy_gm2ub_align_arch_3510.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy_gm2ub_align/asc_copy_gm2ub_align_arch_3510.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_copy_ub2gm/asc_copy_ub2gm.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy_ub2gm/asc_copy_ub2gm.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_copy_ub2gm/asc_copy_ub2gm_arch_2201.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy_ub2gm/asc_copy_ub2gm_arch_2201.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_copy_ub2gm/asc_copy_ub2gm_arch_3510.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy_ub2gm/asc_copy_ub2gm_arch_3510.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_copy_ub2gm_align/asc_copy_ub2gm_align.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy_ub2gm_align/asc_copy_ub2gm_align.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_copy_ub2gm_align/asc_copy_ub2gm_align_arch_2201.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy_ub2gm_align/asc_copy_ub2gm_align_arch_2201.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_copy_ub2gm_align/asc_copy_ub2gm_align_arch_3510.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy_ub2gm_align/asc_copy_ub2gm_align_arch_3510.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_copy_ub2l1.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy_ub2l1.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_copy_ub2ub.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_copy_ub2ub.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_ndim_copy_gm2ub.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_ndim_copy_gm2ub.md+6-6
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_set_copy_pad_val.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_set_copy_pad_val.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_set_gm2ub_loop1_stride.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_set_gm2ub_loop1_stride.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_set_gm2ub_loop2_stride.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_set_gm2ub_loop2_stride.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_set_gm2ub_loop_size.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_set_gm2ub_loop_size.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_set_gm2ub_pad_deprecated.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_set_gm2ub_pad_deprecated.md+1-1
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_set_ndim_loop_stride.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_set_ndim_loop_stride.md+2-2
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_set_ndim_pad_count.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_set_ndim_pad_count.md+3-3
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_set_ndim_pad_value.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_set_ndim_pad_value.md+2-2
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_set_ub2gm_loop1_stride.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_set_ub2gm_loop1_stride.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_set_ub2gm_loop2_stride.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_set_ub2gm_loop2_stride.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/asc_set_ub2gm_loop_size.md→docs/zh/api/SIMD-API/c_api/vector_datamove/asc_set_ub2gm_loop_size.md+0-0
Rdocs/zh/api/SIMD-API/c_api/vector_data_move/vector_data_move.md→docs/zh/api/SIMD-API/c_api/vector_datamove/vector_datamove.md+15-23
这个接口应该在cube datamove 不应该在compute