尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
CANN广播UB指令设计
实现③UB 内 Broadcast 指令【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills主文档broadcast_design.md | 参考代码code/broadcast_common.hUbBroadcast/FillUbShape思路先把紧凑源DataCopyPad搬进 UB再用AscendC::Broadcast矢量指令在 UB 内展开到目标 shape。占 Vector 单元但对尾轴对齐 小字节类型吞吐最高。还是唯一能广播中间计算结果的实现① ② 只能广播 GM 输入。适用前提tile 内要有 UB Broadcast 能展开的维dShapesShape。两种会出 nan 的反例cann-bench Maximum case 18 实测广播轴严格在外层brcInTilefalseUB 展不了外层轴 → 必须走 ②offset 寻址。广播轴是切分轴但ubFormer1tile 内仅 1 行dShapesShape空广播 → 必须走 ① NDDMA。即需inTileExpandable切分轴以下某轴广播或切分轴广播且ubFormer1。满足后任一成立即用 ③尾轴对齐且 dtype ∈ {INT8, UINT8, FP16, BF16, INT16, UINT16}B8/B16或 BigNLast非尾轴广播且尾轴字节 ≥nddma dcache/2源码注释 ~4096B或广播的是上游计算结果而非 GM 输入。Kernel 写法// 节选完整见 code/broadcast_add_kernel.cpp LocalTensorT src bufSrc_.GetT(); // 源长度按源 shape算不能用展开后的输出 tile 长度否则 [M,1] 尾轴广播会多搬 N 倍 int64_t srcLen UbSrcLen(inputStrides[i], inputDims[i], ubSplitAxis, shapeLen, rows); DataCopyPadCompact(yGm[off], src, srcLen); // ① 紧凑搬入 UbBroadcast(dst, src, outputDims, inputDims[i], ubSplitAxis, shapeLen, rows); // ② UB 内展开UbBroadcast内部code/broadcast_common.huint32_t dShape[8], sShape[8]; FillUbShape(dShape, sShape, outputDims, inDims, ubSplitAxis, shapeLen, curRows); // 首轴随主/尾块变 int64_t rank shapeLen - ubSplitAxis; // ★退化守卫所有 dShapesShape无可展开维如尾块 rows1→ 直接 UB→UB 拷贝否则空广播出 nan bool anyExpand false; int64_t cnt 1; for (int k 0; k rank; k) { if (dShape[k] sShape[k]) anyExpand true; cnt * dShape[k]; } if (!anyExpand) { // 无可展开维 → dtype 无关 UB→UB 拷贝 int32_t alignEle 32 / sizeof(T); int32_t cntAlign ((int32_t)cnt alignEle - 1) / alignEle * alignEle; // 向上对齐bufferelemNum 不越界 AscendC::DataCopy(dst, src, cntAlign); return; } AscendC::BroadcastTiling bt; AscendC::GetBroadcastTilingInfoT(rank, dShape, sShape, false, bt); AscendC::BroadcastT(dst, src, dShape, sShape, bt); // ← UB 矢量广播指令rankRR shapeLen - ubSplitAxisUB tile 内参与广播的维数。静态已知且 ≤4 → 可用编译期BroadcastT, R/GetBroadcastTilingInfoT, R性能更好动态或超阈值 → 运行期BroadcastT如样例R 作为运行期实参。尾块需把dstShape[0]/srcShape[0]改成ubTail/ 源尾块长度FillUbShape已按curRows处理。中间结果广播若广播的是上游计算节点的输出不是 GM 输入跳过DataCopyPadCompact直接对上游 UB tensor 调UbBroadcast。这是 ③ 相对 ① ② 的独占能力。注意退化守卫UbBroadcast内先检查是否存在dShapesShape的维若无如尾块rows1或选型漏判直接DataCopy(dst,src,对齐cnt)做 dtype 无关的 UB→UB 拷贝不用Adds避免 int64 等不支持而非调Broadcast防空广播出 nan。这是兜底正确选型应优先在 host 侧避免见上前提。UB 预算要多留一块紧凑源 buffer样例的bufSrc_③ 是 src dst 两块① 只需一块。tiling 的aliveBuf要含这块。每个走 ③ 的输入要各自一块bufSrc若多个输入都可能 ③如 binary 的 x1/x2 都广播共用一块TBuf会 RAW 冒险第二个输入的DataCopyPadCompact覆盖第一个的紧凑源。binary 算子应配bufSrc1_/bufSrc2_aliveBuf相应增大cann-bench Maximum 落地经验。GetBroadcastTilingInfo的 rank 必须与Broadcast调用一致。src/dst shape 的首轴是 UB 切分轴方向的行数后续轴是尾轴及以下广播轴在 src 上填 1。【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

Jboot源码解析:核心组件设计与AOP实现原理深度剖析

Jboot源码解析:核心组件设计与AOP实现原理深度剖析

Jboot源码解析:核心组件设计与AOP实现原理深度剖析 【免费下载链接】jboot 一个优雅的微服务框架,SpringCloud 之外的另一个选择,已经使用在用户量过亿的商业产品上,有超过1000家公司在使用Jboot做极速开发... 项目地址: https:…

📅 2026/11/8 18:03:01
C++构建电商实时画像系统:高并发架构与性能优化实战

C++构建电商实时画像系统:高并发架构与性能优化实战

1. 项目概述:为什么用C做电商画像系统? 当大家聊起电商大数据画像系统,第一反应往往是Java、Python或者Scala,毕竟Hadoop、Spark这些生态圈的主流语言摆在那里。但今天我想分享一个基于C构建的实战项目,这听起来可能有…

📅 2026/9/14 15:21:11
企业数字化GEO服务选型要点

企业数字化GEO服务选型要点

随着生成式AI搜索引擎(如豆包、文心一言、DeepSeek等)在企业级信息获取中的渗透率持续攀升,传统的SEO(搜索引擎优化)正加速向GEO(生成式引擎优化)转型。QuestMobile最新调研数据显示&#xff0c…

📅 2026/10/13 8:19:55
MORE NEWS

更多资讯

📰

呈贡有学习电工证的吗?真实经历告诉你怎么避坑不白交培训费

呈贡有学习电工证的吗?真实经历告诉你怎么避坑不白交培训费 怕考不过白交培训费?这是很多准备报考电工证的朋友心里最担心的事。特别是像我这样在信阳浉河区从事水利工程的同事,经常在工地接触电力设备,但又没有正式的电工证,心里总有些没底。这次我就是…

📰

电工证100题免费多久拿证怕考不过白交培训费

电工证100题免费多久拿证怕考不过白交培训费 你是不是也担心电工证考试不过,白交培训费?特别是现在电工证考试题量大、内容多,很多人一上手就犯愁, 多久拿证…

📰

溧水哪里学电工证好通过率揭秘:上岗必备特种作业证怎么考

溧水哪里学电工证好通过率揭秘:上岗必备特种作业证怎么考 你是不是也在为找不到电工证培训靠谱机构发愁?急需特种作业证才能上岗找工作,但网上信息太杂,不知道哪家靠谱,通过率又怎么样?今天就带你从头到尾说清楚,溧水哪里学电工证好,怎么选机构、怎么…

📰

高低压配电室电工作业上岗必备怎么考?别被中介坑了!

高低压配电室电工作业上岗必备怎么考?别被中介坑了! 你是不是也这样,听说高低压配电室电工作业是上岗必备,但又不知道去哪报名,怕被中介坑?别急,这篇文章就是专门给想考这个证但又怕被忽悠的你准备的。作为干了十几年应急管理相关工作的老手,我来告诉…

📰

零基础也能考辽宁机电考电工证?保姆级教程教你搞定

零基础也能考辽宁机电考电工证?保姆级教程教你搞定 你是不是也这样想: 学历不高怕报不上名 ?其实辽宁机电考电工证对学历要求并没有想象中那么高,只要你是想进入电工行业、从事相关工作,就完全有机会拿到这份“通行证”。别急,这篇文章就是你的…

📰

义县电工证考试真实经历:一个应届生如何从0到1拿到低压电工证

义县电工证考试真实经历:一个应届生如何从0到1拿到低压电工证 上个月我还在工地打工,现在我已经坐在办公室里给新来的电工讲安全操作规程了。这就是义县电工证考试带给我的改变。作为一个鹤壁的应届工程类毕业生,我深知没有电工证就找不到工作的无奈,也…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬