CANN/ops-tensor GMM尾部分割调度器
Block Scheduler GMM ASWT With Tail Split【免费下载链接】ops-tensorops-tensor 是 CANN Compute Architecture for Neural Networks算子库中提供张量类计算的基础算子库采用模块化设计支持灵活的算子开发和管理。项目地址: https://gitcode.com/cann/ops-tensor代码位置功能说明Grouped Matmul 的 BlockScheduler 组件用于 QGMM MX Tensor API kernel。调度器按 group 逐次更新问题规模在 group 间延续物理核分配位置以均衡负载并在末组计算量较小时利用空闲核拆分 M/N tail tile。框架参考Block Scheduler 公共框架特殊约束适用路径适用于 grouped matmul 场景当前由GemmUniversal的 QGMM MX 特化使用不处理 split-KK 维仅作为 shape 字段保留。扫描策略使用 SWAT 扫描策略沿 M 轴以GMM_WINDOW_LEN为窗口组织 tile并在奇数行反向扫描 N 轴以提升局部性。Tail SplitTail split 由调用方在末组按需触发。SetTailAlign配置 M/N tail 的最小对齐粒度UpdateTailTile根据剩余空闲核数拆分末尾 M/N tail tile。特殊静态常量常量说明GMM_WINDOW_LENSWAT 扫描的 M 轴窗口长度当前为 4INNER_AXIS_MIN_SPLIT_VAL内轴最小切分值当前为 128特殊类型别名别名含义TupleShape问题规模Shapeint64_t, int64_t, int64_t, int64_tBlockCoordtile 坐标Coordint64_t, int64_t, int64_t, int64_t特殊数据结构Paramsstruct Params { int32_t baseM; int32_t baseN; };参数说明baseMM 轴基础 tile 大小baseNN 轴基础 tile 大小特殊成员方法构造函数__aicore__ inline BlockSchedulerGmmSwatWithTailSplit(const Params params) __aicore__ inline BlockSchedulerGmmSwatWithTailSplit(int32_t baseM, int32_t baseN, int32_t baseK)功能初始化 M/N 轴基础 tile 大小。三参数构造函数保留baseK以兼容 kernel 侧统一构造形式调度器内部不使用 K 轴切分。UpdateNextProblem 函数__aicore__ inline void UpdateNextProblem(const TupleShape problemShape)功能刷新当前 group 的m/n/k问题规模。重新计算 M/N tile 数、tail tile 大小、轮次和起止物理核。从上一 group 的结束核后继续分配实现 group 间负载均衡。UpdateBaseM 函数__aicore__ inline void UpdateBaseM(uint32_t baseM)功能更新 M 轴基础 tile 大小配合 kernel 侧 M 轴均衡逻辑使用。SetTailAlign 函数__aicore__ inline void SetTailAlign(uint32_t mTailAlign, uint32_t nTailAlign)功能配置 M/N tail split 的对齐粒度。UpdateTailTile会结合该粒度与剩余空闲核数计算 tail 拆分数。UpdateTailTile 函数__aicore__ inline void UpdateTailTile() __aicore__ inline void UpdateTailTile(uint32_t mTailCnt, uint32_t nTailCnt)功能无参版本根据当前 group 的 tail 大小和空闲核数自动计算 M/N tail split。有参版本按调用方指定的mTailCnt/nTailCnt更新 tail split 状态。GetTileIdx 函数__aicore__ inline bool GetTileIdx(BlockCoord blockCoord)功能返回当前核本轮需要处理的 tile 坐标。当当前核无更多 tile 时返回false。GetBlockShape 函数__aicore__ inline TupleShape GetBlockShape(const BlockCoord blockCoord)功能根据 tile 坐标返回当前 tile 的实际 M/N 形状。在 tail split 场景下返回值的第 3/4 维携带 M/N split 偏移当拆分后当前核没有有效工作量时返回{0, 0, 0, 0}。GetEndBlockIdx 函数__aicore__ inline int64_t GetEndBlockIdx() const功能返回当前 group 分配后的结束物理核索引。kernel 可据此判断末组是否有空闲核可用于 tail split。调度流程构造 scheduler - SetTailAlign - 每个 group 调用 UpdateNextProblem - 末组按需调用 UpdateTailTile - GetTileIdx 获取 tile 坐标 - GetBlockShape 获取 tile 形状和 tail split 偏移适用场景QGMM MX Tensor API kernel。group 间 M/N 规模动态变化的 grouped matmul。末组 tile 数少于可用核数需要利用空闲核拆分 M/N tail 的场景。【免费下载链接】ops-tensorops-tensor 是 CANN Compute Architecture for Neural Networks算子库中提供张量类计算的基础算子库采用模块化设计支持灵活的算子开发和管理。项目地址: https://gitcode.com/cann/ops-tensor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

PCB涂层检测:确保电路板可靠性的关键技术

PCB涂层检测:确保电路板可靠性的关键技术

1. PCB涂层检查为何成为质量防线的关键环节在PCB制造过程中,涂层质量直接影响着电路板的可靠性和使用寿命。我经手过的一个工业控制板项目就曾因为阻焊层厚度不均导致批量性绝缘失效,返工成本高达六位数。这个惨痛教训让我深刻认识到:涂层检查…

2026/7/4 7:23:38阅读更多 →
CANN/cannbot-skills 映射规格生成指南

CANN/cannbot-skills 映射规格生成指南

Step 5a-pre:映射规格生成 → S5_mapping_spec.md 【免费下载链接】cannbot-skills CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。 项目地址: https://gitcode.com/cann/cannbot-skills 职责&…

2026/7/4 7:23:38阅读更多 →
Elm-platform故障排除:常见安装问题的10个解决方案

Elm-platform故障排除:常见安装问题的10个解决方案

Elm-platform故障排除:常见安装问题的10个解决方案 【免费下载链接】elm-platform Bundle of all core development tools for Elm 项目地址: https://gitcode.com/gh_mirrors/el/elm-platform Elm-platform是Elm语言的核心开发工具集,为前端开发…

2026/7/4 7:23:38阅读更多 →
从0到1理解electron-redux架构:单源真理设计模式详解

从0到1理解electron-redux架构:单源真理设计模式详解

从0到1理解electron-redux架构:单源真理设计模式详解 【免费下载链接】electron-redux Use redux in the main and browser processes in electron 项目地址: https://gitcode.com/gh_mirrors/el/electron-redux 如果你正在使用Electron开发桌面应用&#xf…

2026/7/4 8:18:45阅读更多 →
Reacord核心组件解析:从按钮到嵌入消息的终极开发手册

Reacord核心组件解析:从按钮到嵌入消息的终极开发手册

Reacord核心组件解析:从按钮到嵌入消息的终极开发手册 【免费下载链接】reacord Create interactive Discord messages using React. ⚛ 项目地址: https://gitcode.com/gh_mirrors/re/reacord Reacord是一个基于React构建的强大库,让开发者能够轻…

2026/7/4 8:18:45阅读更多 →
AI提示词工程化:构建自动化测试体系保障代码生成稳定性

AI提示词工程化:构建自动化测试体系保障代码生成稳定性

1. 项目概述:为什么我们需要一个AI提示词测试体系?如果你最近在深度使用Cursor、Claude Code或者Windsurf这类AI编程工具,大概率已经感受到了一个核心痛点:提示词(Prompt)的稳定性和效果,太不可…

2026/7/4 8:18:45阅读更多 →
CANN/asc-devkit数据块广播加载

CANN/asc-devkit数据块广播加载

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

2026/7/4 8:18:45阅读更多 →
MedLab在典型生理学实验之神经干动作电位的引导

MedLab在典型生理学实验之神经干动作电位的引导

1.器材 MedLab生物信号采集处理系统,信号连接线、刺激输出线、刺激转接线(随机配置),神经屏蔽合。 2.操作过程 选工作方式 神经干动作电位属周期性快信号,适合用“示波器”方式采样。点击快捷工具栏上新建按钮旁的下拉箭头,在…

2026/7/4 8:18:45阅读更多 →
如何快速掌握VRRTest:终极可变刷新率检测工具完整指南

如何快速掌握VRRTest:终极可变刷新率检测工具完整指南

如何快速掌握VRRTest:终极可变刷新率检测工具完整指南 【免费下载链接】VRRTest A small utility I wrote to test variable refresh rate on Linux. Should work on all major OSes. 项目地址: https://gitcode.com/gh_mirrors/vr/VRRTest 想要验证显示器可…

2026/7/4 8:13:44阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/3 14:18:39阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/3 14:38:35阅读更多 →
端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑

端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑

1. 项目概述:当算法工程师走进GTC26展厅,看到的不是芯片,而是“端到端”的呼吸节奏“端到端”这三个字,在GTC’26现场出现的频率,高得像NVLink带宽测试时的峰值曲线——它不再是一个论文里的技术路径选项,而…

2026/7/4 0:02:48阅读更多 →
缺牙修复科普:常见义齿类型与选择参考

缺牙修复科普:常见义齿类型与选择参考

缺牙修复科普:常见义齿类型与选择参考牙齿缺失是中老年人群中较为常见的口腔问题,不仅会造成咀嚼不便、进食受影响,长期还可能对营养摄入与日常社交带来困扰。义齿是改善缺牙问题的常用方式,目前市面上的义齿种类较多,…

2026/7/4 0:02:48阅读更多 →
STM32F091RC与LTC6904实现高精度方波信号生成

STM32F091RC与LTC6904实现高精度方波信号生成

1. 项目概述:LTC6904与STM32F091RC的精准方波生成方案在嵌入式系统开发中,精确的时钟信号和定时控制往往是项目成败的关键。LTC6904作为一款低功耗、高精度的可编程振荡器芯片,与STM32F091RC这款ARM Cortex-M0内核微控制器的组合,…

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

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

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

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

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

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

2026/7/4 2:33:55阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

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

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

2026/7/4 2:33:55阅读更多 →