aclCreateScalarList
函数功能
创建aclScalarList,作为CANN算子API接口的入参。
aclScalarList由AscendCL框架定义,用来管理和存储标量数据构成的列表,开发者无需关注其内部实现。
函数原型
aclScalarList *aclCreateScalarList(const aclScalar *const *value, uint64_t size)
参数说明
参数名 |
输入/输出 |
说明 |
|---|---|---|
value |
输入 |
指向aclScalar指针数组首地址的指针,数组内aclScalar指针会依次拷贝给aclScalarList。 需提前调用aclCreateScalar接口创建aclScalar。 |
size |
输入 |
标量列表的长度,取值大于0。 |
返回值说明
成功则返回创建好的aclScalarList,否则返回nullptr。
约束与限制
- 本接口与aclDestroyScalarList接口配套使用,分别完成aclScalarList的创建与销毁。
- 调用aclGetScalarListSize接口可以获取aclScalarList的大小。
调用示例
关键代码示例如下,不可以直接拷贝运行,仅供参考。
// 创建alpha1 aclScalar
float alpha1Value = 1.2f;
aclScalar *alpha1 = aclCreateScalar(&alpha1Value, aclDataType::ACL_FLOAT);
// 创建alpha2 aclScalar
float alpha2Value = 2.2f;
aclScalar *alpha2 = aclCreateScalar(&alpha2Value, aclDataType::ACL_FLOAT);
// 创建aclScalarList
std::vector<aclScalar *> tempscalar{alpha1, alpha2};
aclScalarList *scalarlist = aclCreateScalarList(tempscalar.data(), tempscalar.size());
...
// aclScalarList作为单算子API执行接口的入参
auto ret = aclnnXxxGetWorkspaceSize(srcTensor, scalarlist, ..., outTensor, ..., &workspaceSize, &executor);
ret = aclnnXxx(...);
...
// 销毁aclScalarList
ret = aclDestroyScalarList(scalarlist);
父主题: 基础接口