RISC-Vは遅いです
概要
- 約3か月前からFedora LinuxのRISC-Vポートの作業を開始
- バグトリアージやパッケージビルドに積極的に取り組み
- RISC-Vハードウェアの遅さが大きな課題
- QEMUによるエミュレーション活用でビルド効率化を模索
- 今後は新しいビルダー導入とFedora 44への移行を計画
Fedora Linux RISC-Vポート作業報告
- 約3か月前よりFedora LinuxのRISC-Vポートに従事
- Fedora RISC-Vトラッカーのバグエントリーを確認・トリアージ
- 現在、NEW状態のエントリーは17件
- 可能な範囲で個別に対応
- Fedoraパッケージ管理
- fedpkg clone -aコマンドでパッケージソース取得
- fedpkg mockbuild -r fedora-43-riscv64でビルド実行
- ビルド結果を確認し、失敗時はログから原因調査
- 86件のプルリクエストをFedoraパッケージに送信
- 大型パッケージ(例: llvm15)から小型ゲーム(例: iyfct)まで幅広く対応
- 大部分がマージ済み、Fedora 43向けにビルド完了
- ‘f43-updates’タグをFedora kojiで追跡し、ビルド状況確認
RISC-Vハードウェアの課題と現状
- RISC-Vハードウェアの処理速度が遅いことが最大の課題
- ビルド時間が他アーキテクチャと比較して著しく長い
- 例: binutils 2.45.1-4.fc43パッケージのビルド時間
- aarch64: 36分(12コア/46GB)
- i686: 25分(8コア/29GB)
- ppc64le: 46分(10コア/37GB)
- riscv64: 143分(8コア/16GB)
- s390x: 37分(3コア/45GB)
- x86_64: 29分(8コア/29GB)
- 現在のRISC-VビルドはLTO(Link Time Optimization)無効化
- メモリ消費とビルド時間短縮のため
- RISC-Vビルダーは4~8コア、8~32GB RAM
- コア性能はArm Cortex-A55相当
- 新型SoC(UltraRISC UR-DP1000やSpacemiT K3)への期待
- UR-DP1000搭載のMilk-V Titanは64GB RAM対応
- K3ベースシステムも最大32GB RAM
- これらは改善にはなるが、根本解決には至らず
- 理想は1時間以内でbinutilsをLTO有効でビルド可能なハードウェア
- ラック搭載やサーバー管理が容易な機器が必要
- 現状ではFedoraの公式プライマリアーキテクチャ昇格は困難
QEMUによるビルド効率化
- QEMUエミュレーションを活用し、ビルド時間短縮を図る
- 80コアをエミュレートし、llvm15パッケージを約4時間でビルド
- 実機(Banana Pi BPI-F3ビルダー)では10.5時間かかる
- Ampere Oneベースの192/384コアシステムでは更なる高速化を期待
- LLVMパッケージはコア・メモリ両方をフル活用
- btopツールで80コア稼働状況を可視化
今後の計画と展望
- Fedora Linux 44のビルド開始を予定
- すべてのビルダーで同一カーネルイメージ使用を目指す
- LTOは引き続き無効化
- 新規・高速ビルダーの導入計画
- 重量級パッケージは新ビルダーに割り当て予定
- RISC-Vエコシステム強化と公式アーキテクチャ昇格への課題解決