news 2026/5/20 4:39:12

CANN/asc-devkit Matmul Init接口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/asc-devkit Matmul Init接口

Init

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

产品支持情况

产品

Tiling参数传入栈地址的接口

Tiling参数传入GM地址的接口

Ascend 950PR/Ascend 950DT

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

Atlas A2 训练系列产品 / Atlas A2 推理系列产品

Atlas 200I/500 A2 推理产品

x

Atlas 推理系列产品 AI Core

x

Atlas 推理系列产品 Vector Core

x

x

Atlas 训练系列产品

x

x

Kirin X90

Kirin 9030

功能说明

Init主要用于对Matmul对象中的Tiling数据进行初始化,根据Tiling参数进行资源划分,Tiling参数的具体介绍请参考Matmul Tiling侧接口。

开发者可以先通过REGIST_MATMUL_OBJ不传入Tiling参数对单个Matmul对象进行初始化,后续通过Init接口单独传入Tiling参数,对Matmul对象中的Tiling数据进行调整。比如,Tiling参数可变的场景下,可以通过多次调用Init来重新设置Tiling参数。

不需要Tiling变更的场景下,推荐使用REGIST_MATMUL_OBJ传入Tiling参数进行初始化。

函数原型

  • Tiling参数传入栈地址

    __aicore__ inline void Init(const TCubeTiling* __restrict cubeTiling, TPipe* tpipe = nullptr)
  • Tiling参数传入GM地址

    __aicore__ inline void Init(const __gm__ TCubeTiling* gmCubeTiling, TPipe* tpipe = nullptr)

参数说明

表 1Tiling参数传入栈地址接口参数说明

参数名

输入/输出

描述

cubeTiling

输入

Matmul Tiling参数,TCubeTiling结构体定义请参见表1 TCubeTiling结构说明。

Tiling参数可以通过host侧GetTiling接口获取,并传递到kernel侧使用。在kernel侧调用GET_TILING_DATA实现将Tiling参数搬运到AI Core内的栈空间中,本接口传入Tiling参数中TCubeTiling结构体的栈地址。

tpipe

输入

Tpipe对象。

表 2Tiling参数传入GM地址接口参数说明

参数名

输入/输出

描述

gmCubeTiling

输入

Matmul Tiling参数,该参数指向gm上的一块内存地址,其中的数据类型是TCubeTiling结构体,TCubeTiling结构体定义请参见表1 TCubeTiling结构说明。

Tiling参数可以通过host侧GetTiling接口获取,并传递到kernel侧使用。在kernel侧调用GET_TILING_DATA_PTR_WITH_STRUCT获取gm上Tiling参数的指针,本接口传入Tiling参数中TCubeTiling结构体的GM地址。

tpipe

输入

Tpipe对象。

返回值说明

约束说明

  • Tiling参数传入栈地址的接口:

    无。

  • Tiling参数传入GM地址的接口:

    • 仅支持Matmul Tiling参数的部分常量化场景。
    • 不支持CPU域调试。

调用示例

  • Tiling参数传入栈地址

    GET_TILING_DATA(tilingData, tiling); // ... REGIST_MATMUL_OBJ(&pipe, GetSysWorkSpacePtr(), mm); mm.Init(&(tiling.cubeTilingData));
  • Tiling参数传入GM地址

    • 纯Cube模式

      #define ASCENDC_CUBE_ONLY GET_TILING_DATA_PTR_WITH_STRUCT(MatmulCustomTilingData, tilingDataPtr, tiling); KERNEL_TASK_TYPE_DEFAULT(KERNEL_TYPE_AIC_ONLY); // ... REGIST_MATMUL_OBJ(&pipe, GetSysWorkSpacePtr(), mm); mm.Init(&(tilingDataPtr->cubeTilingData));
    • MIX模式

      GET_TILING_DATA_PTR_WITH_STRUCT(MatmulCustomTilingData, tilingDataPtr, tiling); KERNEL_TASK_TYPE_DEFAULT(KERNEL_TYPE_MIX_AIC_1_2); // ... // MIX模式下,只调用REGIST_MATMUL_OBJ接口,传入Tiling参数的GM地址,不需调用Init接口 REGIST_MATMUL_OBJ(&pipe, GetSysWorkSpacePtr(), mm, &(tilingDataPtr->cubeTilingData));

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

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

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

终极指南:Ghost帖子查询API的高效内容过滤与数据导出技巧

终极指南:Ghost帖子查询API的高效内容过滤与数据导出技巧 【免费下载链接】Ghost Independent technology for modern publishing, memberships, subscriptions and newsletters. 项目地址: https://gitcode.com/GitHub_Trending/gh/Ghost Ghost作为现代出版…

作者头像 李华
网站建设 2026/5/20 4:36:14

特高压输电线路在线监测系统设计:从架构到嵌入式核心板选型实践

1. 特高压输电线路在线监测:从“人巡”到“智巡”的必然之选作为一名在工业物联网和嵌入式领域摸爬滚打了十多年的工程师,我亲眼见证了技术如何一步步改变传统行业的运维模式。电力行业,特别是特高压输电领域,就是一个典型的例子。…

作者头像 李华
网站建设 2026/5/20 4:32:04

太过负责,是项目经理职场最大的内耗

在项目管理这个行当里,负责常常被当作一种美德。 但凡事过犹不及。当“负责”变成“太过负责”,它就不再是美德,而是一场持续消耗自己的慢性灾难。 一、你分不清“负责”和“扛一切”的界限 “负责”这个词,在项目管理中被过度美化…

作者头像 李华
网站建设 2026/5/20 4:32:01

ChatGPT-Next-Web:跨平台AI对话的终极解决方案

ChatGPT-Next-Web:跨平台AI对话的终极解决方案 在人工智能快速发展的今天,拥有一个属于自己的智能对话助手已经成为许多人的需求。ChatGPT-Next-Web作为一款优秀的开源智能助手,让这一梦想变得触手可及。无需深厚的技术背景,任何…

作者头像 李华
网站建设 2026/5/20 4:30:07

从提示词到成片:2026年AI视频工作流效率革命——Top 5工具的Prompt工程兼容度、重绘响应延迟与跨平台资产复用率实测

更多请点击: https://intelliparadigm.com 第一章:2026年AI视频生成工具全景图谱与评测方法论 截至2026年,AI视频生成已从实验性原型迈入工业化应用阶段,工具生态呈现“三极分化”格局:消费级轻量工具专注短视频创意提…

作者头像 李华