RISC-V는 느려도 너무 느려요

3 days ago 5

(marcin.juszkiewicz.com.pl)

  • Fedora Linux의 RISC-V 포트 작업이 약 3개월째 진행 중이며, 대부분의 패키지가 Fedora 43용으로 빌드 완료됨
  • 현재 RISC-V 하드웨어는 매우 느린 빌드 속도를 보이며, 동일 패키지 빌드 시 x86_64 대비 최대 5배 이상 시간 소요
  • Fedora 공식 아키텍처로 채택되려면 binutils를 1시간 이내 빌드 가능한 서버급 하드웨어가 필요함
  • 빌드 지연은 패키지 유지관리자의 불만을 초래하며, RISC-V가 제외될 가능성도 언급
  • 향후 Fedora 44 빌드와 빠른 빌더 도입을 통해 속도 문제를 개선하고, 커널 통일 및 LTO 비활성화를 유지할 계획임

Fedora RISC-V 포팅 진행 상황

  • 약 3개월 전부터 Fedora Linux의 RISC-V 포트 작업이 진행 중이며, 여러 변화가 있었음
  • Fedora RISC-V 트래커의 대부분 항목이 정리되어 현재 17개 항목만 NEW 상태로 남아 있음
  • Fedora 패키지 소스를 가져와 fedpkg mockbuild -r fedora-43-riscv64 명령으로 빌드 수행
  • 지금까지 86개의 패키지에 대한 Pull Request가 제출되어 대부분 병합되었고, Fedora 43용 빌드 완료
  • ‘f43-updates’ 태그를 따라 추가 빌드 진행 가능
  • RISC-V 빌드 속도 문제

    • RISC-V 하드웨어는 현재 매우 느린 빌드 속도를 보임
    • binutils 2.45.1-4.fc43 빌드 시간은 riscv64 143분, aarch64 36분, x86_64 29분으로 측정됨
    • 사용된 StarFive VisionFive 2 보드는 드라이버 지원은 양호하지만 속도는 느림
    • 동일 패키지를 Milk-V Megrez 보드에서 빌드 시 58분 소요
    • 현재 RISC-V 빌드는 LTO(링크 타임 최적화) 비활성화 상태로, 메모리 사용량과 빌드 시간 절감을 위한 조치
    • 빌더는 4~8코어, 8~32GB RAM을 갖추며, 성능은 Arm Cortex-A55 수준으로 평가됨
    • 향후 UltraRISC UR-DP1000 SoC(최대 64GB RAM)와 SpacemiT K3 기반 시스템(최대 32GB RAM)이 개선 기대 대상
  • Fedora 공식 아키텍처 편입 요건

    • Fedora 공식 아키텍처로 포함되려면 binutils 패키지를 1시간 이내 빌드 가능한 하드웨어 필요
    • LTO를 시스템 전역에서 활성화한 상태에서도 다른 아키텍처와 동등한 속도 확보 필요
    • 빌드 결과는 모든 아키텍처가 완료되어야 리포지토리에 반영되므로, 느린 빌더는 패키지 유지관리자의 불만을 초래
    • 과거 AArch64 빌더의 속도 문제로 불만이 있었으며, 일부 개발자는 RISC-V 제외 가능성을 언급
    • 향후 빌더는 랙 장착 및 원격 관리 가능한 서버형 시스템이어야 하며, SBC 기반 수동 리부팅 환경은 부적합
    • 이러한 조건을 충족하지 못하면 Fedora의 공식 64비트 RISC-V 아키텍처 채택은 불가능
  • QEMU를 이용한 로컬 테스트

    • 빌드 시간이 길어 QEMU 에뮬레이션을 통한 로컬 테스트가 유용함
    • 80코어 AArch64 데스크톱에서 QEMU 사용자 공간 riscv64 에뮬레이션으로 llvm15 패키지를 약 4시간에 빌드 가능
    • 같은 패키지를 Banana Pi BPI-F3 빌더에서 빌드 시 10.5시간 소요
    • LLVM 패키지는 코어와 메모리를 모두 활용하므로, Ampere One 기반 192/384코어 시스템에서의 성능 향상이 기대됨
    • QEMU는 로컬 빌드 및 테스트용으로만 사용되며, Fedora는 네이티브 빌드만 수행
  • 향후 계획

    • Fedora Linux 44 빌드 시작 예정
    • 모든 빌더에서 동일한 커널 이미지를 사용하는 것을 목표로 하며, 현재는 커널 버전이 혼재
    • LTO는 계속 비활성화 상태 유지 예정
    • 속도 문제 해결을 위해 새롭고 빠른 빌더 도입을 계획 중이며, 무거운 패키지 일부를 해당 빌더에 할당할 예정
Read Entire Article