Monte Cimone v2 RISC V 고성능 컴퓨팅 클러스터 실험과 최적화
초록
Monte Cimone 프로젝트는 Sophgo SG2042 기반의 64코어·128 GB 메모리 노드를 추가해 클러스터를 확장하고, OpenBLAS와 BLIS 라이브러리를 벡터 확장(RVV 0.7.1)에 맞게 최적화하였다. STREAM 테스트에서 단일 소켓당 41.9 GB/s, 듀얼 소켓에서 82.9 GB/s의 메모리 대역폭을 달성했으며, HPL에서는 기존 MCv1 대비 127배(단일 소켓 64 코어)·69배(스트림) 향상을 기록했다. 최적화된 BLIS는 마이크로커널 레지스터 그룹화를 통해 FLOP/s 효율을 크게 끌어올렸다.
상세 분석
본 논문은 RISC‑V 기반 HPC 시스템이 실제 데이터센터 수준의 성능을 제공할 수 있는지를 검증하기 위해 MCv2라는 이름의 클러스터를 구축하고, 하드웨어·소프트웨어 양측에서 체계적인 최적화를 수행한 사례를 제시한다. 핵심 하드웨어는 Sophgo Sophon SG2042 SoC이며, 64코어·128 KB L1·1 MB L2·64 MB L3 캐시와 4채널 3200 MHz ECC DDR4, PCIe Gen4 32레인을 갖추고 있다. 기존 MCv1이 SiFive U740 4코어·16 GB DDR4 기반이었음에 비해 코어 수·메모리·대역폭 모두 10배 이상 확장되었다.
소프트웨어 스택은 Spack 기반 모듈 관리와 SLURM·ExaMon 모니터링을 그대로 활용하면서, 두 종류의 컴파일러 체인을 추가했다. 하나는 Xuantie GNU Toolchain(GCC 10)으로 RVV 0.7.1 벡터 명령을 직접 인코딩할 수 있게 했으며, 다른 하나는 최신 GCC 14로 thread‑vector 타깃을 지원한다. 이러한 이중 툴체인은 OpenBLAS와 BLIS를 각각 RVV에 맞게 재컴파일하고, 어셈블리 레벨 마이크로커널을 직접 수정할 수 있는 기반을 제공한다.
OpenBLAS는 기본 RV64 타깃과 SG2042‑전용 어셈블리 커널 두 버전으로 비교했으며, 전자는 벡터 유닛을 활용하지 못해 효율이 68 % 수준에 머물렀다. 최적화된 OpenBLAS는 벡터 명령을 활용해 89 % 수준까지 효율을 끌어올렸지만, 코어 전체를 사용할 때는 메모리 대역폭과 캐시 병목으로 인해 효율이 다시 감소한다.
BLIS 최적화는 두 단계로 진행되었다. 첫째, RVV 1.0 마이크로커널을 RVV 0.7.1에 맞게 포팅하면서 load/store와 vsetvl 명령을 변환하고, 모든 벡터 명령에 ‘th.’ 접두사를 붙여 GCC 14가 인식하도록 했다. 둘째, 실제 성능 병목이 마이크로커널 내부의 레지스터 사용 비효율임을 확인하고, LMUL을 1에서 4로 확대해 한 번의 로드로 4개의 벡터 레지스터를 채우고, vfmac.c.vf 명령을 한 번만 호출하도록 재구성했다. 이 최적화는 동일 연산당 메모리 접근을 4배 감소시켜 FLOP/s 효율을 크게 상승시켰다.
실험 결과, 단일 소켓 SG2042 노드에서 STREAM은 64 스레드 기준 41.9 GB/s, 듀얼 소켓에서는 82.9 GB/s를 기록했다. 이는 기존 MCv1(1.1 GB/s) 대비 70배 이상 향상된 것이다. HPL에서는 64코어 단일 소켓에서 13 GFLOP/s, 128코어 듀얼 소켓에서 22 GFLOP/s를 달성했으며, 이는 MCv1 전체(8노드, 32코어) 대비 127배에 해당한다. BLIS 최적화 후에는 동일 코어 수에서 OpenBLAS 대비 5~10 % 정도 추가 성능 향상을 얻었다. 전체적으로 메모리 대역폭이 네트워크(1 Gbps)보다 충분히 높아졌음에도 불구하고, 코어 수가 늘어날수록 효율이 감소하는 현상이 관찰돼 향후 고속 인터커넥트와 메모리 서브시스템 개선이 필요함을 시사한다.
이 논문은 RISC‑V가 벡터 확장과 최신 SoC 설계만으로도 전통적인 x86/ARM 기반 HPC 클러스터와 경쟁 가능한 성능을 낼 수 있음을 실증한다. 동시에 컴파일러·라이브러리 생태계가 아직 초기 단계이며, 마이크로아키텍처 특화 어셈블리 최적화와 캐시 블로킹 전략이 성능에 결정적인 영향을 미친다는 점을 강조한다. 향후 연구는 다중 노드 간 고대역폭 인터커넥트(예: 100 GbE, InfiniBand), NUMA‑aware 스케줄링, 그리고 더 높은 RVV 버전(1.0) 지원을 통한 추가 성능 향상을 목표로 해야 할 것이다.
댓글 및 학술 토론
Loading comments...
의견 남기기