CANN/pyasc带转置数据加载API文档
asc.language.basic.load_data_with_transpose【免费下载链接】pyasc本项目为Python用户提供算子编程接口支持在昇腾AI处理器上加速计算接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyascasc.language.basic.load_data_with_transpose(dst: LocalTensor, src: LocalTensor, params: LoadData2dTransposeParams) → Noneasc.language.basic.load_data_with_transpose(dst: LocalTensor, src: LocalTensor, params: LoadData2dTransposeParamsV2) → None该接口实现带转置的2D格式数据从A1/B1到A2/B2的加载。对应的Ascend C函数原型template typename T __aicore__ inline void LoadDataWithTranspose(const LocalTensorT dst, const LocalTensorT src, const LoadData2dTransposeParams loadDataParams)template typename T __aicore__ inline void LoadDataWithTranspose(const LocalTensorT dst, const LocalTensorT src, const LoadData2dTransposeParamsV2 loadDataParams)参数说明dst目的操作数类型为 LocalTensor。用于接收转置后的二维数据。存储位置需属于 VECIN / VECCALC / VECOUT 中的一种。起始地址需满足 32 字节对齐要求。src源操作数类型为 LocalTensor。作为 2D 输入块的提供者。仅支持 Local → LocalA1/B1 → A2/B2不支持 GlobalTensor。数据类型必须与 dst 一致。params二维转置加载参数类型为 LoadData2dTransposeParams 或 LoadData2dTransposeParamsV2。LoadData2dTransposeParams 结构体start_index方块矩阵ID搬运起始位置为源操作数中第几个方块矩阵0 为源操作数中第1个方块矩阵。取值范围start_index∈[0, 65535] 。默认为0。repeat_times迭代次数取值范围repeat_times∈[0, 255]。默认为0。src_stride相邻迭代间源操作数前一个分形与后一个分形起始地址的间隔。这里的单位实际上是拼接后的方块矩阵的大小。取值范围src_stride∈[0, 65535]。默认为0。dst_gap相邻迭代间目的操作数前一个迭代第一个分形的结束地址到下一个迭代第一个分形起始地址的间隔单位512B。取值范围dst_gap∈[0, 65535]。默认为0。dst_frac_gap每个迭代内目的操作数转置前一个分形结束地址与后一个分形起始地址的间隔单位512B仅在数据类型为float/int32_t/uint32_t/uint8_t/int8_t/int4b_t时有效。取值范围dst_frac_gap∈[0, 65535]。默认为0。addr_mode预留参数LoadData2dTransposeParamsV2 结构体start_index方块矩阵ID搬运起始位置为源操作数中第几个方块矩阵0 为源操作数中第1个方块矩阵。取值范围start_index∈[0, 65535] 。默认为0。repeat_times迭代次数取值范围repeat_times∈[0, 255]。默认为0。src_stride源操作数步长取值范围src_stride∈[0, 65535]。默认为0。dst_gap目的操作数间隔取值范围dst_gap∈[0, 65535]。默认为0。dst_frac_gap分形间隔取值范围dst_frac_gap∈[0, 65535]。默认为0。src_frac_gap源分形间隔取值范围src_frac_gap∈[0, 65535]。默认为0。addr_mode地址模式取值范围addr_mode∈[0, 255]。默认为0。约束说明repeatTimes 为 0 时表示不执行搬运操作。开发者需要保证目的操作数转置后的分形没有重叠。操作数地址对齐要求请参见 《Ascend C算子开发接口》 中的“通用说明和约束-通用地址对齐约束”。repeat_times 为 0 时表示不执行搬运操作。开发者需要保证目的操作数转置后的分形没有重叠。操作数地址对齐要求请参见 《Ascend C算子开发接口》 中的“通用说明和约束-通用地址对齐约束”。调用示例调用示例V1版本asc.jit def kernel_load_data_with_transpose(x: asc.GlobalAddress) - None: x_local asc.LocalTensor(dtypeasc.float16, posasc.TPosition.VECIN, addr0, tile_size512) y_local asc.LocalTensor(dtypeasc.float16, posasc.TPosition.VECOUT, addr0, tile_size512) params asc.LoadData2dTransposeParams(0, 4, 0, 0, 0, 0) asc.load_data_with_transpose(y_local, x_local, params)调用示例V2版本asc.jit def kernel_load_data_with_transpose_v2(x: asc.GlobalAddress) - None: x_local asc.LocalTensor(dtypeasc.float16, posasc.TPosition.VECIN, addr0, tile_size512) y_local asc.LocalTensor(dtypeasc.float16, posasc.TPosition.VECOUT, addr0, tile_size512) params_v2 asc.LoadData2dTransposeParamsV2(0, 4, 0, 0, 0, 0, 0) asc.load_data_with_transpose(y_local, x_local, params_v2)【免费下载链接】pyasc本项目为Python用户提供算子编程接口支持在昇腾AI处理器上加速计算接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyasc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考