news 2026/7/17 18:47:03

CANN/asc-devkit bfloat16x2最大值函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/asc-devkit bfloat16x2最大值函数

__hmaxx2_nan

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

功能说明

获取两个bfloat16x2_t类型数据各分量的最大值。任一分量为nan时,对应分量的计算结果为nan。

函数原型

bfloat16x2_t __hmaxx2_nan(const bfloat16x2_t x, const bfloat16x2_t y)

参数说明

表1参数说明

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

返回值说明

输入数据各分量的最大值。比较的分量x和y特殊值满足:

x分量值y分量值返回值
任一分量含nannan
inf任意值inf
任意值infinf
inf-infinf
-inf任意值y
任意值-infx
0-00
-000

约束说明

需要包含的头文件

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

#include "simt_api/asc_bf16.h"

调用示例

  • SIMT编程场景:

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

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

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

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

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

野火启明6M5开发板UART与ADC功能实战解析

1. 野火启明6M5开发板UARTADC功能解析 作为一名嵌入式开发者&#xff0c;我最近深度体验了野火启明6M5开发板的UART和ADC功能组合应用。这款基于瑞萨RA6M5处理器的开发板在工业控制和物联网领域表现出色&#xff0c;特别是其丰富的外设接口和高达200MHz的主频&#xff0c;为复杂…

作者头像 李华
网站建设 2026/7/17 18:45:40

基于LLM与Playwright的AI浏览器智能体:从原理到工程实践

1. 项目概述&#xff1a;当AI智能体开始“浏览”网页最近在折腾一个项目&#xff0c;需要让AI自动去几个网站上抓取数据、填写表单&#xff0c;甚至完成一些简单的交互操作。一开始我还在想&#xff0c;这不就是传统的爬虫或者自动化脚本吗&#xff1f;但深入后发现&#xff0c…

作者头像 李华
网站建设 2026/7/17 18:43:39

自动驾驶中的强化学习:关键技术与实践

1. 自动驾驶与强化学习的结合点 自动驾驶技术发展到今天&#xff0c;已经走过了从规则驱动到数据驱动的演进历程。早期的自动驾驶系统主要依靠预先编程的规则和决策树&#xff0c;但这种方法的局限性很明显——现实世界的驾驶场景太过复杂多变&#xff0c;难以用有限的规则覆盖…

作者头像 李华
网站建设 2026/7/17 18:43:15

CANN/asc-devkit:Ascend C协作组线程数接口

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

作者头像 李华
网站建设 2026/7/17 18:42:49

FP7195+FP6195双芯片LED调光方案设计与实现

1. 项目背景与核心需求解析作为一名电子DIY爱好者&#xff0c;我最近在改造工作台照明系统时遇到了一个棘手问题&#xff1a;市面上大多数LED调光方案要么成本高昂&#xff0c;要么功能单一。经过反复对比测试&#xff0c;最终选择了远翔科技&#xff08;Feeling Tech&#xff…

作者头像 李华