news 2026/7/15 15:00:07

昇腾C开发套件TPipe内存初始化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
昇腾C开发套件TPipe内存初始化

InitBuffer

产品支持情况

产品

是否支持

Ascend 950PR/Ascend 950DT

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

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

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品 AI Core

Atlas 推理系列产品 Vector Core

x

Atlas 训练系列产品

Kirin X90

Kirin 9030

功能说明

用于为TQue等队列和TBuf分配内存。

函数原型

  • 为TQue等队列分配内存

    template <class T> __aicore__ inline bool InitBuffer(T& que, uint8_t num, uint32_t len) // 为TQue等队列分配内存,且开发者可以自定义内存的地址信息,地址信息包含起始地址和长度。 template <class T, class U, class V, class... Addrs> __aicore__ inline bool InitBuffer(T& que, const Std::tuple<U, V>& addr0, const Addrs&... addrs)
  • 为TBuf分配内存

    template <TPosition bufPos> __aicore__ inline bool InitBuffer(TBuf<bufPos>& buf, uint32_t len)

参数说明

表 1bool InitBuffer(T& que, uint8_t num, uint32_t len) 原型定义模板参数说明

参数名称

含义

T

队列的类型,支持取值TQue、TQueBind、TSCM。

表 2bool InitBuffer(T& que, uint8_t num, uint32_t len) 原型定义参数说明

参数名称

输入/输出

含义

que

输入

需要分配内存的TQue等对象。

num

输入

分配内存块的个数。double buffer功能通过该参数开启:num设置为1,表示不开启double buffer;num设置为2,表示开启double buffer。

len

输入

每个内存块的大小,单位为字节。当传入的len不满足32字节对齐时,API内部会自动向上补齐至32字节对齐,后续的数据搬运过程会涉及非对齐处理。

表 3bool InitBuffer(T& que, const Std::tuple<U, V>& addr0, const Addrs&... addrs) 原型定义模板参数说明

参数名称

含义

T

队列的类型,支持取值TQue、TQueBind。

U

起始地址的类型。类型为整型。

V

长度的类型。类型为整型。

Addrs...

tuple形式的地址信息,包含起始地址和长度。

表 4bool InitBuffer(T& que, const Std::tuple<U, V>& addr0, const Addrs&... addrs) 原型定义参数说明

参数名称

输入/输出

含义

que

输入

需要分配内存的TQue等对象。

addr0

输入

分配内存块的地址信息,结构为起始地址和长度。

addrs

输入

格式为tuple的地址信息列表,tuple内的元素个数须为2,即起始地址和长度。

表 5InitBuffer(TBuf<bufPos>& buf, uint32_t len)原型定义模板参数说明

参数名称

含义

bufPos

TBuf所在的逻辑位置,TPosition类型。

表 6InitBuffer(TBuf<bufPos>& buf, uint32_t len)原型定义参数说明

参数名称

输入/输出

含义

buf

输入

需要分配内存的TBuf对象。

len

输入

为TBuf分配的内存大小,单位为字节。当传入的len不满足32字节对齐时,API内部会自动向上补齐至32字节对齐,后续的数据搬运过程会涉及非对齐处理。

约束说明

  • InitBuffer申请的内存会在TPipe对象销毁时通过析构函数自动释放,无需手动释放。
  • 如果需要重新分配InitBuffer申请的内存,可以调用Reset,再调用InitBuffer接口。
  • 一个kernel中所有使用的Buffer数量之和不能超过64。
  • 自定义地址InitBuffer方式分配不建议与不指定地址的混用,可能会导致内存冲突。

返回值说明

返回Buffer初始化的结果。

调用示例

// 为TQue分配内存,分配内存块数为2,每块大小为128字节 AscendC::TPipe pipe; // Pipe内存管理对象 AscendC::TQue<AscendC::TPosition::VECOUT, 2> que; // 输出数据队列管理对象,TPosition为VECOUT uint8_t num = 2; uint32_t len = 128; pipe.InitBuffer(que, num, len); // 为TQue分配内存,开发者自定义内存的地址信息,分别为[0, 1024], [2048, 4096], [8192, 12288] AscendC::TPipe pipe; // Pipe内存管理对象 AscendC::TQue<AscendC::TPosition::VECOUT, 1> que; // 输出数据队列管理对象,TPosition为VECOUT auto addr0 = Std::make_tuple(0, 1024); auto addr1 = Std::make_tuple(2048, 2048); auto addr2 = Std::make_tuple(8192, 4096); pipe.InitBuffer(que, addr0, addr1, addr2); // 为TBuf分配内存,分配长度为128字节 AscendC::TPipe pipe; AscendC::TBuf<AscendC::TPosition::A1> buf; // 输出数据管理对象,TPosition为A1 uint32_t len = 128; pipe.InitBuffer(buf, len);

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 14:59:27

Canvas文字雕刻动画:从原理到实现的Web动态特效开发指南

在实际游戏开发或二次元文化项目中&#xff0c;我们常常会遇到需要将一句富有感染力的台词或主题句&#xff0c;通过技术手段进行视觉化呈现的场景。例如&#xff0c;来自人气游戏《蔚蓝档案》的经典台词“时光会把你雕刻成你应有的样子”&#xff0c;这句话本身就蕴含着深刻的…

作者头像 李华
网站建设 2026/7/15 14:57:15

高效知乎数据采集利器:zhihu-spider开源项目实战指南

高效知乎数据采集利器&#xff1a;zhihu-spider开源项目实战指南 【免费下载链接】zhihu-spider A web spider for zhihu.com 项目地址: https://gitcode.com/gh_mirrors/zh/zhihu-spider 在信息爆炸的时代&#xff0c;知乎作为国内最大的知识分享平台&#xff0c;蕴藏着…

作者头像 李华
网站建设 2026/7/15 14:54:26

CANN/asc-devkit GlobalTensor操作符文档

operator() 产品支持情况 产品 是否支持 Ascend 950PR/Ascend 950DT x Atlas A3 训练系列产品/Atlas A3 推理系列产品√ Atlas A2 训练系列产品/Atlas A2 推理系列产品√ Atlas 200I/500 A2 推理产品x Atlas 推理系列产品AI Core x Atlas 推理系列产品Vector Core x Atlas 训练…

作者头像 李华
网站建设 2026/7/15 14:53:42

QQ截图独立版深度解析:专业级OCR与录屏工具的实现与应用

QQ截图独立版深度解析&#xff1a;专业级OCR与录屏工具的实现与应用 【免费下载链接】QQScreenShot 电脑QQ截图工具提取版,支持文字提取、图片识别、截长图、qq录屏。默认截图文件名为ScreenShot日期 项目地址: https://gitcode.com/gh_mirrors/qq/QQScreenShot QQ截图独…

作者头像 李华
网站建设 2026/7/15 14:53:14

CANN/asc-devkit TensorTrait GetLayout函数文档

GetLayout 产品支持情况 产品 是否支持 Ascend 950PR/Ascend 950DT √ Atlas A3 训练系列产品/Atlas A3 推理系列产品√ Atlas A2 训练系列产品/Atlas A2 推理系列产品√ Atlas 200I/500 A2 推理产品x Atlas 推理系列产品AI Core x Atlas 推理系列产品Vector Core x Atlas 训练…

作者头像 李华