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

CANN/asc-devkit:GlobalTensor重解释转换

ReinterpretCast

【免费下载链接】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 训练系列产品:不支持

功能说明

将当前GlobalTensor重解释为用户指定的新类型。转换后的Tensor与原Tensor地址及内容完全相同,Tensor的内存大小(比特数)保持不变。

函数原型

template <typename CAST_T> __aicore__ inline GlobalTensor<CAST_T> ReinterpretCast() const

参数说明

表1模板参数说明

参数名

描述

CAST_T

指定重解释后的新类型。

返回值说明

重解释后的GlobalTensor。

约束说明

当数据类型发生转换后,元素个数可能无法取整,例如3个int4b_t类型转换为uint32_t,则转换后调用GetSize接口,只能获取向下取整的整数值,这种场景在CPU状态运行时,会有对应的提示告警信息。

调用示例

uint64_t dataSize = 256; //设置input_global的大小为256 AscendC::GlobalTensor<int32_t> inputGlobal; // 类型为int32_t inputGlobal.SetGlobalBuffer(reinterpret_cast<__gm__ int32_t *>(src_gm), dataSize); // 设置源操作数在Global Memory上的起始地址为src_gm,所占外部存储的大小为256个int32_t AscendC::LocalTensor<int32_t> inputLocal = inQueueX.AllocTensor<int32_t>(); AscendC::DataCopy(inputLocal, inputGlobal, dataSize); // 将Global Memory上的inputGlobal拷贝到Local Memory的inputLocal上 ... // 假设inputGlobal为int32_t类型,包含16个元素(64字节) // 调用ReinterpretCast将inputGlobal重解释为int16_t类型 AscendC::GlobalTensor<int16_t> interpreTensor = inputGlobal.template ReinterpretCast<int16_t>(); // 示例结果如下,二者数据完全一致,在物理内存上也是同一地址,仅根据不同类型进行了重解释 // inputGlobal:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // interpreTensor:0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0

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

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

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

相关文章:

  • 如何在Windows上获得终极B站体验:BiliBili-UWP桌面客户端完全指南
  • VS Code + Claude Code CLI + DeepSeek V4 API 深度集成指南
  • Dify与微信生态整合:AI助手部署与优化指南
  • 自动驾驶测试进阶:从MIL到HIL的闭环验证体系
  • 告别多设备混乱:Barrier开源软件实现一套键鼠控制多台电脑的终极指南
  • Loop窗口管理工具:5分钟从混乱到有序的macOS高效工作流指南
  • HBM4内存价格走势分析:AI驱动下的供应挑战与市场前景
  • DeepSeek API调用延迟突增?3分钟定位瓶颈:Token流控、缓存穿透与并发熔断实战诊断
  • 深入解析现代汉字动画库:高效开发实战指南
  • 六层板地层过孔密度失控带来的隐性阻抗缺陷
  • 告别模糊字体!Windows 10字体渲染优化神器,3分钟让你看清每个字
  • 终极浏览器资源嗅探指南:猫抓Cat-Catch如何简单快速获取在线媒体资源
  • BiliLocal终极指南:如何在本地视频中添加弹幕,打造离线观看新体验
  • NX1926 安装避坑指南:从卸载到破解的完整实战
  • WMZDropDownMenu性能优化技巧:让筛选菜单更流畅的5个秘诀
  • CANN/asc-devkit获取运行时UB大小
  • Typora 1.12.4 真实能力解析:告别永久激活,回归专业配置
  • 大模型免费使用技巧与合规方案全解析
  • 为什么你的Cursor总在AI补全后报错?揭秘VS Code内核兼容层漏洞+3个强制降级保命方案(限期内有效)
  • 3步突破:在Windows系统实现苹果级中文字体体验
  • 研究生降 AI 软件推荐:知网 AIGC 不达标全额退款
  • 大模型岗位深度解析:小白程序员如何进阶收藏必看
  • 亨得利无锡官方维修售后体系|权威通告官网认证门店电话(2026年7月最新) - 亨得利中国服务中心
  • DLT Viewer诊断日志分析工具:3个实战场景高效调试嵌入式系统
  • AI时代的设计生存法则,Figma最新AI工具链深度拆解与避坑清单(含Beta权限获取通道)
  • 谷歌 Pixel 11 相机条现发光球体,8 月 12 日发布会或揭晓用途!
  • 小波变换与深度学习在心电信号处理中的应用
  • Wayback Machine浏览器扩展:掌握互联网历史档案的终极指南
  • 终极指南:三分钟免费解锁Wand专业版功能的完整教程
  • 英特尔锐炫A750显卡实测:驱动安装、游戏性能与优化指南