우리 모두 알고 있듯이 현재 x86 아키텍처 프로세서는 PC와 서버 시장을 장악하고 있는 반면, Arm 아키텍처 프로세서는 모바일 시장을 장악하고 IoT 시장에서 큰 시장 점유율을 차지하고 있습니다. 그러나 최근 몇 년 동안 RISC-V 아키텍처는 오픈 소스, 간소화된 명령어, 확장성 등의 장점으로 인해 에너지 효율성에 중점을 둔 사물인터넷(Internet of Things) 분야에서 큰 인기를 끌었습니다.
RISC-V International 및 관련 칩 제조업체에 힘입어 RISC-V는 더 높은 성능 요구 사항을 충족하는 서버 시장에도 진출하기 시작했습니다.
2023년 초, RISC-V International은 HPC를 RISC-V 성장을 위한 전략적 우선 영역으로 식별했으며, 최근 승인된 벡터 확장과 주요 HPC 라이브러리 및 도구를 포팅하려는 수많은 HPC 소프트웨어 노력과 결합하여 이 영역의 모멘텀이 빠르게 증가하고 있음이 분명합니다.
유럽 eProcessor 프로젝트, 수천 개의 RISC-V 코어를 갖춘 에스페란토 CPU, RISC-V의 주요 소프트웨어 구성 요소에 대한 지원 개발을 목표로 하는 다중 공급업체 RISE 프로젝트 등 전 세계의 많은 프로젝트는 HPC를 포함한 고급 컴퓨팅에서 RISC-V의 인기를 촉진하고 궁극적으로 커뮤니티가 이 기술을 기반으로 슈퍼컴퓨터를 구축할 수 있도록 할 수 있습니다.
또한 초기 애플리케이션 연구는 RISC-V가 고성능 워크로드에 가져올 수 있는 이점을 뒷받침합니다.
2022년 12월, 칩 스타트업 Ventana Microsystems는 RISC-V Summit에서 세계 최초의 RISC-V 아키텍처 기반 192코어 CPU-VeyronV1을 출시했습니다.
보고서에 따르면 VeyronV1은 Ventana가 자체 개발한 고성능 RISC-V 코어, 8파이프라인 설계를 기반으로 하는 고급 5nm 공정 기술을 사용하고 최대 3.6GHz의 기본 주파수로 비순차적 실행을 지원하며 각 클러스터는 최대 16개의 코어를 가지며 여러 클러스터는 최대 192개의 코어를 지원할 수 있으며 48MB 공유 L3 캐시가 있으며 고급 부채널 공격 완화 조치, IOMMU 및 AIA(Advanced Interrupt Architecture)는 포괄적인 RAS 기능과 하향식 소프트웨어 성능 조정 방법을 지원하여 데이터 센터의 다양한 요구 사항을 충족합니다.
Ventana가 공개한 SPECint2017 테스트 데이터에 따르면,300W 전력 소비에서 VeyronV1 128코어 버전은 64코어 AMDEPYCMilan7763(280W)보다 훨씬 앞서며, 64코어 AWS Graviton G3(Neoversev1 코어) 및 40코어 Intel Xeon Ice Lake8380(270W)보다 2배 더 강력합니다. 물론 이는 주로 경쟁 제품에 비해 코어 수가 2배에 달했기 때문이다.
VeyronV1에는 SIMD 또는 벡터 실행 장치가 없으므로 AVX-512가 탑재된 Intel 또는 AMD 서버 프로세서에 매우 불리하다는 점을 지적해야 합니다.
또한 VeyronV1은 현재 대량 생산되지 않습니다. 앞서 올해 2분기나 3분기에 고객들에게 샘플을 제공하겠다고 약속한 바 있다. 따라서 위에서 공식적으로 발표한 데이터는 여전히 문서에 남아 있습니다.
반면 올해 3월 국내 제조사가 출시한 64코어 RISC-V 서버칩 SG2042는 소량으로 출하됐다.
최근 해외 연구원인 Nick Brown은 RAJAPerf 벤치마크 스위트를 통해 이 칩에 대한 실제 테스트를 실시한 결과 널리 사용되는 최신 RISC-V 칩과 비교하여 코어당 평균 성능이 5~10배 향상된 것으로 나타났습니다. 그러나 멀티스레드 워크로드에서 x86 고성능 CPU의 평균 성능은 여전히 4~8배 더 높습니다.
연구 보고서에 따르면 64코어 RISC-V 프로세서는 2GHz에서 실행되고 4개의 고성능 C920 코어로 구성되며 12레벨 비순차 다중 문제 수퍼스칼라 파이프라인 설계를 채택합니다.
C920은 3개의 디코드, 4개의 이름 바꾸기/일정, 8개의 발행/실행 및 2개의 로드/저장 실행 단위가 포함된 RV64GCV 명령어 세트를 제공합니다. 벡터화 표준 확장(RVVv0.7.1)을 지원하고 벡터 폭은 128비트이며 데이터 유형 FP16, FP32, INT8, INT16, INT32 및 INT64를 지원합니다. 그러나 C920은 FP64 벡터화를 지원하지 않습니다.
배정밀도 부동 소수점은 대부분의 고성능 워크로드의 기초이므로 이러한 작업의 벡터화를 지원할 수 있는 코어는 HPC에 더 높은 성능을 제공할 수 있다고 연구는 밝혔습니다. 또한 각 C920 코어에는 64KB의 L1 명령(I) 및 데이터(D) 캐시, 1MB의 L2 캐시(4개 코어 클러스터 간에 공유), 64MB의 L3 시스템 캐시(클러스터의 모든 코어에서 공유)가 포함되어 있습니다. 4개의 DDR4-3200 메모리 컨트롤러와 32개의 PCIeGen4 레인도 사용할 수 있습니다.
HPC 워크로드에 대한 중요한 고려 사항은 벡터화이며, C920 코어는 RVVv0.7.1만 지원하므로 컴파일러 지원이 과제입니다. RISC-VGNU 컴파일러의 현재 업스트림 버전은 벡터 확장 버전을 지원하지 않습니다. GNU 저장소에는 rvv1.0을 지원하도록 설계된 rvv next 분기가 포함되어 있지만 연구원들이 연구를 작성할 당시에는 적극적으로 유지 관리되지 않았습니다.
또한 rvv0.7.1에 대한 rvv-0.7.1 분기가 있었지만 이 분기는 제거되었습니다. 메인라인 GCC에 대한 지원 부족으로 인해 T-Head는 프로세서에 최적화된 자체 GNU 컴파일러(Xuantie GCC) 포크를 제공합니다.
T-Head의 사용자 정의 컴파일러는 RVVv0.7.1과 자체 사용자 정의 확장을 모두 지원합니다. 이 컴파일러의 여러 버전이 제공되었지만 20210618 릴리스의 일부인 GCC8.4는 최고의 자동 벡터화 기능을 제공하므로 연구원이 수행한 벤치마킹 실험을 위해 이 버전이 선택되었습니다.
이 버전의 컴파일러는 C920의 128비트 벡터 너비와 관련된 VLS(벡터 길이별) RVV 구성 요소를 생성합니다. 모든 커널은 최적화 수준 3에서 컴파일되었으며 보고된 모든 결과는 5회 실행에 대한 평균입니다.
다른 고성능 RISC-V 코어와의 비교
연구원들은 SG2042의 성능을 StarFive 개발 보드 VisionFiveV1 및 VisionV2와 비교했습니다. V1에는 StarFive JH7100SoC가 포함되어 있고 V2에는 StarFive JH7110SoC가 포함되어 있습니다.
JH7100과 JH7110 SoC는 모두 64비트 RISC-VSiFiveU74 코어를 기반으로 구축되었으며, JH7100에는 2개의 코어가 포함되어 있고 JH7110에는 4개의 코어가 포함되어 있습니다. SoC는 1.5GHz에서 실행되는 것으로 표시되며 U74 코어에는 32KB(D) 및 32KB(I) L1 캐시가 포함되어 있습니다. 두 SoC 모델 모두 코어 간에 공유되는 2MBL2 캐시도 포함합니다.
그러나 SiFiveU74는 RV64GC만 제공하므로 RISC-V 벡터 확장을 지원하지 않습니다.
△그림 1은 배정밀도(FP64)와 단정밀도(FP32) 측면에서 VisionFiveV2와 V1, SG2042의 단일 코어 성능 비교를 보여줍니다. 막대는 범주 전체에서 더 빠르거나 느린 평균 횟수이고 선의 범위는 가장 큰 것부터 가장 작은 것까지입니다.
그림 1에서 볼 수 있듯이 단일 C920 코어는 배정밀도 및 단정밀도 모두에서 V2 및 V1의 U74 코어보다 성능이 뛰어납니다.
이중 정밀도에서 C920 코어의 평균 성능은 이중 정밀도로 실행되는 V2의 U74 성능의 4.3~6.5배입니다. 또한 단정도에서 C920은 벤치마크 평균 성능의 5.6~11.8배를 수행했습니다. 이는 인상적인 성능 향상이며 C920에는 U74보다 느리게 실행되는 코어가 없습니다.
C920의 일부 코어 성능은 매우 인상적입니다. 예를 들어 알고리즘 그룹의 메모리 세트 벤치마크는 U74보다 FP32에서 40배 더 빠르게, FP64에서 18배 더 빠르게 실행됩니다.
이 벤치마크는 가능한 최상의 구성으로 이러한 코어에 있다는 점을 강조하는 것이 중요합니다. 즉, C920에서는 벡터링이 활용되지만 U74에서는 벡터링이 지원되지 않으므로 V1 또는 V2에서는 사용할 수 없습니다.
SG2042의 FP32와 FP64 사이에는 상당한 성능 차이가 있으며 이는 실제로 C920 벡터 연산이 FP64를 지원하지 않음을 나타냅니다. 이에 비해 V2에서는 배정밀도와 단정밀도 실행 간의 성능 차이가 훨씬 작습니다.
연구원들을 놀라게 한 그림 1의 결과 중 한 가지 측면은 VisionFiveV1이 V2보다 훨씬 느리다는 것입니다. 테스트가 단일 코어에서 RAJAPerf를 실행했다는 점을 고려하면 칩의 듀얼 코어 및 쿼드 코어 특성은 둘 다 동일한 U74 코어를 포함하므로 중요하지 않으므로 성능은 상당히 유사해야 합니다.
그러나 V1은 배정밀도에서는 V2보다 6~3배 느리고 단정밀도에서는 1~3배 느립니다. V1이 V2보다 낮은 클럭 주파수에서 실행될 수 있다고 가정할 수 있지만 데이터시트에는 둘 다 1.5GHz에서 실행되는 것으로 나열되어 있지만 이를 확인할 수 있는 문서나 출력이 시스템에 없습니다.
그림 1에서 볼 수 있듯이 단일 C920 코어로 달성한 성능은 기존에 공개된 상용 RISC-V 코어에 비해 인상적입니다. T-Head는 코어를 고성능 RISC-V 프로세서로 설명합니다.
또한 테스트에서는 이전에 HPC 워크로드를 실험하기 위해 널리 사용되는 RISC-VCPU 중에서 최고의 선택으로 간주되었던 U74에 비해 전체 벤치마크 제품군에 걸쳐 성능이 크게 향상된 것으로 나타났습니다.
단일 코어 성능 외에도 SG2042는 코어 수 측면에서 V1의 JH7100 및 V2의 JH7110 SoC보다 훨씬 앞서 있습니다.
x86 서버 CPU 성능 비교
그렇다면 다른 상업용 x86 서버 칩과 비교하여 SG2042는 HPC 워크로드에서 어떻게 작동합니까?
이와 관련하여 연구원들은 현세대 서버에 사용되는 다른 CPU, 즉 64코어 AMD RomeEPYC7742, 18코어 Intel Broadwell Xeon E5-2695, 28코어 Intel Ice Lake Xeon 6330 및 4코어 Intel Sandy Bridge Xeon E5-2609와 이를 비교했습니다.
모든 SMT는 기본적으로 비활성화되어 있으므로 테스트는 x86CPU의 물리적 코어에서만 수행되었습니다.
AMDEPYC7742에는 4개의 NUMA 지역에 64개의 물리적 코어가 포함되어 있으며 각 지역에는 16개의 코어가 있지만 8개의 메모리 컨트롤러가 있습니다. 각 코어에는 32KB(I) 및 32KB(D) L1 캐시, 512KB의 L2 캐시, 4개의 코어 간에 공유되는 16MB의 L3 캐시가 포함되어 있습니다. EPYC7742는 AVX2에 대한 지원을 제공하고 SG2042보다 두 배 넓은 256비트 폭의 벡터 레지스터를 가지며 FP64에 대한 벡터화를 지원합니다.
Intel Xeon E5-2695의 18개 물리적 코어는 NUMA 영역에 위치하며, 32KB(I) 및 32KB(D) L1 캐시, 256KB L2 캐시, 코어 간에 공유되는 45MB L3 캐시를 제공합니다. AMD EPYC7742와 유사하게 Xeon E5-2695는 AVX2를 지원하며 4개의 메모리 컨트롤러를 갖추고 있습니다.
Intel Xeon 6330은 NUMA 영역의 물리적 코어 28개 모두, 메모리 컨트롤러 8개, 32KB(I) 및 48KB(D) L1 캐시, 코어당 1MBL2 캐시, 43MB 공유 L3 캐시를 갖춘 최신 CPU입니다. Xeon6330은 AVX512를 지원하고 512비트 폭의 벡터 레지스터를 제공합니다.
Intel Xeon E5-2609는 이 테스트에서 가장 오래된 CPU입니다. 2012년에 출시되었으며 4개의 물리적 코어만 제공합니다. 각 코어에는 64KB(I) 및 64KB(D) L1 캐시는 물론 256KB L2 캐시와 공유 10MBL3 캐시도 있습니다. 이 E5-2609는 AVX만 지원하므로 AVX는 FP64를 지원하지만 벡터 레지스터 길이는 SG2042, 128비트와 동일합니다.
모든 테스트에서,연구원들은 x86 물리적 코어에서 하이퍼스레딩을 비활성화했습니다.연구원들은 ARCHER2를 제외한 모든 시스템에서 GCC 버전 8.3을 사용했으며 컴파일은 항상 최적화 수준 O3에서 수행되었습니다. 최고 성능의 스레드 수에서 모두 실행되는 시스템입니다.
△그림 4는 FP64에서 벤치마크 제품군을 실행하는 각 칩의 단일 코어 성능을 보여줍니다. 막대는 범주 전체에서 더 빠르거나 느린 평균 횟수이고 선의 범위는 가장 큰 것부터 가장 작은 것까지입니다. SG2042는 평균 기준선입니다.
테스트 결과에서,스트리밍 및 알고리즘 벤치마크 범주에서 평균 성능이 느린 고대 Xeon E5-2609 코어를 제외하고 모든 x86 코어는 C920보다 성능이 뛰어났습니다.
AMD EPYC7742 및 Intel Xeon6330 CPU는 Intel XeonE5-2695보다 성능이 더 좋은 경향이 있는데, 이는 XeonE5-2695가 세 가지 중 오래된 모델이기 때문에 이해할 수 있습니다.
△그림 5는 각 칩의 단일 코어 성능이 기준선과 비교하여 FP32에서 벤치마크 제품군을 실행한 횟수를 보여줍니다.
그림 5에서 볼 수 있듯이 AMD EPYC7742는 단정밀도와 배정밀도에서 실행할 때 성능이 매우 떨어지는 반면 Intel 프로세서의 평균 성능은 그만큼 좋습니다. 실제로 FP32를 사용할 때 고대 Xeon E5-2609 코어는 모든 수준에서 평균적으로 C920보다 성능이 뛰어납니다.
그러나 그림 5의 평균 막대 그래프는 전체 그림을 제공하지 않습니다.
C920은 FP32에 대한 벡터화만 지원하며 실제로 그림 5와 그림 4의 라인에서 볼 수 있듯이 FP32에 대한 많은 벤치마크 클래스의 최대 속도는 FP64보다 빠릅니다.
또한 FP32의 C920보다 x86 CPU에서 더 느리게 작동하는 가장 느린 코어가 더 많습니다. 이러한 코어는 자동 벡터화가 효과적으로 적용되는 곳이며 실제로 lcals 벤치마크 클래스의 경우 모든 x86 CPU에서 최소 하나의 코어가 C920보다 성능이 떨어지는 것을 볼 수 있습니다.
요약하면, 싱글 코어 성능 비교 측면에서 AMD EPYC7742의 평균 성능은 FP32에서 C920보다 3배, Intel XeonE5-2695가 2배, Intel Xeon6330도 4배, XeonE5-2609가 2배, FP64에서 이 수치가 각각 4배, 4배, 5배, 20% 빠릅니다.
△FP64 멀티스레드 성능 비교, 기준보다 빠르거나 느린 횟수를 보고
그림 6은 배정밀도 FP64의 성능 비교를 보여줍니다.
기본, lcals, 폴리벤치 및 스트림 클래스 테스트는 더 많은 코어에서 가장 많은 이점을 얻으므로 SG2042의 평균 성능이 고대 Xeon E5-2609의 평균 성능보다 우수하다는 것을 알 수 있습니다.
△FP32 멀티스레드 성능 비교, 기준보다 빠르거나 느린 횟수를 보고
그림 7은 FP32의 멀티스레드 성능 비교를 보여 주며, 이 결과에는 가장 큰 차이가 있습니다. 연구진은 가독성을 높이기 위해 세로축을 제한하고 해당 값을 초과하는 실제 값을 표시했습니다.
멀티 스레드 FP32의 경우 SG2042는 x86 CPU에 대해 FP64보다 약간 더 나은 성능을 보이는 경향이 있지만 폴리벤치 클래스는 최신 x86 CPU 3개에서 훨씬 더 나은 성능을 발휘하고 Intel Xeon E5-2609는 훨씬 더 나쁜 성능을 발휘한다는 점에서 특이합니다.
요약하면 SG2042 멀티 스레드 성능을 x86 CPU와 비교할 때 FP32 및 FP64에서 실행되는 모든 벤치마크 유형에서 64코어 평균 성능이 4코어 Intel Xeon E5-2609보다 우수합니다.
FP32와 FP64에서 64코어 AMD EPYC7742의 성능은 SG2042에 비해 각각 8배, 5배 향상되었습니다. 18코어 Intel Xeon E5-2695는 단정밀도와 배정밀도에서 각각 평균 6배, 4배의 성능을 달성합니다. 마지막으로 28코어 Intel Xeon6330은 FP32 및 FP64에서 각각 6배 및 8배 더 나은 성능을 발휘합니다.
결론적으로:
현재 많은 기업이 고성능 RISC-V 하드웨어 프로토타입을 개발하고 있지만 지금까지 상용 RISC-V 소프트웨어에서 워크로드를 실행하려는 경우 옵션이 매우 제한적이었다고 연구진은 말했습니다.
그럼에도 불구하고 이러한 솔루션을 사용하면 RISC-V를 실험할 수 있지만 고성능 워크로드를 생성하는 데 필요한 기능을 구조적으로 제공하지는 않습니다. 따라서 HPC 커뮤니티는 RISC-V에 관심이 있지만 기술에 대한 준비가 아직 되어 있지 않습니다.
물론 세계 최초로 널리 사용되는 HPC용 멀티 코어 RISC-V 서버 칩인 SG2042는 HPC 커뮤니티에서 RISC-V에 대한 관심과 채택을 크게 높일 수 있습니다. 그러나 중요한 문제는 현재 세대의 슈퍼컴퓨터에서 널리 사용되는 x86 CPU에 비해 여전히 훨씬 뒤떨어진다는 것입니다.
그럼에도 불구하고 이는 현재 시중에서 판매되는 RISC-V 하드웨어에 비해 몇 가지 중요한 변경 사항을 제공하는 매우 흥미로운 RISC-V 서버 칩입니다.
성능은 아직 x86 서버 CPU 수준은 아니지만 RISC-V 공급업체가 짧은 시간 내에 큰 발전을 이루었다는 점을 강조해야 합니다. 이와 대조적으로 x86 CPU는 오랜 역사를 갖고 있으며 수년간의 개발을 통해 이점을 얻습니다.
현재 서버 CPU 시장에서 RISC-V의 주요 경쟁자는 Arm 서버 CPU이다. 결국 이론적으로 RISC-VCPU는 Arm CPU보다 더 낮은 비용, 더 높은 맞춤화 및 확장성을 가질 수 있습니다.
차세대 고성능 RISC-V 프로세서의 경우 연구원들은 RVVv1.0을 제공하면 벡터화된 코드를 컴파일하기 위해 메인라인 GCC 및 Clang을 사용할 수 있으므로 매우 유용할 것이라고 믿습니다.
또한 FP64 벡터화, 더 넓은 벡터 레지스터, 증가된 L1 캐시 및 NUMA 영역당 더 많은 메모리 컨트롤러를 제공하면 상당한 성능 이점을 얻을 수 있으며 x86 고성능 프로세서와의 격차를 줄이는 데 도움이 될 수 있습니다.
입장:
징둥몰