Fill
产品支持情况
产品 |
是否支持 |
|---|---|
√ |
|
√ |
|
√ |
|
√ |
|
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的数据类型。 |
U |
初始化值的数据类型。
最后一个模板参数仅用于上述数据类型检查,用户无需关注。 |
参数名称 |
输入/输出 |
含义 |
|---|---|---|
dst |
输出 |
目的操作数,结果矩阵,类型为LocalTensor。 如果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。
|
参数名称 |
含义 |
|---|---|
repeatTimes |
迭代次数。默认值为0。
|
blockNum |
每次迭代初始化的数据块个数,取值范围:blockNum∈[0, 32767] 。默认值为0。
|
dstGap |
目的操作数前一个迭代结束地址到后一个迭代起始地址之间的距离。
取值范围:dstGap∈[0, 32767] 。默认值为0。 |
initValue |
初始化的value值,支持的数据类型与dst保持一致。 |
约束说明
- 操作数地址对齐要求请参见通用地址对齐约束。
调用示例
1 2 3 4 5 6 7 8 9 | #include "kernel_operator.h" uint32 m = 16; uint32 k = 16; TPipe pipe; TQue<TPosition::A1, 1> qidA1_; pipe.InitBuffer(qidA1_, 1, m * k * sizeof(float)); LocalTensor<float> leftMatrix = qidA1_.template AllocTensor<float>(); Fill(leftMatrix, {1, static_cast<uint16_t>(mLength * kLength * sizeof(Src0T) / 32), 0, 1}); qidA1_.EnQue(leftMatrix); |