产品支持情况
产品
|
是否支持
|
Ascend 950PR/Ascend 950DT
|
√
|
Atlas A3 训练系列产品/Atlas A3 推理系列产品
|
√
|
Atlas A2 训练系列产品/Atlas A2 推理系列产品
|
√
|
Atlas 200I/500 A2 推理产品
|
☓
|
Atlas 推理系列产品
|
√
|
Atlas 训练系列产品
|
☓
|
函数原型
| aclError aclrtGetSymbolAddress(const void *symbol, void **devPtr)
|
参数说明
参数名
|
输入/输出
|
说明
|
symbol
|
输入
|
Device变量的地址。
此处的Device变量通过__gm__方式声明的变量。
|
devPtr
|
输出
|
与symbol关联的Device内存地址指针。
|
约束说明
- 本接口仅适用于使用Ascend C语言开发自定义算子并基于毕昇编译器进行Host和Device代码混合编译的场景。
- Device变量地址仅在当前Device有效,切换Device后需重新获取地址。
- 仅支持AI Core算子中的Device变量,具体约束如下:
- 仅支持在main函数所在文件中定义的Device变量(如__gm__ float convWeights)。
- 支持通过extern关键字跨文件引用Device变量。例如,在文件A中定义__gm__ float convWeights,文件B中可通过extern __gm__ float convWeights声明并引用该变量。需要满足编译要求:使用毕昇编译器的-dc模式,将多个源文件编译为一个算子二进制文件。
- 支持基础数据类型、函数指针、结构体及数组,不支持class类型。注意,函数指针只支持指向纯Scalar的函数,不能有效区分Cube和Vector的函数逻辑。