ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

AMD ROCm 术语全解析:硬件架构、软件栈与性能优化的权威速查手册

AMD ROCm 术语全解析:硬件架构、软件栈与性能优化的权威速查手册 AMD ROCm 术语全解析硬件架构、软件栈与性能优化的权威速查手册【免费下载链接】legacy-rocm-buildAMD ROCm™ Software - GitHub Home项目地址: https://gitcode.com/GitHub_Trending/ro/legacy-rocm-build本指南以 ROCm glossary 入口文档 及其四个分类子文档设备硬件、设备软件、主机软件、性能分析为主体系统梳理 AMD GPU 编程中从芯片微架构、线程层次、编译工具链到性能瓶颈分析的完整术语体系。读者通过本文可以快速建立 ROCm 的领域知识地图理解 Compute Unit、Wavefront、GFX IP、LDS、Occupancy 等核心概念的真实含义及其在仓库文档与源码中的落点为阅读 HIP 编程模型、解读rocprofv3性能数据、调优 AI/HPC 内核打下扎实基础。一、术语表结构与阅读指引ROCm 术语表docs/reference/glossary.rst为 AMD ROCm 编程相关的技术行话与概念提供了简明定义每条目均附有指向详细文档的链接。整个术语表按四个维度组织分别对应四个独立子文档分类文档路径覆盖范围设备硬件docs/reference/glossary/device-hardware.rstCompute Unit、核心、内存等硬件组件设备软件docs/reference/glossary/device-software.rst编程模型、ISA、线程层次等软件抽象主机软件docs/reference/glossary/host-software.rstHIP、编译器、库、性能剖析器等开发工具性能分析docs/reference/glossary/performance.rst性能指标与优化概念下文将按此四分类逐层展开对每个术语给出精确定义并结合仓库内的 GPU 规格表、MI100 微架构、MI250 微架构、MI300 微架构 等权威资料做纵深验证。二、设备硬件术语AMD GPU 的芯片级构成2.1 计算与执行引擎AMD device architectureAMD 设备架构基于统一的、可编程的计算引擎——Compute UnitCU构建这是理解 ROCm 一切编程模型的基础。Compute units计算单元CUAMD GPU 中能够运行复杂程序的基本可编程执行引擎。结合 MI100 微架构 可知MI100 拥有 120 个 CU物理上组织为 8 个 Shader Engine、每引擎 15 个 CUMI300 微架构 中每个 XCD 拥有 40 个 CU38 个活跃 2 个用于良率管理的禁用 CU。ALU / SALU / VALUALU算术逻辑单元是 CU 内执行数学与逻辑运算的主要算术引擎SALU标量 ALU每个 Wavefront 只处理单个值并负责管理全部控制流VALU向量 ALU对 Wavefront 中的每个 Work-item 执行一次算术或逻辑运算实现数据并行执行。Special function unitSFU专用函数单元加速exp、log、sin、cos等超越函数与倒数运算。Load/store unitLSU负载/存储单元负责 CU 与 GPU 内存子系统之间的数据传输可管理数千个并发内存操作。SIMD coreCU 内部的执行通道execution lanes执行标量与向量算术运算。从 MI100 微架构 可知每个 CU 细分为 4 个 SIMD 单元每条 SIMD 指令处理 16 个数据元素使 CU 能以 64 元素一个 Wavefront为单位执行。Matrix coresMFMA units矩阵核心专用执行单元单条指令即可完成大规模矩阵运算为 AI 与 HPC 工作负载提供高吞吐。MI250CDNA 2的矩阵核心支持 FP16/BF16 并支持 INT8 推理MI300 微架构 指出 CDNA 3 矩阵核心对 FP16/BF16 吞吐较 MI250X 提升 3 倍、INT8 提升 6.8 倍。Data movement engineDME数据搬运引擎AMD Instinct MI300 与 MI350 系列 GPU 中的专用硬件单元用于加速全局内存与片上内存之间的多维张量数据拷贝。Wavefront schedulerWavefront 调度器每个 CU 内置的调度器决定每个时钟周期执行哪个 Wavefront通过快速上下文切换实现延迟隐藏。2.2 线程层次结构Work-itemThread工作项AMD GPU 上最小的执行单元代表单个工作元素。Work-groupBlock工作组一组 Wavefront 的集合调度到单个 CU 上可通过 LDSLocal Data Share内存在组内协作。WavefrontWarp波前在单个 CU 上并行执行、共享同一条指令流的 Work-item 组。Wavefront sizeWavefront 大小单个 Wavefront 中并行执行的 Work-item 数量。AMD Instinct GPU 的 Wavefront size 为 64AMD Radeon GPU 为 32。该差异在 GPU 规格表 中有完整列证所有 Instinct 系列MI355X 到 MI6均为 64而 Radeon PRO / Radeon / Ryzen APU 系列标注为32 or 64RDNA 架构支持两种模式切换。2.3 缓存与内存层次Register file寄存器文件每个 CU 内主要的片上存储在算术与内存操作之间保存数据。SGPR file保存 SALU 所用数据的寄存器文件VGPR file保存 VALU 所用数据的寄存器文件带矩阵核心的 GPU 还配备专用于矩阵指令的AccVGPR文件。Registers / SGPR / VGPR / AccVGPR寄存器是内存层次的最底层存储每个线程的临时变量与中间结果。SGPR标量通用寄存器承载标量 ALU 数据VGPR向量通用寄存器承载向量 ALU 数据AccVGPR累加通用向量寄存器是专用于矩阵运算的 VGPR 特殊类型。由 GPU 规格表 可见实际规模Instinct 系列 VGPR File 为 512 KiB、SGPR File 为 12.5 KiBMI100 例外为 256 VGPR 256 AccVGPR。L0 / L1 指令、标量、向量缓存Radeon GPU 采用 L0 缓存层次指令/标量/向量缓存均以 WGP 为单位共享Instinct GPU 则采用 L1 缓存层次指令/标量/向量缓存均以 CU 为单位独占L0 层次在 Radeon 上作为更细粒度缓存存在。Graphics L1 cache是 Radeon GPU 上以 Shader Array一组 WGP为单位的只读图形 L1 缓存Instinct GPU 没有此缓存。L2 cacheMI100 系列的 L2 缓存由整颗芯片共享其余所有 AMD GPU 的 L2 缓存由同一 GCD 或 XCD 上的 CU 共享。规格表中MI250X 为 8 MiB × 2 GCD、MI300X 为 4 MiB × 8 XCD。Infinity CacheL3 cacheMI300、MI350 系列与 Radeon GPU 上缓存层次的最后一级由 GPU 上全部 CU/WGP 共享。GPU RAMVRAM即 HIP 编程模型中的全局内存Global Memory是大容量片外内存子系统构成设备内存层次HBM的基础。Local data shareLDS本地数据共享每个 CU 局部的快速片上内存供工作组内 Work-item 共享实现高效协调与数据复用在 HIP 编程模型中称为共享内存shared memory。规格表中 Instinct 系列 LDS 为 64 KiBMI350 系列为 160 KiBRadeon/Ryzen 系列为 128 KiB。2.4 芯片与封装层级XCDAccelerator Complex Die加速器复合裸片MI300 与 MI350 系列上的 GPU 计算裸片包含计算单元与低层缓存。结合 MI300 微架构MI300X 集成 8 个垂直堆叠的 XCD每个 40 CU、共享 4 MB L2加上 8 组 HBM3 与 4 个 I/O die通过 AMD Infinity Fabric 互连整卡最高 304 CU。GCDGraphics Compute Die图形计算裸片MI100、MI250 系列与 Radeon GPU 上的计算裸片。MI250 OAM 封装内含两个 GCD各自构成系统中的一个 GPU 设备之间通过 4 条 AMD Infinity Fabric 链路25 GT/s理论双向峰值 400 GB/s互连详见 MI250 微架构。WGPWorkgroup ProcessorRadeon GPU 上的硬件单元包含两个 CU 及其关联资源用于高效调度与执行 Wavefront。GFX IP / 版本号GFX IPGraphics IP版本标识符指定每代 AMD GPU 支持的指令格式、内存模型与计算特性。GFX IP major version代表 GPU 核心指令集与架构例如 major 11 对应 RDNA 3 架构GFX IP minor version代表同一 major 版本内的具体变体影响特性集、优化与驱动行为。从 GPU 规格表 可对照实际编号MI355X/MI350X 为 GFXIP 9.5gfx950MI300 系列为 9.4gfx942MI250 为 9.0gfx90aMI100 为 9.0gfx908RDNA 4 为 12.0gfx120xRDNA 3 为 11.0gfx110x。Compute unit versioning计算单元版本化即使用 GFX IP 标识符定义 CU 的微架构特性与指令集兼容性。三、设备软件术语编程模型与编译管线ROCm programming modelROCm 编程模型定义 AMD GPU 如何通过层次化 Work-group、内存作用域memory scopes与屏障同步执行大规模并行程序。AMDGPU assemblyGFX ISAAMD GPU 上运行程序的底层汇编格式由 ROCm 编译器工具链生成。AMDGPU intermediate representationAMDGPU IRGPU 代码的中间表示充当高级语言与架构相关汇编之间的虚拟指令集。LLVM target nameLLVM 目标名与特定 GFX IP 版本对应的字符串标识符传递给 HIP 编译器工具链以指定目标 GPU 架构。典型示例即上文的gfx942、gfx90a、gfx1100等均可在 GPU 规格表 中查证。Grid网格在整块 GPU 上执行单个内核HIP kernel的全部 Work-group 的集合。HIP kernelHIP 内核跨大量线程并行执行、分布于 GPU 各 CU 上的 GPU 代码单元。HIP thread hierarchyHIP 线程层次将并行工作从单个 Thread → Block → Grid 逐级结构化并映射到 SIMD lane → CU → 整块 GPU 的硬件层次。HIP memory hierarchyHIP 内存层次将线程层次每一级与对应内存作用域配对从私有寄存器 → LDS → GPU RAMVRAM逐级展开对应上文 2.3 节的物理缓存/内存结构。Global memory全局内存所有线程可访问的设备级内存物理上实现为 HBM 或 GDDR即 HIP 术语中的 GPU RAM。四、主机软件术语工具链与运行时ROCm software platformROCm 软件平台AMD 面向 HPC 与 AI 应用的 GPU 软件栈提供编译器工具链、运行时环境与性能库组件全景见 What is ROCm 与 ROCm Core SDK。HIP C language extensionHIP C 语言扩展HIP 在 C 语言基础上为异构编程增加的特性主要涉及内核语言部分也可用于主机功能。HIP runtime APIHIP 运行时 APIGPU 编程接口提供内存管理、内核启动与同步等函数。HIP compilerHIP 编译器amdclang将 HIP C 程序编译为同时包含主机 CPU 与设备 GPU 代码的二进制文件。HIP runtime compilerHIPRTCHIP 运行时编译器在运行时将 HIP 源码编译为 AMDGPU 二进制代码对象支持 JIT 内核生成、面向不同 GPU 的设备特定优化与动态代码创建。AMD SMIamd-smi查询、监控与管理 AMD GPU 状态的命令行工具提供硬件信息与性能指标。ROCgdbAMD 的源码级调试器可同时调试主机 CPU 与设备 GPU 代码支持内核断点、单步与变量检查。rocprofv3AMD 主要的性能分析工具提供性能剖析、追踪与性能计数器采集。ROCm and LLVM binary utilities用于检查与操作 GPU 二进制文件和代码对象的命令行工具如roc-obj系列。五、性能分析术语优化与瓶颈定位Roofline modelRoofline 模型可视化性能模型用于判断程序是计算受限compute-bound还是内存受限memory-bound。Compute-bound计算受限内核受限于 GPU CU 的算术带宽arithmetic bandwidth而非内存带宽。Memory-bound内存受限内核受限于内存带宽而非算术带宽通常源于低算术强度arithmetic intensity。Arithmetic intensity算术强度内核中算术操作与内存操作的比值决定性能特征。Memory bandwidth / Arithmetic bandwidth内存带宽是内存层次各级之间数据转移的最大速率字节/秒算术带宽是执行算术工作的峰值速率定义 Roofline 模型中的计算天花板compute roof。Overhead开销没有有用工作被执行的时间常由 CPU 侧瓶颈或内核启动延迟导致。Littles Law利特尔法则关联并发、延迟与吞吐决定需要有多少独立工作进行中才能隐藏延迟。Latency hiding延迟隐藏通过运行大量并发线程遮蔽长延迟操作保持执行流水线繁忙。Wavefront execution stateWavefront 执行状态AMD GPU 上 Wavefront 的调度状态包括active活跃、stalled停滞、eligible可调度、selected被选中四种。Active cycle活跃周期CU 上至少有一个驻留 Wavefront 处于活跃状态的时钟周期。Occupancy占用率活跃 Wavefront 数与 CU 上可活跃 Wavefront 最大数之比。MI100 微架构 给出实例当每个 Wavefront 占用 119 个 VGPR 时CU 上只能同时活跃 2 个 WavefrontCU 可同时处理最多 10 个 Wavefront。Pipe utilization流水线利用率衡量内核对 CU 内各执行流水线的利用程度。Peak rate峰值速率理想条件下硬件系统完成工作的理论最大吞吐对应各微架构文档中的 Peak TFLOPS 表。Issue efficiency发射效率衡量 Wavefront 调度器通过发射指令保持执行流水线忙碌的有效程度。CU utilizationCU 利用率CU 主动执行指令的时间百分比。Wavefront divergenceWavefront 发散因条件语句导致 Wavefront 内线程走不同执行路径的现象。Branch efficiency分支效率衡量 Wavefront 内所有线程走同一执行路径的频率量化控制流一致性。Memory coalescing内存合并用更少的物理内存事务服务大量逻辑加载/存储提升内存带宽利用。Bank conflictBank 冲突多个线程同时访问同一 LDS bank 中不同地址时发生的串行化现象。Register pressure寄存器压力过高的寄存器需求限制每 CU 活跃 Wavefront 数量、降低占用率的现象。六、在仓库中验证与继续深入以上术语并非孤立概念均可回到本仓库对应的权威资料中验证与扩展阅读 docs/reference/gpu-specs.rst一张表即可横向对比各 GPU 的 CU 数量、Wavefront Size、LDS、各级缓存、VGPR/SGPR 文件与 GFXIP 主/次版本是理解术语 具体数值的最佳入口。阅读 docs/reference/gpu-arch/mi100.md、docs/reference/gpu-arch/mi250.md、docs/reference/gpu-arch/mi300.md分别深入 CDNA、CDNA 2、CDNA 3 的 CU 组织结构、XCD/GCD 布局、矩阵核心吞吐与缓存层次印证 2.1 至 2.4 节的硬件术语。阅读 docs/about/what-is-rocm.rst 与 docs/components/core.rst了解 ROCm 软件平台、Core SDK 与 Extras 组件的整体构成为第四节主机软件术语提供全景背景。术语表原文及其分类子文档docs/reference/glossary.rst 及 device-hardware、device-software、host-software、performance均包含指向 HIP 详细文档的交叉引用可作为进阶阅读的出发点。结语ROCm 术语表的价值在于为开发者提供了一条从芯片硬件到主机工具链再到性能优化的完整知识链路从硬件侧理解 Compute Unit、Wavefront 与缓存层次如何决定执行效率从软件侧理解 HIP 编程模型、AMDGPU IR 与 LLVM 目标名如何映射到硬件从工具侧掌握amdclang、HIPRTC、rocprofv3等工具在开发流程中的角色最后用 Occupancy、算术强度、Bank 冲突等指标指导内核调优。本文已将这四个维度的全部术语条目完整转写并补充了仓库内的具体规格与架构佐证可作为快速定位概念、撰写技术文档或深入 HIP 编程的随身速查手册。【免费下载链接】legacy-rocm-buildAMD ROCm™ Software - GitHub Home项目地址: https://gitcode.com/GitHub_Trending/ro/legacy-rocm-build创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表