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

CANN/asc-devkit:half转int32向量计算API

asc_half2int32

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

产品支持情况

产品是否支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

将half类型转化为int32_t类型,并支持多种舍入模式:

  • RINT舍入模式:四舍六入五成双舍入
  • ROUND舍入模式:四舍五入舍入
  • FLOOR舍入模式:向负无穷舍入
  • CEIL舍入模式:向正无穷舍入
  • TRUNC舍入模式:向零舍入

函数原型

  • 前n个数据计算

    //RINT舍入模式 __aicore__ inline void asc_half2int32_rn(__ubuf__ int32_t* dst, __ubuf__ half* src, uint32_t count) //ROUND舍入模式 __aicore__ inline void asc_half2int32_rna(__ubuf__ int32_t* dst, __ubuf__ half* src, uint32_t count) //FLOOR舍入模式 __aicore__ inline void asc_half2int32_rd(__ubuf__ int32_t* dst, __ubuf__ half* src, uint32_t count) //CEIL舍入模式 __aicore__ inline void asc_half2int32_ru(__ubuf__ int32_t* dst, __ubuf__ half* src, uint32_t count) //TRUNC舍入模式 __aicore__ inline void asc_half2int32_rz(__ubuf__ int32_t* dst, __ubuf__ half* src, uint32_t count)
  • 高维切分计算

    //RINT舍入模式 __aicore__ inline void asc_half2int32_rn(__ubuf__ int32_t* dst, __ubuf__ half* src, uint8_t repeat, uint16_t dst_block_stride, uint16_t src_block_stride, uint16_t dst_repeat_stride, uint16_t src_repeat_stride) //ROUND舍入模式 __aicore__ inline void asc_half2int32_rna(__ubuf__ int32_t* dst, __ubuf__ half* src, uint8_t repeat, uint16_t dst_block_stride, uint16_t src_block_stride, uint16_t dst_repeat_stride, uint16_t src_repeat_stride) //FLOOR舍入模式 __aicore__ inline void asc_half2int32_rd(__ubuf__ int32_t* dst, __ubuf__ half* src, uint8_t repeat, uint16_t dst_block_stride, uint16_t src_block_stride, uint16_t dst_repeat_stride, uint16_t src_repeat_stride) //CEIL舍入模式 __aicore__ inline void asc_half2int32_ru(__ubuf__ int32_t* dst, __ubuf__ half* src, uint8_t repeat, uint16_t dst_block_stride, uint16_t src_block_stride, uint16_t dst_repeat_stride, uint16_t src_repeat_stride) //TRUNC舍入模式 __aicore__ inline void asc_half2int32_rz(__ubuf__ int32_t* dst, __ubuf__ half* src, uint8_t repeat, uint16_t dst_block_stride, uint16_t src_block_stride, uint16_t dst_repeat_stride, uint16_t src_repeat_stride)
  • 同步计算

    //RINT舍入模式 __aicore__ inline void asc_half2int32_rn_sync(__ubuf__ int32_t* dst, __ubuf__ half* src, uint32_t count) //ROUND舍入模式 __aicore__ inline void asc_half2int32_rna_sync(__ubuf__ int32_t* dst, __ubuf__ half* src, uint32_t count) //FLOOR舍入模式 __aicore__ inline void asc_half2int32_rd_sync(__ubuf__ int32_t* dst, __ubuf__ half* src, uint32_t count) //CEIL舍入模式 __aicore__ inline void asc_half2int32_ru_sync(__ubuf__ int32_t* dst, __ubuf__ half* src, uint32_t count) //TRUNC舍入模式 __aicore__ inline void asc_half2int32_rz_sync(__ubuf__ int32_t* dst, __ubuf__ half* src, uint32_t count)

参数说明

参数名输入/输出描述
dst输出目的操作数(矢量)的起始地址。
src输入源操作数(矢量)的起始地址。
count输入参与连续计算的元素个数。
repeat输入迭代次数。
dst_block_stride输入目的操作数单次迭代内不同DataBlock间地址步长。
src_block_stride输入源操作数单次迭代内不同DataBlock间地址步长。
dst_repeat_stride输入目的操作数相邻迭代间相同DataBlock的地址步长。
src_repeat_stride输入源操作数相邻迭代间相同DataBlock的地址步长。

返回值说明

流水类型

PIPE_V

约束说明

  • 操作数地址重叠约束请参考通用地址重叠约束。
  • dst、src的起始地址需要32字节对齐。

调用示例

constexpr uint32_t total_length = 256; __ubuf__ half src[total_length]; __ubuf__ int32_t dst[total_length]; asc_half2int32_rn(dst, src, total_length);

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

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

http://www.cnnetsun.cn/news/2513697.html

相关文章:

  • Centurion容器部署终极指南:如何配置网络模式与资源限制实现高效Docker集群管理
  • Octopress部署完全攻略:从GitHub Pages到AWS S3的详细步骤
  • 从论文到代码:MemNN项目中EntNet实体网络的实现原理与实践
  • CANN asc-devkit Zn布局创建函数
  • 从零到百万:阿里云OSS SDK如何支撑海量文件存储实战
  • 探索终极德州扑克GTO求解器:实战精通博弈论最优策略
  • iND87501使用指南(随缘更新)
  • Prosopite最佳实践:避免误报的允许列表和忽略查询配置
  • Android-examples 项目路线图:未来发展方向与社区贡献指南
  • 终极3步DLSS版本管理:彻底解决游戏兼容性与性能瓶颈
  • 为什么你的Gemini搜索准确率骤降47%?——基于17万次Query日志的多模态意图理解偏差分析
  • WinUtil:3分钟搞定Windows系统优化和软件安装的终极神器
  • GoogleTranslate_IPFinder高级功能详解:自定义IP段扫描与在线同步服务
  • 后端架构:事件驱动架构设计与实现
  • YOLO_Object_Detection性能优化:10个技巧提升检测速度和准确率
  • 中小团队如何利用taotoken管理多成员api key与用量配额
  • Inno Setup中文翻译深度实战:打造本土化安装体验的技术架构解析
  • Windows 11性能突破:用智能自动化工具Win11Debloat实现系统精简革命
  • 如何在Mac上快速创建Windows启动盘:WinDiskWriter完全指南
  • 项目会议 - 2024年Q2规划
  • Jooby DevOps集成:CI/CD流水线、自动化测试与部署方案
  • 数据库技能大全:Awesome Agent Skills中的MySQL/PostgreSQL/Redis/MongoDB技能详解 [特殊字符]
  • react-tween-state vs 其他React动画库:为什么选择这个轻量级解决方案?
  • ChocolateyGUI 高级用法:自定义源、批量操作与自动化管理终极指南
  • 图解强化学习 |手算DDPG
  • CANN asc-devkit SIMT-API协作组函数
  • 化学工程论文降AI工具免费推荐:2026年化学工程毕业论文AIGC超标免费4.8元达标完整方案
  • 如何用嘎嘎降AI处理机械工程论文:机械工程研究生毕业论文降AI4.8元完整操作教程
  • 终极Dell G15散热控制指南:免费开源神器tcc-g15完全解析
  • 终极快速文件搜索指南:如何在Linux上实现毫秒级文件查找