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

CANN/asc-devkit半精度算术函数

__hfmax2_relu

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

功能说明

计算输入half2类型数据各分量的乘加的结果(前两个输入相乘后与第三个输入相加),并遵循CAST_RINT模式对结果进行舍入。负数结果置为0。

函数原型

half2 __hfmax2_relu(const half2 x, const half2 y, const half2 z)

参数说明

表1参数说明

参数名输入/输出描述
x输入源操作数。
y输入源操作数。
z输入源操作数。

返回值说明

输入数据各分量乘加的结果。本接口受全局饱和寄存器的影响,特殊值如下:

x分量y分量z分量非饱和模式返回值饱和模式返回值
任一值为nannan0
inf±0任意值nan0
x*y=±inf同号infnan0
x*y+z为infinfASCRT_MAX_NORMAL_FP16
x*y+z≤000

约束说明

需要包含的头文件

使用该接口需要包含"simt_api/asc_fp16.h"头文件。

#include "simt_api/asc_fp16.h"

调用示例

  • SIMT编程场景:

    // 使用短向量可提升数据搬运效率 __global__ __launch_bounds__(1024) void simt_hfmax2_relu(half* x, half* y, half* z, half* dst, uint32_t input_total_length) { uint32_t idx = blockIdx.x * blockDim.x + threadIdx.x; // 每个线程处理1个half2类型的数据,即2个half类型的数据,因此idx >= input_total_length / 2的线程不处理数据 if (idx >= input_total_length / 2) { return; } half2* input1 = (half2*)x; half2* input2 = (half2*)y; half2* input3 = (half2*)z; half2* out = (half2*)dst; out[idx] = __hfmax2_relu(input1[idx], input2[idx], input3[idx]); }
  • SIMD与SIMT混合编程场景:

    // 使用短向量可提升数据搬运效率 __simt_vf__ __launch_bounds__(1024) inline void simt_hfmax2_relu(__gm__ half2* x, __gm__ half2* y, __gm__ half2* z, __gm__ half2* dst, uint32_t input_total_length) { uint32_t idx = blockIdx.x * blockDim.x + threadIdx.x; // 每个线程处理1个half2类型的数据,即2个half类型的数据,因此idx >= input_total_length / 2的线程不处理数据 if (idx >= input_total_length / 2) { return; } dst[idx] = __hfmax2_relu(x[idx], y[idx], z[idx]); } __global__ __vector__ void compute_kernel(__gm__ half* x, __gm__ half* y, __gm__ half* z, __gm__ half* dst, uint32_t input_total_length) { asc_vf_call<simt_hfmax2_relu>(dim3(1024), (__gm__ half2*)x, (__gm__ half2*)y, (__gm__ half2*)z, (__gm__ half2*)dst, input_total_length); }

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

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

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

相关文章:

  • 人形机器人落地困境:硬件瓶颈、仿真鸿沟与场景死亡谷
  • 如何零基础使用AI-Writer:离线AI写作神器的完整指南
  • Unity Addressable资源管理框架:从核心概念到工程实践
  • 如何用CVAT开源平台解决计算机视觉数据标注的三大痛点
  • 2026年6月新发布贵金属回收机构,五家风格各异的专业公司深度解析 - myqiye
  • 2026贵州经验丰富的医疗纠纷律师事务所口碑推荐,价格透明不踩坑 - 工业品牌热点
  • 百达翡丽中国官方售后服务中心|官方热线及详细网点地址权威信息公示(2026年7月最新) - 百达翡丽官方售后中心
  • 2026 年现阶段,海阳比较好的外壁防腐涂料优质厂家怎么联系,墙面防腐的秘密:别再浪费钱了! - 行业推荐【认证官】
  • 新手程序员入门指南:从环境搭建到Hello World
  • 浏览器资源嗅探利器:猫抓Cat-Catch全面使用指南
  • 2026 年当下,丹棱可靠的整轴电缆回收厂家怎么联系,别再扔!电缆回收的隐藏利润有多大? - 行业推荐【认证官】
  • ChatGPT Sites:自然语言建站技术如何重塑企业沟通协作效率
  • 5分钟快速上手:Dify工作流集成高德地图API完整指南
  • 5步搭建企业级AI绘图平台:基于Docker的ComfyUI完整部署方案
  • CANN/asc-devkit SIMT half2乘法函数
  • 雷达中国官方售后服务中心|服务热线及网点地址权威信息通知(2026年7月最新) - 亨得利钟表维修中心
  • C++实现凸包算法:从几何原理到工程实践详解
  • 如何解决浏览器资源嗅探难题:猫抓Cat-Catch的完整技术解决方案
  • 格拉苏蒂官方服务项目及价格查询|全新地址电话权威信息公告(2026年7月最新) - 亨得利钟表维修中心
  • 伯爵总部售后电话提供官方售后维修与保养服务权威公示(2026年7月最新) - 亨得利钟表维修中心
  • MineContext深度解析:打造你的智能上下文感知伙伴
  • MySQL连接拒绝错误排查与解决方案
  • 从模糊需求到技术实现:Spring Boot武器评分系统开发实践
  • 人形机器人续航瓶颈与系统级优化路径
  • JellyBook入门教程:快速连接Jellyfin服务器并开始阅读
  • 如何用HunyuanVideo的滑动瓦片注意力机制重塑长视频生成的内存边界
  • PHP 8.0构造函数属性提升特性被滥用于构建隐蔽Webshell的风险与防御
  • 昉·星光2 RISC-V单板计算机GPU性能解析与优化
  • 2026 年至今,常山可靠的大批量匹布硅胶印花制造厂全面解析与选购指南,揭秘:如何用硅胶印花彻底颠覆你的产品生产线? - 企业推荐官【认证】
  • 3步掌握浏览器资源捕获:猫抓Cat-Catch完整使用指南