当前位置: 首页 > news >正文

CANN L1到Fixpipe数据搬运

L1 Buffer到Fixpipe Buffer数据搬运

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:不支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:不支持
  • Atlas 200I/500 A2 推理产品:不支持
  • Atlas 推理系列产品AI Core:不支持
  • Atlas 推理系列产品Vector Core:不支持
  • Atlas 训练系列产品:不支持

功能说明

头文件路径为:tensor_api/tensor.h

Tensor API通过Copy接口统一执行不同通路数据搬运。该接口用于将L1 Buffer中的量化数据搬运到Fixpipe Buffer。量化数据可用于L0C输出到GM/UB时做随路量化。

函数原型

  • 执行L1 Buffer到Fixpipe Buffer的数据搬运。

    template <typename AtomType, typename DstTensor, typename SrcTensor> __aicore__ inline void Copy(const CopyAtom<AtomType>& atomCopy, const DstTensor& dst, const SrcTensor& src)
  • 构造默认搬运原子对象。

    template <typename CopyOperationType> __aicore__ inline constexpr auto MakeCopy(const CopyOperationType& copyOperation)
  • 构造指定Trait的搬运原子对象。

    template <typename CopyOperationType, typename CopyTraitType> __aicore__ inline constexpr auto MakeCopy( const CopyOperationType& copyOperation, const CopyTraitType& copyTrait)

参数说明

表1Copy接口参数说明

参数名输入/输出描述
atomCopy输入搬运原子对象。L1 Buffer到Fixpipe Buffer通路可通过MakeCopy(CopyL12FB{})MakeCopy(CopyL12FB{}, CopyL12FBTraitDefault{})构造。
dst输出目的张量,存储位置为Location::FIXBUF,数据格式为ND
src输入源张量,存储位置为Location::L1,数据格式为ND

表2MakeCopy接口参数说明

参数名输入/输出描述
copyOperation输入搬运操作对象。L1 Buffer到Fixpipe Buffer通路使用CopyL12FB{}
copyTrait输入搬运Trait对象,用于指定搬运特性。L1 Buffer到Fixpipe Buffer通路默认Trait使用CopyL12FBTraitDefault{}

数据类型

源张量和目的张量的数据类型要求是uint64_t

返回值说明

Copy无返回值。MakeCopy返回CopyAtom对象。

约束说明

  • 源Tensor内存地址和大小需要满足32Byte对齐要求。
  • 目的Tensor内存地址和大小需要满足128Byte对齐要求。
  • 由于Fixpipe Buffer大小为4KB,因此每次搬运最多4KB数据。

调用示例

#include "tensor_api/tensor.h" using namespace AscendC::Te; __aicore__ inline void CopyL1ToFixpipeExample() { using DataType = uint64_t; constexpr uint32_t n = 16; __cbuf__ DataType l1Buf[n]; __fbuf__ DataType fixbuf[n]; auto l1Tensor = MakeTensor(MakeMemPtr(l1Buf), MakeFrameLayout<NDExtLayoutPtn>(1, n)); auto fixbufTensor = MakeTensor(MakeMemPtr(fixbuf), MakeFrameLayout<NDExtLayoutPtn>(1, n)); auto copyAtom = MakeCopy(CopyL12FB{}, CopyL12FBTraitDefault{}); Copy(copyAtom, fixbufTensor, l1Tensor); }

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

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

http://www.jsqmd.com/news/1199626/

相关文章:

  • GTA5线上小助手传送功能完全指南:从新手到大师的移动艺术
  • Windows 2000注册表架构解析与优化指南
  • Elsevier投稿追踪插件:学术作者必备的智能审稿监控工具
  • 三方聊天软件工具定制开发:打造安全稳定的企业级IM通讯解决方案
  • 告别Prompt!未来AI Agent核心竞争力竟是「循环工程」?LangChain深度解读!
  • YOLOv12在输电线路智能检测中的工程实践
  • 视频实时增强算法:原理、优化与移动端实践
  • Wand-Enhancer完整指南:如何免费解锁Wand专业版功能并实现远程控制
  • 从零实现C语言Web服务器:深入HTTP协议与高性能网络编程
  • JX3Toy完整指南:如何用智能辅助脚本彻底改变你的剑网3游戏体验
  • C++/OpenCV实现多尺度Retinex图像增强:从原理到工程实践
  • 如何用PowerToys三步设置让电脑永不自动休眠:告别工作被打断的烦恼
  • UDS 29服务:从PKI证书交换到挑战应答的汽车诊断安全演进
  • 如何在Obsidian中快速集成AI助手:Claudian插件完整指南
  • 异步电动机运行原理与特性深度解析:从转差率到三大运行状态
  • 小程序毕业设计-民宿预约管理系统的设计与实现 基于 SpringBoot + 微信小程序的民宿预订服务小程序(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 【信息科学与工程学】计算机科学与自动化-——第十五篇云计算 12 公有云里的“多Region + 多AZ“ 01 算法06
  • 反激变压器AP法设计:从原理到工程实践
  • 负载点DC-DC转换器:提升电压精度与能效的关键技术
  • C++性能调优实战:从Profiling数据到精准优化的工程方法
  • [特殊字符] 全新升级!IM聊天软件正式上线,开启高效通讯新时代 [特殊字符]
  • 配件齐全极速维修兜底 哈尔滨市香坊区双工电子告别等待式维保
  • 射频定向耦合器设计:三种拓扑结构与工程实践
  • libdatachannel:轻量高效的C++ WebRTC P2P通信库快速上手指南
  • 运算放大器在电源与电池测试中的关键应用
  • Windows本地部署OpenClaw:WSL2+Docker+LM Studio全栈方案
  • LabVIEW开发2048游戏:状态机与图形化编程实践
  • Vue项目中处理二进制音频流的实战与优化
  • 小程序毕业设计-农商信息交流平台的设计与实现 基于 Node.js + 微信小程序的乡村农业信息服务小程序(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 如何通过JX3Toy智能脚本系统优化剑网3游戏体验