
ROCm Ubuntu 版本选择器机制解析从条件化文档指令到 apt 安装实战【免费下载链接】legacy-rocm-buildAMD ROCm™ Software - GitHub Home项目地址: https://gitcode.com/GitHub_Trending/ro/legacy-rocm-build本文以 AMD ROCm 官方文档仓库legacy-rocm-build中的 ubuntu-ver-selector.rst 为切入点剖析 ROCm 安装文档中按 GPU 型号与设备家族动态呈现 Ubuntu 版本选项的条件化文档机制并延伸到仓库中真实的安装命令、仓库源配置与 Python 版本要求。读完本文你将理解这套选择器的指令语法、状态流转与持久化原理并能据此为不同 Ubuntu 版本26.04 / 24.04 / 22.04的 ROCm 环境完成从仓库注册到apt install amdrocm7.14的完整安装。Ubuntu 版本选择器在 ROCm 安装流程中的位置ROCm 的安装主文档 rocm.rst 通过一系列include指令将选择器拆分为多个独立文件组装成一个层层递进的交互式安装向导设备家族Device familyfaminstinct/radeon/ryzen/all见 fam-multi-arch-selector.rst操作系统发行版Linux distributionosubuntu/debian/rhel等见 os-selector.rstGPU 型号gpu如mi355x、mi300x、rx-9070-xt等见 gpu-selector.rstUbuntu 版本本文主角ubuntu-ver即 ubuntu-ver-selector.rst安装方式ipkgman/pip/tar/runfile见 install-method-selector.rst。也就是说ubuntu-ver是用户选定操作系统 Ubuntu之后的下一个细分维度其最终选择结果会反过来驱动安装章节200-install.rst中仓库源 URL、内核驱动与 Python 版本等内容的显隐。条件化指令语法selected/selector/selector-optionubuntu-ver-selector.rst全部由三个 Sphinx 自定义指令构成它们在 selector/init.py 中注册并渲染.. selected:: 条件声明仅当条件满足时其内部内容才可见。osubuntu与faminstinct可以嵌套形成osubuntu且faminstinct的叠加条件.. selector:: 标题渲染一个选择器组一组可点击的选项块核心参数:key:该组选项写入全局状态所用的键名。这里统一为ubuntu-ver经 utils.py 的normalize_key()处理空格转下划线、转小写、去首尾空白:show-cond:该组整体何时可见例如gpumi355x gpumi350x ...空格分隔的多值即任一匹配.. selector-option:: 显示文本单个可选项常用参数:value:选择后写入状态的值如26.04、24.04、22.04:show-cond:该选项的显示条件:width:选项块的栅格宽度可为 1–12 的整数对应 Bootstrapcol-N或百分比字符串如50%。源码中_parse_width()selector/init.py负责校验整数越界或百分比不在 (0,100] 时会告警并回退到默认值 6。关键语义show-cond的多值匹配指令中形如:show-cond: gpumi355x gpumi350x gpumi325x的写法会被 utils.py 的kv_to_data_attr()解析为 JSON 对象{gpu: [mi355x, mi350x, mi325x]}并写入data-show-cond属性。前端 selector.js 的matchesConditions()在匹配数组值时采用任一命中即满足的语义因此该条件等价于GPU 属于 mi355x / mi350x / mi325x 之一时显示。不同设备家族下的 Ubuntu 版本矩阵把 ubuntu-ver-selector.rst 按selected分支拆解可以得到完整的版本矩阵设备家族分支可见 GPU 条件可选 Ubuntu 版本faminstinct第一组mi355x / mi350x / mi325x / mi300x / mi300a / mi250x / mi250 / mi210 / mi10026.04、24.04.424.04、22.04.522.04faminstinctmi350p 专属gpumi350p26.04、24.04.4famradeon/famall图形工作负载wgraphics—26.04、24.04.4famradeon/famall计算工作负载wcompute—26.04、24.04.4、22.04.5famryzen—26.04、24.04oswslWSL2 分支famradeonUbuntu 26.04 / 24.04 / 22.04oswslWSL2 分支famryzenUbuntu 26.04 / 24.04从矩阵可以归纳出三条值得注意的规则22.04 的适用范围最窄它只出现在 Instinct 计算负载与 Radeon/All 的计算负载分支中且从不出现在 Ryzen 与mi350p分支——这反映旧版本 LTS 与较新硬件如 MI350 系列之间的支持边界wgraphics与wcompute的版本集合不同图形工作负载分支没有 22.04而计算分支保留了三代 LTS 选项同一:key: ubuntu-ver在多个分支重复出现前端源码中专门为多个选择器组共享同一 key如gpu、ubuntu-ver设计了处理逻辑保证任一分支的选择都会统一写入同一个状态键。版本选择如何传导到真实安装命令选择器本身只是文档的外壳其价值在于驱动 200-install.rst 中每个版本的差异化内容。以下是ubuntu-ver三个取值对应的真实仓库证据。1. ROCm 软件仓库源apt 源按版本区分选择 26.04 / 24.04 / 22.04 后仓库注册命令中repo.amd.com的路径段分别变为ubuntu2604/ubuntu2404/ubuntu2204例如 24.04noble# Download and install GPG key sudo mkdir --parents --mode0755 /etc/apt/keyrings wget https://repo.amd.com/rocm/packages-multi-arch/gpg/rocm.gpg -O - | \ gpg --dearmor | sudo tee /etc/apt/keyrings/amdrocm.gpg /dev/null sudo tee /etc/apt/sources.list.d/rocm.list EOF deb [archamd64 signed-by/etc/apt/keyrings/amdrocm.gpg] https://repo.amd.com/rocm/packages-multi-arch/ubuntu2404 stable main EOF sudo apt update26.04 对应ubuntu2604源22.04 对应ubuntu2204源命令结构完全一致仅路径段不同。2. 核心元包amdrocm7.14注册仓库后安装命令与 GPU 型号gfx状态联动# famall通用核心包 sudo apt install amdrocm7.14 # 按 GPU 架构安装对应元包示例 sudo apt install amdrocm7.14-gfx942 # 对应 MI300 系列 sudo apt install amdrocm7.14-gfx90a # 对应 MI250 系列 sudo apt install amdrocm7.14-gfx1100 # 对应 Radeon RX 7000 系列 sudo apt install amdrocm7.14-gfx1151 # 对应 Ryzen AI APU3. pip 安装路径下的 Python 版本要求若选择pip安装方式100-prerequisites.rst 按ubuntu-ver给出不同的受支持 Python 版本Ubuntu 版本推荐 Python安装命令26.04Python 3.14sudo apt install python3.14 python3.14-venv24.04Python 3.12sudo apt install python3.12 python3.12-venv22.04Python 3.11sudo apt install python3.11 python3.11-venv4. Ryzen APU 的 OEM 内核要求对 Ryzen 家族且ubuntu-ver24.04的安装文档要求安装 OEM 内核 6.14sudo apt update sudo apt install linux-oem-24.04c安装后必须重启系统。这一要求同时出现在计算负载与图形负载两个分支中仅针对 24.04 生效。5. 图形工作负载的amdgpu-install脚本选择wgraphics且osubuntu时需要先安装amdgpu-install脚本其.deb包按 Ubuntu 版本使用不同的代号目录26.04 对应resolute、24.04 对应noble、22.04 对应jammy31.40.1版本示例sudo apt update wget https://repo.radeon.com/amdgpu-install/31.40.1/ubuntu/noble/amdgpu-install_31.40.1.314001-1_all.deb sudo apt install ./amdgpu-install_31.40.1.314001-1_all.deb安装前必备项与 GPU 权限配置无论选择哪个 Ubuntu 版本100-prerequisites.rst 都要求完成两项准备工作安装依赖库部分 ROCm 工具依赖libatomic与libquadmath在 Ubuntu 上执行sudo apt install libatomic1 libquadmath0配置 GPU 访问权限二选一组员方式默认将当前用户加入video与render组sudo usermod -a -G render,video $LOGNAMEudev 规则方式系统级、免用户组管理sudo tee /etc/udev/rules.d/70-amdgpu.rules EOF KERNELkfd, GROUPrender, MODE0666 SUBSYSTEMdrm, KERNELrenderD*, GROUPrender, MODE0666 EOF sudo udevadm control --reload-rules sudo udevadm trigger修改后需重启系统使配置生效。选择器引擎的源码级实现这套交互式选择器并非静态文档而是由仓库自研的 Sphinx 扩展docs/extension/rocm_docs_custom/selector/驱动。理解其实现有助于解释选择器行为的为什么。指令层setup()注册与节点渲染selector/init.py 的setup()注册了 5 个指令selector、selector-dropdown、selector-info、selector-option、selected-content以及别名selected。几个值得注意的实现细节默认选项自动兜底若一组选项中没有显式标记:default:则第一个选项被自动设为默认option_nodes[0][default] True值可携带额外绑定selector-option的:value:支持mi355x gfxgfx950 archcdna3这种裸值 若干keyvalue的写法前者是选项自身值后者在选择该选项时作为额外状态注入代码注释明确解释了这一点——这也是gpu等键会在多个选择器组间共享的机制基础宽度校验_parse_width()接受 1–12 的整数或百分比非法值回退为 6。前端状态机selector.jsselector/static/selector.js 实现了完整的客户端状态管理全局状态对象state以key → value保存所有选择器当前值状态持久化与优先级初始化时按URL 查询参数 localStorage 默认值合并状态因此安装环境的选择可以复制 URL 分享、也能跨页面记住同时会把当前页面上不存在的陈旧状态键立即清除URL 同步syncStateToURL()通过history.replaceState把选择写入 URL 查询串如?osubuntufaminstinctgpumi300xubuntu-ver24.04方便搜索引擎与用户收藏精确的安装组合可见性收敛循环updateVisibility()内使用MAX_VISIBILITY_CYCLES 5防止无限循环反复执行按show-cond显示/隐藏 → 重新调和各组选中项 → 重算额外绑定直到状态稳定自动换选reconcileGroupSelections()保证每个可见组始终有一个合法选中项——当高层级选择使当前选中项被禁用/隐藏时会按持久化状态值 → 默认项 → 第一个可用项的顺序自动替换无障碍支持选项块以roleradiogroup/roleradio渲染支持tabindex与 Enter/Space 键盘操作隐藏元素带aria-hidden。辅助工具utils.pyutils.py 中的两个纯函数是所有指令的基石normalize_key(key)key.replace( , _).lower().strip()保证所有键名规范统一kv_to_data_attr(name, kv_str)把gpumi355x gpumi350x这类空格分隔的键值对转换为 JSON 字符串并写入data-show-cond属性供前端解析匹配。小结ubuntu-ver-selector.rst表面上是几十行选择器声明实际上它是 ROCm 安装体验中操作系统 → 版本这一关键决策层的唯一事实来源。它的每个选项取值都精确映射到仓库注册路径ubuntu2604/ubuntu2404/ubuntu2204、元包名amdrocm7.14*、Python 版本3.14/3.12/3.11、OEM 内核乃至amdgpu-install脚本代号实现了一次选择、全链路联动。而其背后的 Sphinx 扩展与前端状态机则为这类大型产品文档提供了一个可复用、可分享、可检索的条件化文档范式——读者若需在自己的文档体系中复刻类似能力可直接以本仓库 selector/init.py 与 selector.js 为参考实现。【免费下载链接】legacy-rocm-buildAMD ROCm™ Software - GitHub Home项目地址: https://gitcode.com/GitHub_Trending/ro/legacy-rocm-build创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考