Fill
产品支持情况
功能说明
将特定TPosition的LocalTensor初始化为某一具体数值。
函数原型
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)
参数说明
表 1 模板参数说明
|
Atlas A2 训练系列产品/Atlas A2 推理系列产品,支持的数据类型为:half/int16_t/uint16_t/bfloat16_t/float/int32_t/uint32_t Atlas A3 训练系列产品/Atlas A3 推理系列产品,支持的数据类型为:half/int16_t/uint16_t/bfloat16_t/float/int32_t/uint32_t Ascend 950PR/Ascend 950DT,支持的数据类型为:half/int16_t/uint16_t/bfloat16_t/float/int32_t/uint32_t |
|
|
表 2 参数说明
|
Atlas A2 训练系列产品/Atlas A2 推理系列产品,支持的TPosition为A1/A2/B1/B2。 Atlas A3 训练系列产品/Atlas A3 推理系列产品,支持的TPosition为A1/A2/B1/B2。 Ascend 950PR/Ascend 950DT, 支持的TPosition为A1/B1。 Kirin X90,支持的TPosition为A1/A2/B1/B2。 Kirin 9030,支持的TPosition为A1/A2/B1/B2。 如果TPosition为A1/B1,起始地址需要满足32B对齐;如果TPosition为A2/B2,起始地址需要满足512B对齐。 |
||
初始化相关参数,类型为InitConstValueParams。 具体定义请参考${INSTALL_DIR}/include/ascendc/basic_api/interface/kernel_struct_mm.h,${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。 参数说明请参考表3。 Atlas A2 训练系列产品/Atlas A2 推理系列产品,支持配置所有参数。 Atlas A3 训练系列产品/Atlas A3 推理系列产品,支持配置所有参数。 Ascend 950PR/Ascend 950DT,支持配置所有参数。
|
表 3 InitConstValueParams结构体参数说明
约束说明
- 操作数地址对齐要求请参见通用地址对齐约束。
调用示例
#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);