InitSocState
产品支持情况
产品 |
是否支持 |
---|---|
|
√ |
|
√ |
|
x |
|
√ |
|
√ |
|
x |
|
x |
功能说明
由于AI Core上存在一些全局状态,如原子累加状态、Mask模式等,在实际运行中,这些值可以被前序执行的算子修改而导致计算出现不符合预期的行为,在Ascend C更底层编程的场景中用户必须在Kernel入口处调用此函数来初始化AI Core状态 。
函数原型
1
|
__aicore__ inline void InitSocState() |
参数说明
无
返回值说明
无
约束说明
不调用该接口,在部分场景下可能导致计算结果出现精度错误或者卡死等问题。
调用示例
1 2 3 4 5 6 7 8 |
extern "C" __global__ __aicore__ void add_custom(GM_ADDR x, GM_ADDR y, GM_ADDR z) { // 初始化全局状态寄存器(在TPipe框架编程中,初始化过程由TPipe完成,无需开发者关注;更底层编程方式中需要开发者手动调用) AscendC::InitSocState(); KernelAdd op; op.Init(x, y, z); op.Process(); } |
父主题: 系统变量访问