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

CANN/catlass aclnn接口算子接入示例

basic_matmul_aclnn example【免费下载链接】catlass本项目是CANN的算子模板库提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlassaclnn接口是CANN软件栈一直沿用的接口msOpGen工具是CANN提供可以生成该接口工程框架的工具便于用户编写一个具有aclnn接口的算子并使能CANN软件栈上的各种功能。该样例提供CATLASS算子模板接入msOpGen工程的示例代码与注意事项并提供CATLASS example风格的调用示例。下面以basic_matmul接入为例进行示例利用msOpGen工具接入该算子模板。1. 创建算子工程参考创建算子工程链接编写一个算子原型的json文件并生成对应工程。编写json相关示例代码catlass_basic_matmul.json生成工程执行下列脚本调用msOpGen生成算子工程。msopgen gen -i catlass_basic_matmul.json -c ai_core-soc_version -lan cpp -out catlass_basic_matmul其中soc_version可通过npu-smi info查看形如Ascendxxxyyy。需保证输入的json配置文件上例中的catlass_basic_matmul.json具有644的权限需保证输出的文件路径上例中的catlass_basic_matmul具有755的权限2. 编写Host代码参考Host侧Tiling实现-基本流程实现TilingFunc。若需要使能算子入图请参考算子入图GE图开发实现InferShape和InferDataType。相关示例代码 op_host/catlass_basic_matmul.cpp op_host/catlass_basic_matmul_tiling.h3. 编写Device代码参考Kernel侧算子实现实现kernel代码。相关示例代码 op_kernel/catlass_basic_matmul.cpp注意事项我们需要增加编译选项来引入CATLASS的头文件。在op_kernel/CMakeLists.txt中增加包含路径和架构宏选项。添加包含路径选项-I${CATLASS_INCLUDE_PATH}。其中${CATLASS_INCLUDE_PATH}是CATLASS代码仓下的include文件夹的路径需根据环境实际情况进行配置。添加架构宏选项-DCATLASS_ARCH${ARCH}。其中${ARCH}是对应架构的编号。根据CANN版本的不同默认写法有所不同CANN版本9.0.0.beta2# ... npu_op_kernel_options(ascendc_kernels ALL OPTIONS -I${CATLASS_INCLUDE_PATH}) # ...CANN版本9.0.0.beta2# set custom compile options if (${CMAKE_BUILD_TYPE}x STREQUAL Debugx) add_ops_compile_options(ALL OPTIONS -g -O0) endif() add_ops_compile_options(ALL OPTIONS -I${CATLASS_INCLUDE_PATH}) add_kernels_compile()msOpGen工程的分离编译模式不支持直接将结构体如Catlass::GemmCoord作为kernel的参数传入。当需要使用结构体时需要通过tiling地址传递成员数据然后在kernel侧重新构造。// 正确 extern C __global__ __aicore__ void catlass_basic_matmul(GM_ADDR self, GM_ADDR mat2, GM_ADDR out, GM_ADDR workspace, GM_ADDR tiling) { GET_TILING_DATA(tiling_data, tiling); Catlass::GemmCoord problemShape{tiling_data.m, tiling_data.n, tiling_data.k}; // ... } // 暂不支持 extern C __global__ __aicore__ void catlass_basic_matmul(GM_ADDR self, GM_ADDR mat2, GM_ADDR out, GM_ADDR workspace, Catlass::GemmCoord problemShape) { // ... }4. 编译、部署参考算子工程编译、算子包部署进行编译、部署并设定环境变量。一般来说调用者需要添加头文件aclnn_catlass_basic_matmul.h并链接libcust_opapi.so。在不修改工程参数的情况下这两个文件的位置如下$ASCEND_HOME_PATH/opp/vendors/customize/op_api/include/aclnn_catlass_basic_matmul.h $ASCEND_HOME_PATH/opp/vendors/customize/op_api/lib/libcust_opapi.so这可作为Makefile/CMakeLists.txt的编写参考。可在5. 调用中查看CMake编写示例。5. 调用参考接口简介尝试调用。可参考以下内容编写CMakeLists.txtproject(basic_matmul_aclnn) cmake_minimum_required(VERSION 3.22) set(CATLASS_REPO_DIR 修改为实际环境上的CATLASS仓库路径) add_executable(basic_matmul_aclnn basic_matmul_aclnn.cpp) target_include_directories(basic_matmul_aclnn PRIVATE ${CATLASS_REPO_DIR}/examples/common ${CATLASS_REPO_DIR}/include $ENV{ASCEND_HOME_PATH}/include $ENV{ASCEND_HOME_PATH}/include/aclnn $ENV{ASCEND_HOME_PATH}/include/experiment/runtime $ENV{ASCEND_HOME_PATH}/include/experiment/msprof # 自定义算子包头文件目录 $ENV{ASCEND_HOME_PATH}/opp/vendors/customize/op_api/include ) target_link_directories(basic_matmul_aclnn PRIVATE $ENV{ASCEND_HOME_PATH}/lib64 # 自定义算子包库文件目录 $ENV{ASCEND_HOME_PATH}/opp/vendors/customize/op_api/lib/ ) target_link_libraries(basic_matmul_aclnn PRIVATE ascendcl nnopbase # 自定义算子包库文件名称 cust_opapi )预置示例我们对以上操作过程进行了集成以便快速体验aclnn工程接口。编译指定用例bash scripts/build.sh basic_matmul_aclnn cd output/run chmod x ./custom_opp_*.run ./custom_opp_*.run export LD_LIBRARY_PATH$ASCEND_HOME_PATH/opp/vendors/customize/op_api/lib/:${LD_LIBRARY_PATH} cd output/bin # 可执行文件名 |矩阵m轴|n轴|k轴|Device ID # Device ID可选默认为0 ./basic_matmul_aclnn 256 512 1024 0执行结果如下说明精度比对成功。Compare success.注意事项本示例仅用于CATLASS算子接入msopgen的参考为保证代码简洁不进行泛化的支持如多个算子、多个平台等。目前仅提供basic_matmul算子接入示例。示例仅支持以下产品Atlas A2 训练系列产品 / Atlas A2 推理系列产品(2201架构)Atlas A3 训练系列产品 / Atlas A3 推理系列产品(2201架构)【免费下载链接】catlass本项目是CANN的算子模板库提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

CANN/catlass aclnn接口算子接入示例

basic_matmul_aclnn example 【免费下载链接】catlass 本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。 项目地址: https://gitcode.com/cann/catlass aclnn接口是CANN软件栈一直沿用的接口,msOpGen工具是CANN提供可…...

CANN驱动获取算力组aicore利用率

dcmi_get_capability_group_aicore_usage 【免费下载链接】driver 本项目是CANN提供的驱动模块,实现基础驱动和资源管理及调度等功能,使能昇腾芯片。 项目地址: https://gitcode.com/cann/driver 函数原型 int dcmi_get_capability_group_aicore…...

CANN驱动风扇转速查询API

dcmi_get_device_fan_speed 【免费下载链接】driver 本项目是CANN提供的驱动模块,实现基础驱动和资源管理及调度等功能,使能昇腾芯片。 项目地址: https://gitcode.com/cann/driver 函数原型 int dcmi_get_device_fan_speed(int card_id, int de…...

竟然还在手动转写录音逐字稿?2026年这4款把录音转文字的app帮你月省25小时加班时间

很多人选录音转文字工具,第一个坑就是只看表面订阅价,觉得越便宜甚至免费越好,其实根本不算算你改稿子花的时间值多少钱。我自己做了3年效率工具测评,亲测过十几款转写工具,今天直接给结论:听脑AI是目前同类…...

老照片修复神器:AI超清画质增强实测,一键让模糊照片变高清

老照片修复神器:AI超清画质增强实测,一键让模糊照片变高清 1. 引言:老照片修复的AI解决方案 1.1 老照片修复的普遍需求 翻开相册,那些泛黄的老照片承载着珍贵的记忆,却常常因为年代久远而变得模糊不清。无论是家庭相…...

CANN/pypto按位异或操作API文档

# pypto.bitwise_xor 【免费下载链接】pypto PyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。 项目地址: https://gitcode.com/cann/pypto 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atla…...

用了半年只留下这1个!2026会议纪要录音转文字工具我真心安利给所有打工人

上周开了3小时季度总结会,散会leader甩了一句“下班前把纪要发我”,换做半年前我得抱着录音逐句听,熬到九点还错漏一堆;上个月跑广州见客户,对方全程粤语,之前用的工具识别出来一半都是乱码;做博…...

CANN/pyasc数据拷贝API文档

asc.language.basic.data_copy 【免费下载链接】pyasc 本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。 项目地址: https://gitcode.com/cann/pyasc asc.language.basic.data_co…...

CANN/sip BLAS Ssyr2算子文档

Ssyr2 【免费下载链接】sip 本项目是CANN提供的一款高效、可靠的高性能信号处理算子加速库,基于华为Ascend AI处理器,专门为信号处理领域而设计。 项目地址: https://gitcode.com/cann/sip 产品支持情况 产品是否支持Atlas 200I/500 A2 推理产品…...

别再只会 pip install 了!Win11上管理Python包的5个高效技巧(含更新/降级/换源)

Win11上Python包管理的5个高阶技巧:从基础安装到专业配置 每次看到同事在终端里反复输入pip install时,我都忍不住想分享几个改变我工作效率的习惯。作为在Windows 11上管理过数十个Python项目的开发者,我深刻体会到:包管理不是安…...

阴阳师百鬼夜行AI自动化脚本:5分钟轻松收集式神碎片终极指南

阴阳师百鬼夜行AI自动化脚本:5分钟轻松收集式神碎片终极指南 【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript 还在为阴阳师百鬼夜行中繁琐的撒豆操作而烦恼吗&#xf…...

CANN/AMCT量化感知训练配置创建

create_quant_retrain_config 【免费下载链接】amct AMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。 项目地址: https://gitcode.com/cann/amct 产品支持情况 产品 是否支持 Ascend 950PR/Ascend 950DT √ Atlas A3 训练系列产品 / Atlas A3 推理系列产品 √ At…...

第12章 后土化轮回:安装垃圾回收机制?六道是六个分类对象池,亡魂不再内存泄漏

第12章 后土化轮回:安装垃圾回收机制?六道是六个分类对象池,亡魂不再内存泄漏 系列导读:这是《洪荒操作系统》第12章。巫妖大战后,天地间飘满了亡魂,造成严重的内存泄漏。后土以身化轮回,建立了…...

AI驱动优化算法选择与设计:从元学习到自动化求解

1. 项目概述:当优化遇见智能在工业排产、物流调度、金融风控这些硬核领域里,我们每天都在和“优化”打交道。简单说,就是在一堆限制条件下,找到一个最好的方案。过去十几年,我的工具箱里塞满了各种算法:梯度…...

从预测到响应:构建基于状态识别的量化交易系统

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫“Ctrl-Alt-DefeatTheMarket”。光看这个名字,一股浓浓的极客风和挑战精神就扑面而来了。这显然不是一个传统的量化交易策略库,它更像是一个技术宣言,或者说&#x…...

ClawZ:桌面AI助手革命,零门槛部署OpenClaw智能体

1. 项目概述:从命令行到桌面的AI助手革命如果你和我一样,对AI Agent(智能体)的潜力感到兴奋,但又对在终端里敲命令、配置环境、调试YAML文件感到头疼,那么ClawZ的出现,绝对是一个值得你停下手中…...

Hyperf 默认使用 Nikic/FastRoute 作为路由器。

它的本质是:FastRoute 是一个基于 正则表达式编译 和 前缀树/分派树 (Dispatch Tree) 的轻量级 HTTP 路由器。它不依赖传统的线性遍历或简单的字符串匹配,而是在启动阶段将所有路由规则编译成一个高效的 数据结构(通常是嵌套数组或状态机&…...

基于MCP协议构建AI助手与Google Drive的安全连接方案

1. 项目概述:一个连接Google生态与AI的桥梁 如果你正在尝试让AI助手(比如Claude、Cursor等)直接操作你的Google Drive、Gmail或者Google Calendar,而不是仅仅通过网页搜索获取信息,那么你很可能已经遇到了“MCP”&…...

CANN算子测试赛Add报告

【免费下载链接】cann-competitions 本仓库用于 CANN 开源社区各类竞赛、开源课题、社区任务等课题发布、开发者作品提交和展示。 项目地址: https://gitcode.com/cann/cann-competitions 元信息(请如实填写,此区块将由组委会脚本自动解析&#xf…...

别人写的代码看不懂,到底是谁的水平有问题

你突然看到某段代码用了工厂模式,第一反应可能是:有必要吗?直接new一个对象不行吗?干嘛「故意」增加阅读难度?其实不是这样的,当你接触过的高手多了后,你会自然而然的认为:高手的代码…...

AI光学硬件加速:1.2Tb/s高光谱视频实时理解平台架构与实践

1. 项目概述:当AI遇见光,一场关于“看见”的革命最近和几个做自动驾驶和工业质检的朋友聊天,大家不约而同地提到了一个痛点:传统的RGB摄像头,甚至多光谱设备,在面对一些复杂场景时,总感觉“力不…...

从代码生成到自主学习:构建AI编程智能体的核心架构与实践

1. 项目概述:一个学习编码的智能体最近在GitHub上看到一个挺有意思的项目,叫sanbuphy/learn-coding-agent。光看名字,你可能会觉得这又是一个“教你编程”的AI工具,市面上这类产品已经多如牛毛了。但当我深入探究其代码和设计理念…...

分布式追踪深度解析:解锁微服务架构的可观测性

分布式追踪深度解析:解锁微服务架构的可观测性 一、分布式追踪的概念与价值 1.1 分布式追踪的定义 分布式追踪是一种用于监控和分析分布式系统中请求流的技术。它通过在请求流经各个服务时记录跟踪信息,帮助开发者理解系统的行为、定位性能瓶颈和故障点。…...

3步搭建个人游戏串流服务器:Sunshine让你在任何设备畅玩3A大作

3步搭建个人游戏串流服务器:Sunshine让你在任何设备畅玩3A大作 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否曾希望用轻薄笔记本流畅运行最新的3A游戏大作&…...

追赶行业节奏!DeepSeek计划6月推V4.1,500亿融资加速商业化转型

据The Information报道,DeepSeek告知潜在投资者将提高模型发布频率,6月将推出V4.1版本。此前其模型迭代慢,此次改变或助其从技术理想迈向商业落地。从慢到快:迭代节奏转变DeepSeek曾以技术深度闻名,但模型迭代速度长期…...

Java AI应用开发实战:langchain4j框架核心架构与生产实践指南

1. 项目概述:当Java遇上AI应用开发如果你是一名Java开发者,最近被各种AI应用搞得心痒痒,看着Python社区里LangChain、LlamaIndex等框架玩得风生水起,自己却只能对着HTTP API调参,感觉使不上劲,那么“langch…...

保姆级教程:Qwen-Image-2512-ComfyUI内置工作流怎么用?手把手教你5分钟出图

保姆级教程:Qwen-Image-2512-ComfyUI内置工作流怎么用?手把手教你5分钟出图 1. 快速部署与启动 1.1 准备工作 在开始之前,请确保你的环境满足以下要求: 显卡:NVIDIA RTX 3060及以上(8GB显存&#xff09…...

ACAI平台:基于数据湖与智能调度的MLOps实验管理实践

1. 项目概述:当MLOps遇上数据湖与智能调度在机器学习(ML)项目从研究走向生产的漫长征途中,实验管理一直是个让人又爱又恨的环节。爱的是,每一次实验都可能是通往更高模型性能的钥匙;恨的是,随着…...

第三代社保卡全功能使用指南

文章目录社保卡代际区分(因省份而存在差异)第三代社保卡申领官方推广时间节点说明申领基础条件线下申领(支持即时制卡,当场拿卡)线上申领(邮寄到家/银行网点自取)第三代社保卡全功能指南基础社保…...

Qwen-Image-2512+LoRA像素艺术作品集:Retro、Cyberpunk、Fantasy三风格实测

Qwen-Image-2512LoRA像素艺术作品集:Retro、Cyberpunk、Fantasy三风格实测 1. 像素艺术生成新体验 最近在测试Qwen-Image-2512结合Pixel Art LoRA的像素艺术生成能力时,我被它的表现惊艳到了。这个组合不仅能生成传统8-bit风格的像素画,还能…...