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

CANN/asc-devkit:half2相等比较函数

__heqx2

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

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品x
Atlas A2 训练系列产品/Atlas A2 推理系列产品x
Atlas 200I/500 A2 推理产品x
Atlas 推理系列产品AI Corex
Atlas 推理系列产品Vector Corex
Atlas 训练系列产品x

功能说明

比较两个half2类型数据的两个分量,如果分量相等,则对应比较结果为1.0,否则为0.0。

函数原型

half2 __heqx2(half2 x, half2 y)

参数说明

表 1参数说明

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

返回值说明

  • 比较输入数据各分量是否相等的结果:满足时对应结果为1.0,不满足时对应结果为0.0。
  • 任一输入的分量为nan时,该分量的比较结果为0.0。

约束说明

需要包含的头文件

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

#include "simt_api/asc_fp16.h"

调用示例

  • SIMT编程场景:

    // 使用短向量可提升数据搬运效率 __global__ __launch_bounds__(1024) void simt_heqx2(half* x, half* y, 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* out = (half2*)dst; out[idx] = __heqx2(input1[idx], input2[idx]); }
  • SIMD与SIMT混合编程场景:

    // 使用短向量可提升数据搬运效率 __simt_vf__ __launch_bounds__(1024) inline void simt_heqx2(__gm__ half2* x, __gm__ half2* y, __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] = __heqx2(x[idx], y[idx]); } __global__ __vector__ void compare_kernel(__gm__ half* x, __gm__ half* y, __gm__ half* dst, uint32_t input_total_length) { asc_vf_call<simt_heqx2>(dim3(1024), (__gm__ half2*)x, (__gm__ half2*)y, (__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/855910/

相关文章:

  • Zynq Z7 DDR布线翻车实录:从信号完整性仿真到实测,我们踩了这些坑
  • 独角数卡支付系统:如何构建高可用的自动售货支付解决方案
  • GTA5终极防护与增强指南:YimMenu完整使用教程
  • FSAC赛车手经验谈:为什么我们放弃MPC,选择了基于运动学的离散LQR做轨迹跟踪?
  • 告别调参噩梦:f-AnoGAN在缺陷检测中的三种编码器结构(ziz/izi/izif)到底怎么选?
  • YimMenu完整指南:如何免费获得GTA5最强防护与游戏增强体验
  • CANN/asc-devkit float2到half2向上取整转换函数
  • 2026铝合金桥架定制哪家强?不锈钢桥架定制厂家源头直销,一站式服务 - 栗子测评
  • 终极指南:5分钟实现直播实时操作可视化
  • MATLAB强化学习实战:用DDPG和TD3教Biped机器人走路,哪个更稳?
  • Python Tkinter + 多线程:手把手教你做个不卡顿的TXT文本去重小工具(附完整源码)
  • CANN/asc-devkit:half2half_rz精度转换
  • 用P4和BMv2在Ubuntu上快速搭建一个可编程三层交换机(附完整代码和避坑指南)
  • 镀锌线槽现货推荐:2026靠谱热浸锌线槽/PVC线槽/母线槽定制厂家推荐指南 - 栗子测评
  • 如何用Sunshine打造家庭游戏云:免费开源的游戏串流终极指南
  • RK3568实战:交叉编译FFmpeg时遇到的‘unknown mnemonic’错误,我是这样解决的
  • 2026年知名的三亚别墅庭院设计施工装修/三亚自建房设计装修/三亚全案设计施工装修品牌公司推荐 - 品牌宣传支持者
  • 面试官视角:我为什么总爱问C语言static、volatile和extern?
  • 如何高效获得GitHub社区认可:开发者的3个实用徽章获取策略
  • AI的核心是算力,算力的核心是Token,那么Token到底是什么?
  • CANN/asc-devkit动态编译静态标志
  • GB/T14710有源设备环境及运输经验总结及怎样避免被的发补
  • ComfyUI图像增强工具终极指南:5大优势快速上手AI语义分割模块
  • 哪些因素会影响论文的重复率?
  • bezier-easing高级用法:自定义缓动曲线与复杂动画场景终极指南
  • OmniSharp-vim与fzf、vim-clap深度集成:提升C开发效率的7个关键点
  • 实战揭秘:Obsidian加州海岸主题如何将macOS美学融入笔记生产力革命
  • 2026年评价高的三亚海棠湾别墅设计装修/三亚全案设计施工装修/三亚豪宅设计装修/三亚自建房设计装修综合评价公司 - 行业平台推荐
  • 微博相册批量下载终极指南:3步轻松收藏所有高清图片
  • AI嵌入式系统测试:融合经典方法与数据驱动验证的工程实践