您好,感谢您对反馈,针对以上问题,回复如下:
问题1:
Load不支持RegTraitNumTwo,,是因为Load内部封装了连续非对齐搬入(LoadUnAlign)的普通搬运接口,该接口不支持RegTraitNumTwo:
template <typename T>
__simd_callee__ inline void LoadUnAlignPre(UnalignRegForLoad& ureg, __ubuf__ T* srcAddr)
template <typename T = DefaultType, typename U>
__simd_callee__ inline void LoadUnAlign(U& dstReg, UnalignRegForLoad& ureg, __ubuf__ T* srcAddr)
Store支持RegTraitNumTwo,是因为Store内部封装了非连续对齐搬出(StoreAlign)的扩展搬运接口,该接口支持RegTraitNumTwo:
template <typename T = DefaultType, PostLiteral postMode = PostLiteral::POST_MODE_UPDATE, typename U>
__simd_callee__ inline void StoreUnAlign(__ubuf__ T*& dstAddr, U& srcReg, UnalignRegForStore& ureg, uint32_t postUpdateStride)
template <typename T, PostLiteral postMode = PostLiteral::POST_MODE_UPDATE>
__simd_callee__ inline void StoreUnAlignPost(__ubuf__ T*& dstAddr, UnalignRegForStore& ureg, int32_t postUpdateStride)
问题2:
超出后编译器将报错,近期会在docs/zh/api/SIMD-API/基础API/Reg矢量计算/寄存器数据类型/UnalignRegForLoad-UnalignRegForStore.md中添加此信息。


您好,感谢您对反馈,针对以上问题,回复如下:
问题1:
Load不支持RegTraitNumTwo,,是因为Load内部封装了连续非对齐搬入(LoadUnAlign)的普通搬运接口,该接口不支持RegTraitNumTwo:template <typename T> __simd_callee__ inline void LoadUnAlignPre(UnalignRegForLoad& ureg, __ubuf__ T* srcAddr) template <typename T = DefaultType, typename U> __simd_callee__ inline void LoadUnAlign(U& dstReg, UnalignRegForLoad& ureg, __ubuf__ T* srcAddr)Store支持RegTraitNumTwo,是因为Store内部封装了非连续对齐搬出(StoreAlign)的扩展搬运接口,该接口支持RegTraitNumTwo:
template <typename T = DefaultType, PostLiteral postMode = PostLiteral::POST_MODE_UPDATE, typename U> __simd_callee__ inline void StoreUnAlign(__ubuf__ T*& dstAddr, U& srcReg, UnalignRegForStore& ureg, uint32_t postUpdateStride) template <typename T, PostLiteral postMode = PostLiteral::POST_MODE_UPDATE> __simd_callee__ inline void StoreUnAlignPost(__ubuf__ T*& dstAddr, UnalignRegForStore& ureg, int32_t postUpdateStride)问题2:
超出后编译器将报错,近期会在docs/zh/api/SIMD-API/基础API/Reg矢量计算/寄存器数据类型/UnalignRegForLoad-UnalignRegForStore.md中添加此信息。
最好考虑补全一下能力,对称接口能力不一致解释成本挺高的,也感触不好


好的,感谢反馈,近期将会支持Load的RegTraitNumTwo的功能。


您好,经评估,该需求为低优先级需求,短期内暂不安排。已纳入需求池,后续迭代视资源情况再议。感谢理解!


您好,该需求预计本周进入合入流程。


您好,Load和Store支持RegTraitNumTwo需求PR已合入,具体修改内容请参考关联PR。


您好,相关问题已修复。
我们先关闭此issue。后续如果有其他问题,欢迎再提issue交流~


https://gitcode.com/cann/asc-devkit/blob/master/docs/zh/api/SIMD-API/基础API/Reg矢量计算/Reg数据搬入/Load.md
https://gitcode.com/cann/asc-devkit/blob/master/docs/zh/api/SIMD-API/基础API/Reg矢量计算/Reg数据搬出/Store.md
1、为何Load不支持RegTraitNumTwo,Store支持
2、两者都写了“接口内部定义了一个UnalignRegForStore,该寄存器数量上限为4”,未告诉用户用超了会怎么样,编译失败?性能差? 其次也未告诉有这个限制编码时应该注意什么