Ascend C矩阵计算IBShare配置函数
GetIBShareNormConfig【免费下载链接】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 训练系列产品不支持Kirin X90不支持Kirin 9030不支持功能说明用于配置IBShare模板的参数获取自定义IBShare模板。IBShare模板的介绍请参考表模板特性。函数原型__aicore__ constexpr MatmulConfig GetIBShareNormConfig(const bool intrinsicsLimit false, const bool batchLoop false, const bool isVecND2NZ false, const BatchMode bmmMode BatchMode::BATCH_LESS_THAN_L1, const bool isDoubleCache false, const bool enUnitFlag true)参数说明本接口的所有参数用于设置MatmulConfig结构体中的参数其中互相对应的参数的功能作用相同。表1接口参数说明参数名输入/输出描述intrinsicsLimit输入用于设置参数intrinsicsCheck。当左矩阵或右矩阵在单核上内轴即尾轴大于等于65535元素个数时是否开启循环执行数据从Global Memory到L1 Buffer的搬入。例如左矩阵A[M, K]单核上的内轴数据singleCoreK大于65535配置该参数为true后API内部通过循环执行数据的搬入。参数取值如下false当左矩阵或右矩阵在单核上内轴大于等于65535时不开启循环执行数据的搬入默认值。true当左矩阵或右矩阵在单核上内轴大于等于65535时开启循环执行数据的搬入。对于Ascend 950PR/Ascend 950DTMxMatmul场景不支持此参数。batchLoop输入用于设置参数isNBatch。是否多Batch输入多Batch输出。仅对BatchMatmul有效开启多Batch后仅支持Norm模板且需调用IterateNBatch实现多Batch输入多Batch输出。参数取值如下false不开启多Batch默认值。true开启多Batch。isVecND2NZ输入用于设置参数enVecND2NZ。开启通过vector指令进行ND2NZ。开启时需要设置SetLocalWorkspace。参数取值如下false不开启通过vector指令进行ND2NZ默认值。true开启通过vector指令进行ND2NZ。针对Atlas 推理系列产品AI Core在Unified Buffer空间足够的条件下Unified Buffer空间大于2倍TCubeTiling的transLength参数建议优先开启搬运性能更好。对于Ascend 950PR/Ascend 950DTMxMatmul场景不支持此参数。bmmMode输入用于设置参数batchMode。该参数用于BatchMatmul场景。BatchMatmul场景中Layout类型为NORMAL时设置BatchMatmul输入A/B矩阵的多batch数据总和与L1 Buffer的大小关系。参数取值如下BatchMode::BATCH_LESS_THAN_L1多batch数据总和L1 Buffer SizeBatchMode::BATCH_LARGE_THAN_L1多batch数据总和L1 Buffer SizeBatchMode::SINGLE_LARGE_THAN_L1单batch数据总和L1 Buffer Size。isDoubleCache输入用于设置参数enableDoubleCache。开启IBShare模板后在L1 Buffer上是否同时缓存两块数据。参数取值如下falseL1 Buffer上同时缓存一块数据默认值。true开启L1 Buffer上同时缓存两块数据。注意该参数取值为true时需要控制基本块大小防止两块数据的缓存超过L1 Buffer大小限制。包括MxMatmul场景Ascend 950PR/Ascend 950DT不支持此参数。enUnitFlag输入用于设置参数enUnitFlag。开启UnitFlag功能使计算与搬运流水并行提高性能。Norm, IBShare下默认开启MDL下默认不开启。参数取值如下false不开启UnitFlag功能。true开启UnitFlag功能。注意对于Ascend 950PR/Ascend 950DT的MxMatmul场景仅在NORM/MDL模板、A和scaleA不转置、 B和scaleB转置、C为ND格式输出到GM场景下开启UnitFlag功能有性能收益。返回值说明MatmulConfig结构体。约束说明IBShare模板当前仅适用于MIX场景不支持纯CUBE场景。调用示例// 配置IBShare模板的参数获取自定义IBShare模板。 constexpr MatmulConfig MM_CFG GetIBShareNormConfig( /* intrinsicsLimit */ false, /* batchLoop */ false, /* isVecND2NZ */ false, /* bmmMode */ BatchMode::BATCH_LESS_THAN_L1, /* isMsgReuse */ false, /* enableUBReuse */ true); // 常规Matmul计算最后输出使用自定义IBShare模板的计算结果 typedef AscendC::MatmulTypeAscendC::TPosition::GM, CubeFormat::ND, half aType; typedef AscendC::MatmulType AscendC::TPosition::GM, CubeFormat::ND, half, true /*开启矩阵转置*/, LayoutMode::NONE /*不开启BatchMatmul*/, true /*开启IBShare*/ bType; typedef AscendC::MatmulTypeAscendC::TPosition::GM, CubeFormat::ND, float cType; typedef AscendC::MatmulTypeAscendC::TPosition::GM, CubeFormat::ND, float biasType; AscendC::MatmulA_TYPE, B_TYPE, C_TYPE, BIAS_TYPE, MM_CFG mm; REGIST_MATMUL_OBJ(pipe, GetSysWorkSpacePtr(), mm, tiling); mm.SetTensorA(gm_a); mm.SetTensorB(gm_b); if (tiling.isBias) { mm.SetBias(gmBias); } mm.IterateAll(gm_c); mm.End();【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

CANN/asc-devkit Matmul ClearBias接口

CANN/asc-devkit Matmul ClearBias接口

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

2026/7/17 8:30:39阅读更多 →
CANN/asc-devkit:SwiGLU临时空间大小获取接口

CANN/asc-devkit:SwiGLU临时空间大小获取接口

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

2026/7/17 8:30:39阅读更多 →
5分钟搭建Unity游戏模组系统:BepInEx终极指南

5分钟搭建Unity游戏模组系统:BepInEx终极指南

5分钟搭建Unity游戏模组系统:BepInEx终极指南 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 如果你想让Unity游戏变得更有趣、更个性化,BepInEx就是你的最…

2026/7/17 8:30:39阅读更多 →
未来展望:Ternary-Bonsai-27B-gguf路线图与社区发展计划

未来展望:Ternary-Bonsai-27B-gguf路线图与社区发展计划

未来展望:Ternary-Bonsai-27B-gguf路线图与社区发展计划 【免费下载链接】Ternary-Bonsai-27B-gguf 项目地址: https://ai.gitcode.com/hf_mirrors/prism-ml/Ternary-Bonsai-27B-gguf Ternary-Bonsai-27B-gguf作为一款革命性的低比特语言模型,以…

2026/7/17 9:25:47阅读更多 →
SwinTransformer:计算机视觉中的滑动窗口注意力机制

SwinTransformer:计算机视觉中的滑动窗口注意力机制

1. SwinTransformer的前世今生 计算机视觉领域近年来最激动人心的变革,莫过于Transformer架构从自然语言处理向视觉任务的跨界迁移。传统卷积神经网络(CNN)统治视觉领域多年后,2020年Vision Transformer(ViT&#xff0…

2026/7/17 9:25:47阅读更多 →
为什么 DPDK VirtIO 只能跑到 40Gbps?—— 一次 KVM 虚拟交换机性能瓶颈定位全过程(下)

为什么 DPDK VirtIO 只能跑到 40Gbps?—— 一次 KVM 虚拟交换机性能瓶颈定位全过程(下)

接上文:为什么 DPDK VirtIO 只能跑到 40Gbps?—— 一次 KVM 虚拟交换机性能瓶颈定位全过程(上)-CSDN博客 七、Split Virtqueue:为什么一个队列要维护三张环? 定位到 Virtqueue 之后,我们继续深…

2026/7/17 9:25:47阅读更多 →
如何配置Shipper实现安全的蓝绿部署:7步避免生产环境灾难

如何配置Shipper实现安全的蓝绿部署:7步避免生产环境灾难

如何配置Shipper实现安全的蓝绿部署:7步避免生产环境灾难 【免费下载链接】shipper Kubernetes native multi-cluster canary or blue-green rollouts using Helm 项目地址: https://gitcode.com/gh_mirrors/sh/shipper Shipper是一款基于Kubernetes的多集群…

2026/7/17 9:25:47阅读更多 →
为什么 DPDK VirtIO 只能跑到 40Gbps?—— 一次 KVM 虚拟交换机性能瓶颈定位全过程(上)

为什么 DPDK VirtIO 只能跑到 40Gbps?—— 一次 KVM 虚拟交换机性能瓶颈定位全过程(上)

一、一个令人困惑的现网问题某云计算厂商上线了一套基于 DPDK KVM 的高性能虚拟交换平台。整体网络架构如下:┌──────────────┐│ Physical NIC ││ Intel E810 │└──────┬───────┘│DPDK vSwitch│vhost-user│QEMU/KVM│VirtI…

2026/7/17 9:25:47阅读更多 →
Pyfakefs核心原理揭秘:如何在内存中构建虚拟文件系统

Pyfakefs核心原理揭秘:如何在内存中构建虚拟文件系统

Pyfakefs核心原理揭秘:如何在内存中构建虚拟文件系统 【免费下载链接】pyfakefs Provides a fake file system that mocks the Python file system modules. 项目地址: https://gitcode.com/gh_mirrors/py/pyfakefs Pyfakefs是一个强大的Python库&#xff0c…

2026/7/17 9:20:46阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/16 8:28:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/17 8:31:03阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/16 12:02:41阅读更多 →
VS Code 高效配置与个性化定制全攻略

VS Code 高效配置与个性化定制全攻略

1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…

2026/7/17 0:00:01阅读更多 →
从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。 对工程应用和在自己的图片上进行测试来…

2026/7/17 0:00:01阅读更多 →
WinRAR高效配置指南:从基础安装到高级压缩实战

WinRAR高效配置指南:从基础安装到高级压缩实战

前几天帮同事处理一个客户发来的压缩包,解压时系统自带的工具弹出一串乱码,换用 WinRAR 却顺利打开了。这种看似简单的场景,恰恰暴露了不同压缩工具在处理非标准编码、分卷压缩或加密文件时的差异。WinRAR 作为一款老牌工具,真正价…

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

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

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

2026/7/16 20:13:14阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

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

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

2026/7/16 8:58:42阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

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

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

2026/7/16 17:10:26阅读更多 →