RISC‑V 很慢

发布: (2026年3月11日 GMT+8 04:11)
4 分钟阅读

Source: Hacker News

故障排查

我浏览了 Fedora RISC‑V 追踪器 的条目,完成了大部分的分类(目前仍有 17 条 处于 NEW 状态),并尝试处理所有能够处理的事项。

Fedora 打包

我的常规工作流程是获取 Fedora 包的源码(fedpkg clone -a),然后使用以下命令进行构建:

fedpkg mockbuild -r fedora-43-riscv64

构建完成后,我会检查是否成功;如果失败,则查看构建日志以找出原因。

截至目前,我已经为 Fedora 包提交了 86 个 pull request链接)。这些请求涵盖了从体积庞大的 llvm15 到像 iyfct(一个小型游戏)这样的轻量包。大多数已经合并并在 Fedora 43 上构建,我们会继续在 Fedora Koji 上跟踪 f43-updates 标签进行构建。

速度慢

包的构建突显了一个主要挑战:速度,或者说缺乏速度。当前的 RISC‑V 硬件较慢,导致构建时间极长。例如,binutils-2.45.1-4.fc43 包在不同架构上的构建时间如下:

ArchitectureCoresMemoryBuild time
aarch641246 GB36 min
i686829 GB25 min
ppc64le1037 GB46 min
riscv64816 GB143 min
s390x345 GB37 min
x86_64829 GB29 min

当前的 RISC‑V Fedora 移植在构建时关闭了 LTO,以降低内存占用和构建时间。RISC‑V 构建机通常只有 4 或 8 核,内存为 8、16 或 32 GB(取决于主板),常常相当于低端的 Arm Cortex‑A55 核心。

未来的硬件,例如 Milk‑V Titan 主板上的 UltraRISC UR‑DP1000 SoC(最高 64 GB RAM)或基于 SpacemiT K3 的系统(最高 32 GB RAM),将会改善这种情况,但仍不是根本解决方案。要把 binutils 的构建时间降到一小时以内,我们需要更强大的机架式服务器,并在全系统范围内启用 LTO。

我仍在使用 QEMU

由于原生构建时间过长,我依赖 QEMU 来加速构建。使用 80 个模拟核心,我可以在约 4 小时内编译 llvm15 包,而在 Banana Pi BPI‑F3 构建机上需要 10.5 小时(在 P550 上可能更快)。

btop shows 80 cores being busy

LLVM 包能够真正利用所有可用的核心和内存,我很好奇如果在拥有 192 或 384 核的系统上(例如基于 Ampere One 的服务器)会有怎样的表现。

未来计划

我们计划开始构建 Fedora 44。如果一切顺利,我们将使用单一的内核镜像在所有构建机上进行构建(目前它们运行的是不同版本的内核)。LTO 暂时仍保持关闭。

为了解决速度问题,我们计划采购更新、更快的构建机,并将更重的包分配给它们。

0 浏览
Back to Blog

相关文章

阅读更多 »