Fill
产品支持情况
产品 |
是否支持 |
|---|---|
Atlas 350 加速卡 |
√ |
√ |
|
√ |
|
√ |
|
√ |
|
x |
|
√ |
功能说明
将特定TPosition的LocalTensor初始化为某一具体数值。
函数原型
1 2 | template <typename T, typename U = PrimT<T>, typename Std::enable_if<Std::is_same<PrimT<T>, U>::value, bool>::type = true> __aicore__ inline void Fill(const LocalTensor<T>& dst, const InitConstValueParams<U>& initConstValueParams) |
参数说明
参数名 |
描述 |
|---|---|
T |
dst的数据类型。 Atlas 350 加速卡,支持的数据类型为:half/int16_t/uint16_t/bfloat16_t/float/int32_t/uint32_t |
U |
初始化值的数据类型。
最后一个模板参数仅用于上述数据类型检查,用户无需关注。 |
参数名称 |
输入/输出 |
含义 |
|---|---|---|
dst |
输出 |
目的操作数,结果矩阵,类型为LocalTensor。 Atlas 350 加速卡, 支持的TPosition为A1/B1。 如果TPosition为A1/B1,起始地址需要满足32B对齐;如果TPosition为A2/B2,起始地址需要满足512B对齐。 |
InitConstValueParams |
输入 |
初始化相关参数,类型为InitConstValueParams。 具体定义请参考${INSTALL_DIR}/include/ascendc/basic_api/interface/kernel_struct_mm.h,${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。 参数说明请参考表3。 Atlas 350 加速卡,支持配置所有参数。
|
参数名称 |
含义 |
|---|---|
repeatTimes |
迭代次数。默认值为0。
|
blockNum |
每次迭代初始化的数据块个数,取值范围:blockNum∈[0, 32767] 。默认值为0。
|
dstGap |
目的操作数前一个迭代结束地址到后一个迭代起始地址之间的距离。
取值范围:dstGap∈[0, 32767] 。默认值为0。 |
initValue |
初始化的value值,支持的数据类型与dst保持一致。 |
约束说明
- 操作数地址对齐要求请参见通用地址对齐约束。
调用示例
1 2 3 | uint32 mLength = 16; uint32 kLength = 16; Fill(leftMatrix, {1, static_cast<uint16_t>(mLength * kLength * sizeof(float) / 32), 0, 1}); // 给leftMatrix填充 mLength * kLength长度的数据为1, 按32B的颗粒进行填充 |