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

CANN/asc-devkit浮点转hif8 API

asc_float2hif8

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

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT

功能说明

将float类型转化为hifloat8_t类型,并支持多种舍入模式。

  • ROUND舍入模式:四舍五入舍入
  • HYBRID舍入模式:特指输出结果时hifloat8_t数据时,会用到的一种随机舍入

根据输入数据的大小分为非饱和模式和饱和模式。

  • 非饱和模式:
    • 输入数据超过输出类型最值时,返回输出类型的对应符号inf值。
    • 输入数据为+/-inf时, 返回+/-inf。
    • 输入数据为nan时,返回nan。
  • 饱和模式:
    • 输入数据超过输出类型最值时,返回输出类型的对应最值。
    • 输入数据为+/-inf时, 返回输出类型的对应最值。
    • 输入数据为nan时,返回0。

由于源操作数与目的操作数类型位宽比为4:1,写入数据时需要将一个VL大小的数据分为四部分,根据不同接口选取索引0、索引1、索引2或者索引3。

函数原型

// ROUND舍入模式,非饱和模式,数据写入索引为0的位置 __simd_callee__ inline void asc_float2hif8_rna(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // ROUND舍入模式,饱和模式,数据写入索引为0的位置 __simd_callee__ inline void asc_float2hif8_rna_sat(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // ROUND舍入模式,非饱和模式,数据写入索引为1的位置 __simd_callee__ inline void asc_float2hif8_rna_v2(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // ROUND舍入模式,饱和模式,数据写入索引为1的位置 __simd_callee__ inline void asc_float2hif8_rna_sat_v2(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // ROUND舍入模式,非饱和模式,数据写入索引为2的位置 __simd_callee__ inline void asc_float2hif8_rna_v3(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // ROUND舍入模式,饱和模式,数据写入索引为2的位置 __simd_callee__ inline void asc_float2hif8_rna_sat_v3(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // ROUND舍入模式,非饱和模式,数据写入索引为3的位置 __simd_callee__ inline void asc_float2hif8_rna_v4(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // ROUND舍入模式,饱和模式,数据写入索引为3的位置 __simd_callee__ inline void asc_float2hif8_rna_sat_v4(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // HYBRID舍入模式,非饱和模式,数据写入索引为0的位置 __simd_callee__ inline void asc_float2hif8_rh(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // HYBRID舍入模式,饱和模式,数据写入索引为0的位置 __simd_callee__ inline void asc_float2hif8_rh_sat(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // HYBRID舍入模式,非饱和模式,数据写入索引为1的位置 __simd_callee__ inline void asc_float2hif8_rh_v2(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // HYBRID舍入模式,饱和模式,数据写入索引为1的位置 __simd_callee__ inline void asc_float2hif8_rh_sat_v2(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // HYBRID舍入模式,非饱和模式,数据写入索引为2的位置 __simd_callee__ inline void asc_float2hif8_rh_v3(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // HYBRID舍入模式,饱和模式,数据写入索引为2的位置 __simd_callee__ inline void asc_float2hif8_rh_sat_v3(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // HYBRID舍入模式,非饱和模式,数据写入索引为3的位置 __simd_callee__ inline void asc_float2hif8_rh_v4(vector_hifloat8_t& dst, vector_float src, vector_bool mask) // HYBRID舍入模式,饱和模式,数据写入索引为3的位置 __simd_callee__ inline void asc_float2hif8_rh_sat_v4(vector_hifloat8_t& dst, vector_float src, vector_bool mask)

参数说明

参数名输入/输出描述
dst输出目的操作数(矢量数据寄存器)。
src输入源操作数(矢量数据寄存器)。
mask输入源操作数掩码(掩码寄存器),用于指示在计算过程中哪些元素参与计算。对应位置为1时参与计算,为0时不参与计算。mask未筛选的元素在输出中置零。

矢量数据寄存器和掩码寄存器的详细说明请参见reg数据类型定义.md。

返回值说明

流水类型

PIPE_V

约束说明

  • 使能饱和模式和非饱和模式生效时,需配置ctrl寄存器,ctrl寄存器的详细说明请参见asc_set_ctrl.md。

调用示例

vector_float src; vector_hifloat8_t dst; vector_bool mask; asc_float2hif8_rna(dst, src, mask);

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

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

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

相关文章:

  • 如何通过3个步骤快速掌握Java反编译界面定制:终极指南
  • PHP版本管理的终极解决方案:3分钟掌握phpenv多版本切换技巧
  • B站直播神器:神奇弹幕全方位操作指南
  • H5P交互式视频制作终极指南:快速创建引人入胜的互动学习内容
  • 中小团队如何利用 Taotoken 统一管理多模型 API 密钥与成本
  • 一天一个开源项目(第108篇):Andrej Karpathy Skills - 用一个 CLAUDE.md 文件修复 LLM 编码的四个顽疾
  • 免费图片去水印工具有哪些?2026 在线图片去水印软件推荐指南
  • 3步掌握Internet Archive Downloader:突破数字图书馆限制的终极浏览器扩展工具
  • 终极B站直播助手:3分钟搭建智能直播间,效率提升300%
  • CANN/pypto:MatmulAllReduce与RMSNorm融合算子
  • BuckyClient性能优化:sample与aggregationInterval参数调优实践
  • ElevenLabs支持广西话吗?2024最新实测结果曝光:仅2个API参数决定能否合成地道“梧州腔”
  • 英伟达VR200机柜PCB价值量同比+233%:AI硬件主线如何被引爆?
  • 从“水本原论”的时空错位看西方哲学叙事的建构与AI时代的数据霸权
  • SABIC工程塑料创新材料解决方案与发展前景分析
  • 2026年,揭秘浙江废铝回收界的明星企业!
  • Prompt Engineering、Context Engineering 与 Harness Engineering 的异同点
  • 8355 法还原魔方 – 解魔方不用死记公式
  • 为什么92%的中小企业DeepSeek私有化项目卡在推理延迟>800ms?——基于TensorRT-LLM的4层加速调优公式(含吞吐量提升3.8倍实测数据)
  • TVA模型中的QKV投影层通道对齐缩放因子计算
  • “跳出机器人思维的局限”:如何防止人工智能退化你的大脑能力
  • NVIDIA-JetSonAGX-Thor系统安装-Ubuntu24.04(五)无人机导航开发环境配置
  • Sharp-dumpkey:三分钟获取微信数据库AES密钥的终极C解决方案
  • 效率飙升61%!南洋理工南科大新方法,让无人机边飞边“转头”,探索又快又准
  • Arm伪代码:硬件描述语言的核心特性与实践
  • DS4Windows终极指南:如何让PlayStation手柄在Windows上完美运行
  • Agentic Workflow实战:多智能体分治架构设计与落地
  • Midjourney V6 Vary(Region):区域级潜变量编辑原理与精准控制实践
  • 为什么92%的CRM项目在6个月内失去用户喜爱?揭秘Lovable CRM的3层情感化设计模型
  • 2026年软考算法知识点—计算机等级考试—软件设计师考前备忘录—东方仙盟