news 2026/5/21 23:08:02

CANN/asc-devkit原子或操作API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/asc-devkit原子或操作API

asc_atomic_or

【免费下载链接】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

功能说明

对Unified Buffer或Global Memory上address的数值与指定数值val进行原子或(|)操作,即将address数值或(|)val的结果赋值到Unified Buffer或Global Memory上。

函数原型

inline int32_t asc_atomic_or(int32_t *address, int32_t val)
inline uint32_t asc_atomic_or(uint32_t *address, uint32_t val)
inline int64_t asc_atomic_or(int64_t *address, int64_t val)
inline uint64_t asc_atomic_or(uint64_t *address, uint64_t val)

参数说明

表 1参数说明

参数名输入/输出描述
address输出Unified Buffer或Global Memory的地址。
val输入源操作数。

不同数据类型支持的内存范围说明如下:

表 2不同数据类型支持的内存范围

参数数据类型支持的内存空间
int32_t、uint32_tUnified Buffer、Global Memory
int64_t、uint64_tGlobal Memory

返回值说明

Unified Buffer或Global Memory上的初始数据。

约束说明

需要包含的头文件

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

#include "simt_api/device_atomic_functions.h"

调用示例

  • SIMT编程场景:

    __global__ __launch_bounds__(1024) void KernelAtomicOr(int32_t* dst, int32_t* src) { int idx = threadIdx.x + blockIdx.x * blockDim.x; asc_atomic_or(dst + idx, src[idx]); }
  • SIMD与SIMT混合编程场景:

    SIMD与SIMT混合编程场景,需要显式使用地址空间限定符表示地址空间:__gm__表示Global Memory内存空间,__ubuf__表示Unified Buffer内存空间。

    __simt_vf__ __launch_bounds__(1024) inline void KernelAtomicOr(__gm__ int32_t* dst, __gm__ int32_t* src) { int idx = threadIdx.x + blockIdx.x * blockDim.x; asc_atomic_or(dst + idx, src[idx]); }

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

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

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

深度探索C++对象模型 学习笔记 第五章 构造、解构、拷贝语意学(1)

请看下面这个抽象基类的声明:你能看出什么问题吗?该类被设计成抽象基类(纯虚函数的存在禁止创建 Abstract_base 的独立实例),但它仍然需要一个显式的构造函数来初始化其唯一的数据成员 _mumble。如果没有这个初始化&am…

作者头像 李华
网站建设 2026/5/21 22:31:17

第22课:LangChain|RAG进阶优化【重排序、上下文压缩、混合检索策略】

文章目录课程导读 & 学习目标前置知识与环境准备1.1 环境沿用1.2 依赖包安装1.3 上节课回顾与本课定位核心概念深度拆解2.1 为什么要混合检索?(两条腿走路)2.2 标准混合检索架构与工程实证2.3 RRF融合算法详解2.4 为什么需要重排序底层运…

作者头像 李华
网站建设 2026/5/21 22:24:13

2026年AI面试准确率TOP榜:92%一致性背后,谁在定义行业新标准?

当年ChatGPT的横空出世,让全世界第一次见识到通用大模型的对话能力;DeepSeek 的爆发,则将AI的火种真正播撒到中国各行各业的毛细血管中,而在人力资源行业作为数字化转型的前沿阵地,首当其冲迎来了AI的全面渗透 &#x…

作者头像 李华
网站建设 2026/5/21 22:23:32

6款靠谱降AI率工具 改写实力出众

写论文时总担心AI生成率太高影响成绩?别慌,这里整理了6款超实用的免费论文降AI率工具,堪称应对AI痕迹问题的"得力助手"。它们能有效识别并消除AI生成特征,降痕能力突出,帮你轻松降低查重率,顺利通…

作者头像 李华
网站建设 2026/5/21 22:22:46

尼日利亚商务邀约新型诈骗模式全面揭秘

尼日利亚邀请函诈骗近期高发,骗子常用快速催单、团队扩容、专业伪装三大套路设局。外贸企业务必掌握核实身份、严控人数、绑定预付款等核心要点,谨防中招。三大典型诈骗套路快速催单急要邀请函骗子发来泛泛询盘,对产品细节不问深究&#xff0…

作者头像 李华
网站建设 2026/5/21 22:20:10

算法实例分析:使数组相等的最小开销

使数组相等的最小开销通过题意分析可知要让所有值相等,必然不需要超出数据的最大最小值,因此左右边界可以预先缩小范围。然后根据我们上面的分析不断缩小搜索边界范围。关于函数的计算,只要统计所有数据与的差值再乘上权重即可。最后注意&…

作者头像 李华