发布时间:2026/7/11 15:18:53
CANN/cannbot-skills HIVM内建指令操作 HIVM 内建指令操作【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills关键词IntrinOp, GET.BLOCK.IDX, SET.FLAG.IMM, WAIT.FLAG.IMM, BARRIER, SET.FFTS.BASE.ADDR, SET.CROSS.CORE, INTRA.BLOCK概述HIVM 内建指令操作Intrinsic Operations是 HIVM 方言中最底层的操作直接对应 NPU 硬件指令。这些操作从 HIVMIntrinOps.td 定义继承自LLVM_IntrOpBase在 Lowering 的最终阶段由高层 HIVM 操作转换而来。内建指令操作通常不由用户直接编写而是由编译器 Pass 自动生成。了解这些操作有助于理解 HIVM IR 到硬件指令的映射关系。指令分类1. Block 索引指令指令高层操作说明hivm.GET.BLOCK.IDXhir.get_block_idx获取当前 Block 索引hivm.GET.BLOCK.NUMhir.get_block_num获取 Block 总数hivm.GET.SUBBLOCKIDhir.get_sub_block_idx获取当前 Sub-Block 索引hivm.GET.SUBBLOCKDIMhir.get_sub_block_num获取 Sub-Block 总数2. Pipe 同步指令指令参数说明hivm.SET.FLAG.IMMset_pipe(I64Attr), wait_pipe(I64Attr), event_id(I64Attr)设置 Event Flag立即数模式hivm.WAIT.FLAG.IMMset_pipe(I64Attr), wait_pipe(I64Attr), event_id(I64Attr)等待 Event Flag立即数模式hivm.SET.FLAG.REGset_pipe(I64Attr), wait_pipe(I64Attr), event_id(I64)设置 Event Flag寄存器模式hivm.WAIT.FLAG.REGset_pipe(I64Attr), wait_pipe(I64Attr), event_id(I64)等待 Event Flag寄存器模式hivm.BARRIERpipe(I64Attr)Pipeline 屏障3. FFTS 同步指令指令参数说明hivm.SET.FFTS.BASE.ADDRaddr(I64)设置 FFTS 基地址寄存器hivm.SET.CROSS.COREpipe(I64Attr), config(I64)FFTS 跨核同步指令hivm.WAIT.FLAG.DEV.REGflag_id(I64)FFTS Block/Sub-Block 同步等待寄存器hivm.WAIT.FLAG.DEV.PIPE.IMMpipe(I64Attr), flag_id(I64Attr)FFTS 同步等待Pipe Flag 立即数hivm.WAIT.FLAG.DEV.PIPE.REGpipe(I64Attr), flag_id(I64)FFTS 同步等待Pipe 立即数 Flag 寄存器4. Intra-Block 同步指令指令参数说明hivm.SET.INTRA.BLOCK.modepipe(I64Attr), sync_id(I64)Block 内同步设置寄存器模式hivm.WAIT.INTRA.BLOCK.modepipe(I64Attr), sync_id(I64)Block 内同步等待寄存器模式hivm.SET.INTRA.BLOCKI.modepipe(I64Attr), sync_id(I64Attr)Block 内同步设置立即数模式hivm.WAIT.INTRA.BLOCKI.modepipe(I64Attr), sync_id(I64Attr)Block 内同步等待立即数模式5. 控制指令指令参数说明hivm.SET.MASK.NORM无设置 Mask 为正常模式hivm.GET.CTRL无获取控制寄存器值hivm.SET.CTRLconfig(I64)设置控制寄存器hivm.SBITSET0x(I64), idx(I64)设置状态位为 0hivm.SBITSET1x(I64), idx(I64)设置状态位为 16. 缓存指令指令参数说明hivm.DCCI.DSTptr(LLVMPointer), entire(I64), dst(I64)清除/无效化 GM 数据缓存hivm.DCCI.DST.UBptr(LLVMPointer), entire(I64), dst(I64)清除/无效化 UB 数据缓存指令详细说明SET.FLAG.IMM / WAIT.FLAG.IMM立即数模式的 Pipe 同步指令Event ID 编码在指令中。// 参数 set_pipe: I64Attr -- 发送信号的 Pipe立即数 wait_pipe: I64Attr -- 接收信号的 Pipe立即数 event_id: I64Attr -- Event ID立即数 // 无返回值SET.FLAG.REG / WAIT.FLAG.REG寄存器模式的 Pipe 同步指令Event ID 来自寄存器值。// 参数 set_pipe: I64Attr -- 发送信号的 Pipe立即数 wait_pipe: I64Attr -- 接收信号的 Pipe立即数 event_id: I64 -- Event ID寄存器值 // 无返回值SET.CROSS.COREFFTS 跨核同步指令发送数据包括模式和 Flag ID到 FFTS 目标地址。// 参数 pipe: I64Attr -- Pipe 类型立即数 config: I64 -- 配置值寄存器 // config 编码格式 // config (0x0001 | ((mode 0x0f) 4) | ((flagID 0x0f) 8)) // // mode: // 0: inter block synchronization // 1: inter subblock synchronization // 2: intra block synchronization // // flagID: 8-bit flag ID每个 flag ID 有一个计数器INTRA.BLOCK 同步指令Block 内 Cube Core 和 Vector Core 之间的同步指令。ID 映射规则Mix-Mode Block1 CUBECORE 2 VECCORESET 来源目标ID 映射VECCORE0 ID 0-15CUBECOREID 0-15VECCORE1 ID 0-15CUBECOREID 16-31CUBECORE ID 0-15VECCORE0ID 0-15CUBECORE ID 16-31VECCORE1ID 0-15同步机制每个 sync ID 有一个 4-bit 计数器SET 操作递增对方 Core 对应 ID 的计数器不阻塞当前 PipelineWAIT 操作如果对应 ID 的计数器为 0 则阻塞否则递减计数器高层操作到内建指令的映射高层操作内建指令说明hir.get_block_idxhivm.GET.BLOCK.IDXBlock 索引查询hir.get_block_numhivm.GET.BLOCK.NUMBlock 数量查询hir.set_flag(静态 Event ID)hivm.SET.FLAG.IMM立即数模式同步hir.set_flag(动态 Event ID)hivm.SET.FLAG.REG寄存器模式同步hir.wait_flag(静态 Event ID)hivm.WAIT.FLAG.IMM立即数模式等待hir.wait_flag(动态 Event ID)hivm.WAIT.FLAG.REG寄存器模式等待hir.pipe_barrierhivm.BARRIERPipeline 屏障hir.set_ffts_base_addrhivm.SET.FFTS.BASE.ADDRFFTS 基地址设置hir.sync_block_sethivm.SET.CROSS.CORE/hivm.SET.INTRA.BLOCKI.mode跨核/核内同步hir.sync_block_waithivm.WAIT.FLAG.DEV.REG/hivm.WAIT.INTRA.BLOCKI.mode跨核/核内等待hir.set_mask_normhivm.SET.MASK.NORMMask 模式设置hir.set_ctrlhivm.SET.CTRL控制寄存器设置hir.dccihivm.DCCI.DST/hivm.DCCI.DST.UB缓存操作常见问题Q: 为什么有 IMM 和 REG 两种模式A: IMMImmediate模式将参数编码在指令中适用于编译时已知的常量参数执行效率更高。REGRegister模式从寄存器读取参数适用于运行时计算的动态参数。Q: SET.CROSS.CORE 的 config 如何编码A:config 0x0001 | ((mode 0x0f) 4) | ((flagID 0x0f) 8)其中 mode 为同步模式0跨Block1跨Sub-Block2Block内flagID 为 8-bit Flag ID。Q: INTRA.BLOCK 同步的 ID 映射规则是什么A: 在 Mix-Mode Block 中CUBECORE 有 32 个 ID每个 VECCORE 有 16 个 ID。VECCORE0 的 ID 0-15 映射到 CUBECORE 的 ID 0-15VECCORE1 的 ID 0-15 映射到 CUBECORE 的 ID 16-31反之亦然。相关文档源码参考HIVMIntrinOps.td高层同步操作04-Synchronization/01-pipe-sync.md跨核同步04-Synchronization/02-block-sync.md【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/7/11 15:13:52

DC-DC升压转换系统设计与PIC微控制器实现

1. 高电压DC-DC升压转换系统架构设计在工业控制、医疗设备和新能源领域,高电压DC-DC升压转换是常见的电源需求场景。我们选择TPS61170作为核心升压芯片,配合PIC18F65K40微控制器构建智能调节系统,主要基于以下考量:TPS61170作为德…

2026/7/11 15:13:52

Agent工具注册中心:动态工具发现与参数验证的后端设计

Agent工具注册中心:动态工具发现与参数验证的后端设计 一、背景与问题定义 大模型Agent架构中,工具调用(Tool Use)是实现LLM与外部世界交互的核心机制。随着业务场景扩展,一个Agent系统可能注册数十甚至上百个工具&a…

2026/7/11 15:13:52

从Git提交记录看职业生命周期:传统程序员平均3.2年进入维护瓶颈,AI程序员却呈现指数级成长曲线——附可复用的能力评估矩阵

更多请点击: https://kaifayun.com 第一章:从Git提交记录看职业生命周期的本质差异 Git 提交历史不只是代码演进的快照,它悄然映射出开发者职业阶段的认知模式、责任边界与协作哲学。一个初入职场的工程师常以功能实现为唯一目标&#xff0c…

2026/7/11 18:44:48

Mousecape:终极macOS光标自定义工具完全指南

Mousecape:终极macOS光标自定义工具完全指南 【免费下载链接】Mousecape Cursor Manager for OSX 项目地址: https://gitcode.com/gh_mirrors/mo/Mousecape 想让你的macOS桌面焕然一新吗?厌倦了千篇一律的系统光标样式?Mousecape是一款…

2026/7/11 18:44:48

Cache 替换算法对比:LRU vs 随机法在 4 种容量下的失效率实测分析

Cache 替换算法深度实测:LRU与随机法在四种容量下的性能博弈当CPU需要访问内存时,Cache作为高速缓冲存储器发挥着关键作用。而Cache替换算法的选择,直接影响着系统整体性能。本文将基于实测数据,对比分析LRU和随机替换算法在16KB至…

2026/7/11 18:44:48

轻量级LLM API网关:密钥隔离、审计可控的开发者基础设施

1. 这不是“API代理”,而是一个可控、可审计、可复用的开发者协作基础设施“开发者自用的GPT API中转站,搭都搭了,开放出来大家一起用”——这句话我第一次看到时,心里就咯噔一下:又一个被“免费”和“共享”带偏方向的…

2026/7/11 18:44:48

掌控Mac性能的终极秘诀:Turbo Boost Switcher深度解析

掌控Mac性能的终极秘诀:Turbo Boost Switcher深度解析 【免费下载链接】Turbo-Boost-Switcher Turbo Boost disabler / enable app for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/tu/Turbo-Boost-Switcher 你是否厌倦了MacBook在轻度使用时风扇狂转…

2026/7/11 18:39:48

IEEE 1687 IJTAG 核心:ICL 与 PDL 的 2 种语言分工与协作解析

IEEE 1687 IJTAG 核心:ICL 与 PDL 的协同架构解析在芯片设计与测试领域,IEEE 1687(IJTAG)标准正逐渐成为连接各类嵌入式仪器的通用语言框架。这一标准的核心在于两种关键语言的精妙配合:**ICL(Instrument C…

2026/7/11 5:30:49

国内大模型选型与企业级落地实战指南

我不能提供任何关于访问境外网络信息的技术方案或变通方法。根据中国法律法规和网络管理要求,所有互联网服务必须遵守国家关于网络安全、数据安全和内容安全的规定。ChatGPT及其后续版本(如所谓“GPT-5”)是由境外机构研发的大语言模型&#…

2026/7/11 2:43:05

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目…

2026/7/11 8:37:53

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…