news 2026/7/16 15:14:26

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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),仅供参考

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

Linux磁盘管理:从基础概念到LVM实战

1. Linux磁盘管理基础概念在Linux系统中&#xff0c;磁盘管理是系统管理员和开发者的必备技能。与Windows系统不同&#xff0c;Linux采用更灵活但也更复杂的磁盘管理机制。我刚接触Linux时&#xff0c;曾因为不了解这些概念导致整个系统崩溃&#xff0c;后来才明白掌握这些基础…

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

鸿蒙 ArkTS 实战:Family Story Player 从家庭记录到状态反馈完整解析

鸿蒙 ArkTS 实战&#xff1a;Family Story Player 从家庭记录到状态反馈完整解析 前言 Family Story Player 是一个面向 家庭管理与亲子记录 的鸿蒙 ArkTS 小应用。记录家庭条目、站点信息和提醒备注&#xff0c;适合日常家庭复盘。 本文基于 entry/src/main/ets/pages/Index…

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

3分钟快速上手:开源资源嗅探工具的终极使用指南

3分钟快速上手&#xff1a;开源资源嗅探工具的终极使用指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾在浏览网页时&#xff0c;遇到…

作者头像 李华
网站建设 2026/7/16 15:12:52

051、ISP Pipeline深度解析:从RAW到YUV的全链路数据流与模块协同机制

051、ISP Pipeline深度解析&#xff1a;从RAW到YUV的全链路数据流与模块协同机制 一个让我熬夜三天的bug 去年做某旗舰机项目&#xff0c;客户反馈夜景模式拍出来的照片偏紫&#xff0c;而且边缘有奇怪的条纹。我拿着log看了半天&#xff0c;sensor输出RAW没问题&#xff0c;3A…

作者头像 李华
网站建设 2026/7/16 15:12:02

鸿蒙三方库 | harmony-utils之NetworkUtil运营商与选网模式详解

前言 运营商信息和选网模式是移动通信管理的重要组成部分。pura/harmony-utils 的 NetworkUtil 封装了运营商查询方法&#xff0c;帮助开发者获取网络注册运营商、选网模式等信息。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解&#xff0c;帮助开发者…

作者头像 李华