Matmul Tiling类使用说明
Matmul Tiling类使用说明【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkitAscend C提供一组Matmul Tiling API方便用户获取Matmul kernel计算时所需的Tiling参数。用户只需要传入A/B/C矩阵的Position位置、Format格式和DType数据类型等信息调用API接口即可获取到Init中TCubeTiling结构体中的相关参数。Matmul Tiling API分为Matmul单核Tiling接口、多核Tiling接口和BatchMatmul Tiling接口分别用于Matmul单核计算、多核计算和BatchMatmul计算场景。获取Tiling参数的流程如下创建一个单核Tiling对象或多核Tiling对象或BatchMatmul Tiling对象。设置A、B、C、Bias的参数类型信息M、N、Ka、Kb形状信息等。调用GetTiling接口获取Tiling信息。使用Matmul单核Tiling接口、多核Tiling接口和BatchMatmul Tiling接口获取Tiling参数的样例如下Matmul单核Tilingauto ascendcPlatform platform_ascendc::PlatformAscendC(context-GetPlatformInfo()); matmul_tiling::MatmulApiTiling tiling(ascendcPlatform); // 设置A、B、C、Bias矩阵Position、Format、DType信息 tiling.SetAType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); tiling.SetBType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); tiling.SetCType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT); tiling.SetBiasType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT); tiling.SetShape(1024, 1024, 1024); // 设置单核计算的M、N、K大小 tiling.SetOrgShape(1024, 1024, 1024); // 设置原始输入M、N、K大小单核Tiling与SetShape一致。 // 若Ka,Kb不等长时设置tiling.SetOrgShape(1024,1024, 1024, 1280) tiling.EnableBias(true); // 设置matmul计算包含bias tiling.SetBufferSpace(-1, -1, -1); // 设定允许使用的空间缺省使用该AI处理器所有空间 optiling::TCubeTiling tilingData; int64_t ret tiling.GetTiling(tilingData); // if ret -1, get tiling failedMatmul多核Tilingauto ascendcPlatform platform_ascendc::PlatformAscendC(context-GetPlatformInfo()); matmul_tiling::MultiCoreMatmulTiling tiling(ascendcPlatform); tiling.SetDim(1); // 设置参与计算的核数为1 tiling.SetAType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); tiling.SetBType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); tiling.SetCType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT); tiling.SetBiasType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT); tiling.SetShape(1024, 1024, 1024); tiling.SetSingleShape(1024, 1024, 1024); tiling.SetOrgShape(1024, 1024, 1024); tiling.EnableBias(true); tiling.SetBufferSpace(-1, -1, -1); // 设定允许使用的空间缺省使用该AI处理器所有空间 optiling::TCubeTiling tilingData; int64_t ret tiling.GetTiling(tilingData); // if ret -1, get tiling failedBatchMatmul Tilingauto ascendcPlatform platform_ascendc::PlatformAscendC(context-GetPlatformInfo()); matmul_tiling::BatchMatmulTiling bmmTiling(ascendcPlatform); bmmTiling.SetAType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); bmmTiling.SetBType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); bmmTiling.SetCType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT); bmmTiling.SetBiasType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT); bmmTiling.EnableBias(true); bmmTiling.SetShape(64, 48, 32); bmmTiling.SetSingleShape(64, 48, 32); bmmTiling.SetOrgShape(64, 48, 32); // Layout类型为NORMAL时,通过SetBatchInfoForNormal设置A、B、C矩阵的Layout轴信息 bmmTiling.SetBatchInfoForNormal(2, 2, 64, 48, 32); // Layout类型为BSNGD、SBNGD、BNGS1S2时,通过SetALayout、SetBLayout、SetCLayout设置A、B、C矩阵的Layout轴信息 // bmmTiling.SetALayout(3, 64, 2, 2, 32); // bmmTiling.SetBLayout(3, 32, 2, 2, 48); // bmmTiling.SetCLayout(3, 64, 2, 2, 48); bmmTiling.SetBatchNum(2); bmmTiling.SetBufferSpace(-1, -1, -1); // 设定允许使用的空间缺省使用该AI处理器所有空间 optiling::TCubeTiling tilingData; int64_t ret bmmTiling.GetTiling(tilingData); // if ret -1, get tiling failed接口列表如下表1MatmulApiTiling/MultiCoreMatmulTiling/BatchMatmulTiling共有接口列表接口功能SetAType设置A矩阵的位置数据格式数据类型是否转置等信息。SetBType设置B矩阵的位置数据格式数据类型是否转置等信息。SetCType设置C矩阵的位置数据格式数据类型等信息。SetDequantType设置反量化的模式。SetBiasType设置Bias的位置数据格式数据类型等信息。SetShape设置Matmul单次计算的形状singleM、singleN、singleK单位为元素个数。SetOrgShape设置Matmul计算时的原始完整的形状M、N、Ka、Kb单位为元素个数。SetALayout设置A矩阵的Layout轴信息。SetBLayout设置B矩阵的Layout轴信息。SetCLayout设置C矩阵的Layout轴信息。SetBatchInfoForNormal设置A/B矩阵的M/N/K轴信息以及A/B矩阵各自的Batch数。SetBatchNum设置多Batch计算的最大Batch数。EnableBias设置Bias是否参与运算。SetBias设置Bias是否参与运算。建议使用EnableBias接口。SetFixSplit设置固定的baseM、baseN、baseK单位为元素个数。SetBufferSpace设置Matmul计算时可用的L1/L0C/UB空间大小单位为字节。SetTraverse设置遍历方式M轴优先还是N轴优先。SetMadType设置是否开启HF32模式。当前版本暂不支持。SetSplitRange设置baseM/baseN/baseK的最大值和最小值。SetMatmulConfigParams自定义设置MatmulConfig参数。SetDoubleBuffer设置A/B/C/Bias是否开启double buffer功能以及是否需要做ND2NZ或者NZ2ND的转换。该接口为预留接口当前版本暂不支持。GetBaseM获取baseM值。GetBaseN获取baseN值。GetBaseK获取baseK值。GetTiling获取Tiling参数。表2MultiCoreMatmulTiling其他接口接口功能SetDim设置多核Matmul时可以参与运算的核数。SetSingleRange设置singleCoreM/singleCoreN/singleCoreK的最大值与最小值单位为元素个数。SetSingleShape设置Matmul单核计算的形状singleCoreM、singleCoreN、singleCoreK单位为元素个数。GetSingleShape获取计算后的singleCoreM/singleCoreN/singleCoreK。SetAlignSplit设置多核切分时singleCoreM/singleCoreN/singleCoreK的对齐值。GetCoreNum获得多核切分后使用的numBlocks。SetSplitK多核场景开启切K轴。建议使用EnableMultiCoreSplitK接口。EnableMultiCoreSplitK多核场景开启切K轴。表3BatchMatmulTiling其他接口接口功能GetCoreNum获得多核切分后使用的numBlocks。需要包含的头文件Matmul单核Tiling#include lib/matmul/matmul_tiling.hMatmul多核Tiling#include lib/matmul/bmm_tiling.hBatchMatmul Tiling#include lib/matmul/bmm_tiling.h【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Perlite链接系统:实现Obsidian双向链接的Web版本

Perlite链接系统:实现Obsidian双向链接的Web版本

Perlite链接系统:实现Obsidian双向链接的Web版本 【免费下载链接】Perlite A web-based markdown viewer optimized for Obsidian 项目地址: https://gitcode.com/GitHub_Trending/pe/Perlite Perlite是一款专为Obsidian笔记优化的Web版Markdown查看器&#…

2026/7/5 20:18:12阅读更多 →
Rust开发者必备:indoc宏快速上手教程,5分钟掌握缩进字符串技巧

Rust开发者必备:indoc宏快速上手教程,5分钟掌握缩进字符串技巧

Rust开发者必备:indoc宏快速上手教程,5分钟掌握缩进字符串技巧 【免费下载链接】indoc Indented document literals for Rust 项目地址: https://gitcode.com/gh_mirrors/in/indoc indoc是Rust语言中一款强大的缩进文档字面量宏工具,它…

2026/7/5 20:18:12阅读更多 →
LLM Sandbox:安全执行AI生成代码的轻量级沙盒环境技术解析

LLM Sandbox:安全执行AI生成代码的轻量级沙盒环境技术解析

LLM Sandbox:安全执行AI生成代码的轻量级沙盒环境技术解析 【免费下载链接】llm-sandbox Lightweight and portable LLM sandbox runtime (code interpreter) Python library. 项目地址: https://gitcode.com/gh_mirrors/ll/llm-sandbox 在AI代码生成技术快速…

2026/7/5 20:18:12阅读更多 →
AssetRipper终极指南:5分钟掌握Unity游戏资源提取的完整方法

AssetRipper终极指南:5分钟掌握Unity游戏资源提取的完整方法

AssetRipper终极指南:5分钟掌握Unity游戏资源提取的完整方法 【免费下载链接】AssetRipper GUI application to analyze game files 项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper 你是否曾面对Unity游戏的资源文件束手无策?那些…

2026/7/5 21:23:17阅读更多 →
B站下载神器BiliTools终极指南:跨平台免费开源工具箱完整使用教程

B站下载神器BiliTools终极指南:跨平台免费开源工具箱完整使用教程

B站下载神器BiliTools终极指南:跨平台免费开源工具箱完整使用教程 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliT…

2026/7/5 21:23:17阅读更多 →
工业级传感器与执行器控制方案:基于AD74115H与STM32F765ZI

工业级传感器与执行器控制方案:基于AD74115H与STM32F765ZI

1. 项目概述:工业级传感器与执行器控制方案在工业自动化和嵌入式系统开发领域,如何高效连接各类传感器和执行器一直是工程师面临的挑战。基于AD74115H、ADP1034和STM32F765ZI的硬件组合,我们能够构建一个高度灵活、性能稳定的工业级控制平台。…

2026/7/5 21:23:17阅读更多 →
5分钟快速上手C-Qwen3-Embedding-Reranker-0.6B:轻量级文本嵌入模型的终极指南

5分钟快速上手C-Qwen3-Embedding-Reranker-0.6B:轻量级文本嵌入模型的终极指南

5分钟快速上手C-Qwen3-Embedding-Reranker-0.6B:轻量级文本嵌入模型的终极指南 【免费下载链接】C-Qwen3-Embedding-Reranker-0.6B 项目地址: https://ai.gitcode.com/hf_mirrors/keh123000/C-Qwen3-Embedding-Reranker-0.6B 在当今人工智能快速发展的时代&…

2026/7/5 21:23:17阅读更多 →
基于Spark的分布式智能电影推荐系统完整实战指南

基于Spark的分布式智能电影推荐系统完整实战指南

基于Spark的分布式智能电影推荐系统完整实战指南 【免费下载链接】Movie_Recommend 基于Spark的电影推荐系统,包含爬虫项目、web网站、后台管理系统以及spark推荐系统 项目地址: https://gitcode.com/gh_mirrors/mo/Movie_Recommend 在信息爆炸的时代&#x…

2026/7/5 21:23:17阅读更多 →
终极指南:5分钟学会在电脑上玩转PS3游戏-RPCS3模拟器完整教程

终极指南:5分钟学会在电脑上玩转PS3游戏-RPCS3模拟器完整教程

终极指南:5分钟学会在电脑上玩转PS3游戏-RPCS3模拟器完整教程 【免费下载链接】rpcs3 PlayStation 3 emulator and debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 想要在现代电脑上重温PlayStation 3的经典游戏吗?RPCS3作为全…

2026/7/5 21:18:17阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/5 1:30:27阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/5 3:48:10阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/5 3:48:09阅读更多 →