下载
中文
注册

TPipe构造函数

功能说明

构造用来管理全局内存和同步的TPipe对象。

函数原型

1
__aicore__ inline TPipe()

支持的型号

Atlas 训练系列产品

Atlas 推理系列产品 AI Core

Atlas 推理系列产品 Vector Core

Atlas A2 训练系列产品/Atlas 800I A2 推理产品

Atlas 200I/500 A2 推理产品

注意事项

  • 避免TPipe在对象内创建和初始化,TPipe在对象内创建时,可能会影响编译器对对象内常量的优化,引起scalar性能劣化,具体原理请参考避免TPipe在对象内创建和初始化
  • TPipe对象同一时刻全局只能存在一份,同时定义多个TPipe对象,会出现卡死等随机行为。如果需要使用多个TPipe时,请先调用Destroy接口释放前一个TPipe。

返回值

调用示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
template <typename ComputeT> class KernelExample {
public:
    __aicore__ inline KernelExample() {}
    __aicore__ inline void Init(..., TPipe* pipeIn)
    {
        ...
        pipe = pipeIn;
        pipe->InitBuffer(xxxBuf, BUFFER_NUM, xxxSize);
        ...
    }
private:
    ...
    TPipe* pipe;
    ...
};
extern "C" __global__ __aicore__ void example_kernel(...) {
    ...
    TPipe pipe;
    KernelExample<float> op;
    op.Init(..., &pipe);
    ...
}