AArch64 데스크톱 실험의 끝
3 days ago
8
- 약 11개월간 Ampere Altra 기반 AArch64 데스크톱을 실사용했지만, 서버용 플랫폼을 데스크톱처럼 쓰면서 커널·GPU·앱 호환성 부담이 계속 누적됨
- 시스템은 Ampere Altra Q80-30 80코어 3.0GHz, 128GB RAM, AMD Radeon RX6700XT, ASRock Rack ALTRAD8UD-1L2T, Fedora 42–44 조합이었고, 애초에 데스크톱용 하드웨어가 아니었음
- AMD GPU 사용에는 erratum 82288 / PCIE_65 우회 패치가 필요해 Fedora 커널 업데이트 때마다 자체 커널을 주로 매주 다시 빌드해야 했음
- Linux 7.0 전후로 AMD GPU 오류와 영상 프레임 드롭이 생겼고, Nvidia RTX 2060 전환 후에도 AArch64 Flatpak 저장소의 org.freedesktop.Platform.GL.nvidia 부재로 FreeCAD와 OrcaSlicer가 크래시됨
- 결국 x86-64 Ryzen 5 3600 시스템으로 돌아갔으며, Ampere Altra는 데스크톱 대신 RISC-V 패키지 빌드용으로 남기고 새 AArch64 데스크톱에는 다른 하드웨어 플랫폼이 필요하다고 판단함
서버용 Altra를 데스크톱으로 쓴 구성
- 약 11개월 동안 AArch64 데스크톱을 실사용한 뒤 실험을 종료함
- 최종 하드웨어 구성은 다음과 같음
- CPU: Ampere Altra Q80-30, 80코어 3.0GHz
- RAM: 128GB, 8×16GB HMA82GR7CJR8N-XN
- GPU: AMD Radeon RX6700XT
- NVMe: Lexar LM970 2TB, ADATA SX8200 Pro 1TB
- 메인보드: ASRock Rack ALTRAD8UD-1L2T
- PSU: MSI MPG A850G 850W
- 케이스: Endorfy 700 Air
- USB3: PCIe x4 no-name USB 3.2/10Gbps 컨트롤러
- 이 보드는 서버 메인보드이고, Altra 시스템 자체도 데스크톱용으로 설계된 제품이 아님
- Ampere Altra 시스템의 QVL에는 AMD Radeon GPU 카드가 포함되지 않으며, 동작시킬 수는 있지만 추가 작업이 필요한 경우가 많음
- 별도 USB 3.2 컨트롤러는 메인보드 기본 지원보다 더 많은 USB 장치와 외장 NVMe용 10Gbps 포트를 제공함
- 전체 시스템은 Fedora 42–44에서 동작했지만, 실제 사용에는 기본 Fedora 커널이 아니라 자체 빌드 커널이 필요했음
PCIE_65가 만든 커널 유지보수 부담
- Ampere Altra의 PCI Express 컨트롤러에는 erratum 82288 / PCIE_65 문제가 있음
- PCIE_65는 PCIe MMIO 쓰기에서 잘못된 주소를 만들 수 있으며, 특히 AMD GPU 같은 특정 장치 유형에 영향을 줌
- Linux 커널 드라이버가 ioremap_wc처럼 MMIO 공간을 Normal, non-cacheable 메모리 속성으로 매핑할 때 문제가 생길 수 있음
- write combining 또는 비정렬 접근을 가능하게 하려는 목적일 수 있음
- 이 경우 PCIe 인터페이스의 outbound MMIO write에서 데이터 손상이 발생할 수 있음
- 우회책은 ioremap_wc 대신 ioremap처럼 Device, non-gathering 메모리로 매핑하고, PCIe MMIO 공간의 모든 메모리 연산을 엄격히 정렬하는 방식임
- 정상적인 Linux 시스템으로 쓰려면 Fedora 커널 패키지 업데이트마다 커널을 다시 빌드해야 했고, 보통 매주 작업이 필요했음
- 로컬 Fedora 커널 패키지 저장소를 업데이트한 뒤 7.0.2-200.fc44.pcie65.6 같은 자체 버전 규칙으로 빌드함
- pcie65는 적용한 패치를 나타냄
- 마지막 숫자는 패치 리베이스 카운터였음
- GitHub 저장소에서 패치를 가져와 리베이스하고 필요할 때 수정했으며, 그 결과 공식 Fedora보다 더 최신 커널을 쓰는 경우도 있었음
80코어가 데스크톱 체감 성능을 보장하지는 않음
- 80개의 CPU 코어가 있어도 좋은 데스크톱 머신이 되는 것은 아니었음
- 많은 코어 수는 데스크톱에서 필요한 빠른 체감 성능을 보장하지 않았음
GPU 교체 뒤에도 남은 앱 호환성 문제
- AMD Radeon RX6700XT는 out-of-tree PCIE_65 패치를 적용한 커널에서 동작했고, 게임 실행과 하드웨어 보조 영상 디코딩도 가능했음
- Linux 7.0 릴리스 전후 어느 시점부터 AMD GPU가 실패하기 시작함
- 게임 실행 시 amdgpu 0000:03:00.0: Fence fallback timer expired on ring vcn_dec_0 로그가 반복됨
- YouTube 영상 시청에서는 750프레임 중 720프레임이 드롭되어 사실상 사용할 수 없었음
- 일반적인 상황이라면 커널을 bisect해 문제 지점을 찾겠지만, PCIE_65 패치 때문에 커널이 tainted 상태라 실제 원인을 판단하기 어려웠음
- AMD Radeon 대신 Nvidia RTX 2060을 장착함
- nouveau 커널 드라이버를 쓰려면 여전히 PCIE_65 패치가 필요했음
- 기본 Fedora 커널과 Nvidia 바이너리 드라이버 조합은 정상 동작함
- 영상 디코딩 가속과 Wine 기반 일부 게임도 동작함
- FreeCAD와 OrcaSlicer는 실행 직후 크래시됨
- 원인은 AArch64 Flatpak 저장소에 org.freedesktop.Platform.GL.nvidia가 없는 것이었음
- 두 도구는 자주 쓰는 앱이라 데스크톱 전환을 어렵게 만든 핵심 문제였음
x86-64 복귀와 Altra의 새 역할
- 결국 꺼두었던 x86-64 시스템을 다시 부팅함
- 케이블을 많이 옮기고 새 케이블도 배치한 뒤, 책상 아래에서 두 시스템을 함께 사용하게 됨
- wooster: Ampere Altra 시스템
- puchatek: Ryzen 5 3600 시스템
- 80코어에서 6코어 12스레드로 이동하는 경험은 낯설었지만, 실제 작업은 정상적으로 돌아감
- 모든 스레드를 사용해도 음악 재생이 계속됨
- Steam 라이브러리의 모든 게임을 플레이할 수 있음
- FreeCAD로 홈 프로젝트 케이스 설계를 마칠 수 있음
- OrcaSlicer에서 바로 3D 프린트용 프로토타입을 만들 수 있음
- Ampere Altra 시스템은 계속 켜둔 채 RISC-V 패키지 빌드를 처리함
- 이 시스템은 단일 스레드 성능은 약하지만, 멀티코어 부하에서는 빠르게 동작함
같은 방식의 AArch64 데스크톱은 반복하지 않음
- Ampere Altra로 같은 데스크톱 실험을 반복할 계획은 없음
- 또 다른 AArch64 데스크톱을 시도하려면 완전히 새로운 하드웨어 플랫폼이 필요함
- Nvidia DGX Spark 시스템을 사기 위해 20,000 PLN 이상을 지출할 계획은 없음
-
Homepage
-
개발자
- AArch64 데스크톱 실험의 끝