昇腾社区首页
中文
注册

TQue简介

模板参数

template <TPosition pos, int32_t depth, auto mask = 0> class TQue{...};

表1 TQue模板参数介绍

参数名称

含义

pos

队列逻辑位置,可以为VECIN、VECOUT、A1A2B1B2CO1CO2。关于TPosition的具体介绍请参考TPosition

depth

TQue的深度,一般不超过4。通常情况下设置为1即可。

如下为一个depth=2时队列的使用示例,不推荐使用,仅用作介绍:

a1 = que.AllocTensor(); 
a2 = que.AllocTensor();
que.EnQue(a1);
que.EnQue(a2);
a1 = que.DeQue();
a2 = que.DeQue(); 
que.FreeTensor(a1);
que.FreeTensor(a2);

mask

  • mask是int类型时,采用比特位表达信息:
    • bit 0位为1表示,数据格式从ND转换为NZ,TPosition仅支持A1或B1;
    • bit 1位为1表示,数据格式从NZ转换为ND,TPosition仅支持CO2。

      支持的型号如下:

      Atlas推理系列产品AI Core

  • mask是const TQueConfig*类型时,TQueConfig结构定义和参数说明如下:
    struct TQueConfig {
        bool nd2nz = false;  // true代表数据格式从ND转换为NZ,仅支持TPosition为A1或B1,默认为false
        bool nz2nd = false;  // true代表数据格式从NZ转换为ND,仅支持TPosition为CO2,默认为false
        bool scmBlockGroup = false;  // tscm相关参数,预留参数,默认为false
        uint32_t bufferLen = 0;  // 与InitBuffer时输入的len参数保持一致,可以在编译期做性能优化,传0表示在InitBuffer时做资源分配。
        uint32_t bufferNumber = 0;  // 与InitBuffer时输入的num参数保持一致,可以在编译期做性能优化,传0表示在InitBuffer时做资源分配。
        uint32_t consumerSize = 0;  // 预留参数
        TPosition consumer[8] = {}; // 预留参数
    };

    上述ND、NZ格式转换相关参数支持的型号如下:

    Atlas推理系列产品AI Core

    昇腾610 AI处理器AI Core