Title: GRVI Phalanx: A Massively Parallel RISC-V FPGA Accelerator Accelerator
ArXiv ID: 1606.01037
발행일: 2016-06-06
저자: Jan Gray
📝 초록 (Abstract)
:
본 논문은 컴퓨팅 산업의 주요 과제인 처리량 증가와 에너지 소비 감소를 해결하기 위해 개발된 FPGA 가속기, GRVI Phalanx에 대해 설명합니다. 특히, 데이터 센터에서의 활용을 목표로 하며, 이를 통해 높은 처리량과 낮은 지연 시간, 그리고 효율적인 에너지 소비를 달성할 수 있습니다. 논문에서는 소프트웨어와 하드웨어 구현에 대한 도전 과제를 다루고, 이를 해결하기 위한 GRVI Phalanx 시스템의 설계 및 구현 방법을 상세히 설명합니다.
💡 논문 핵심 해설 (Deep Analysis)
:
본 논문은 컴퓨팅 산업에서 중요한 문제인 처리량 증가와 에너지 소비 감소를 해결하기 위해 FPGA 가속기, GRVI Phalanx 시스템의 설계 및 구현을 다룹니다. 이 시스템은 데이터 센터에서 높은 처리량과 낮은 지연 시간, 그리고 효율적인 에너지 소비를 달성하는 것을 목표로 합니다.
1. 컴퓨팅 산업의 도전 과제
무어의 법칙에 따라 컴퓨팅 성능이 증가하고 있지만, 이를 실현하기 위한 처리량 증가와 에너지 효율성을 동시에 달성하는 것은 여전히 큰 과제입니다. 이러한 문제를 해결하기 위해 데이터 센터에서는 FPGA 가속기를 활용하여 높은 처리량과 낮은 지연 시간을 달성하고자 합니다.
2. 소프트웨어 구현의 도전
FPGA 가속기 개발에서 가장 큰 과제 중 하나는 애플리케이션을 하드웨어로 이동시키는 것입니다. 이를 위해서는 C++ 코드를 RTL(레지스터 트랜스레이션 레벨)로 다시 작성해야 하는데, 이는 매우 복잡하고 유지 관리가 어렵습니다. 고수준 합성(High-Level Synthesis)은 이러한 문제를 해결하기 위한 중요한 진전이지만, 여전히 모듈을 시스템으로 구성하거나 호스트와의 인터페이스를 제공하는 데 한계가 있습니다.
OpenCL to FPGA 도구는 이러한 문제를 해결하기 위해 개발되었으며, 이를 통해 개발자는 저수준 FPGA 문제에 대한 추상화를 제공받을 수 있습니다. 그러나 OpenCL로 작성되지 않은 많은 소프트웨어와 특정 커널(kernel)에 특화된 가속기의 설계 주기가 여전히 문제가 됩니다.
3. 하드웨어 구현의 도전
FPGA 가속기 SOC(System-on-Chip)를 구현하는 것은 또 다른 큰 과제입니다. 이는 수십 개의 계산 및 가속기 코어와 이를 연결하는 극한 대역폭 인터페이스 코어로 구성되며, 이러한 많은 코어들을 풀 밴드위드(50+ Gbps)로 상호 연결하는 것이 필요합니다. GRVI Phalanx는 이러한 문제를 해결하기 위한 프레임워크입니다.
GRVI Phalanx 시스템은 RISC-V ISA를 기반으로 하며, 이는 오픈 소스 사양과 다양한 도구 및 라이브러리를 제공하여 FPGA 효율적인 소프트 프로세서 구현을 가능하게 합니다. GRVI RV32I 코어의 설계 목표는 MIPS/LUT를 극대화하는 것이며, 이를 위해 불필요한 논리 회로를 제거하고 드물게 사용되는 자원을 클러스터 내에서 공유하여 비용을 절감합니다.
GRVI 코어는 250개의 LUT(Look-Up Table)를 사용하며, 전체 코어는 일반적으로 320개의 LUT를 포함합니다. Kintex UltraScale (-2) FPGA에서 최대 375MHz의 클록 속도로 작동할 수 있으며, CPI(Cycles Per Instruction)는 약 1.3/약 1.6 (2/3 단계)으로 예상되어 코어의 성능 지표는 대략 0.7 MIPS/LUT입니다.
GRVI Phalanx 시스템은 한 Xilinx Kintex UltraScale KU040 FPGA에 최대 750개의 처리 요소(PE)를 구현할 수 있으며, 이를 통해 높은 병렬성과 메모리 접근성을 달성합니다. 각 PE 클러스터는 공유 메모리를 통해 통신하며, NOC(Network-on-Chip)를 통해 다른 클러스터와의 데이터 전송을 수행합니다.
4. 성능 및 효율성
GRVI Phalanx 시스템은 병렬 컴퓨팅 커널(SPMD 또는 MIMD) 최적화를 목표로 하며, 명령 또는 데이터 캐시는 없습니다. Multicast Hoplite를 사용하면 장치 내의 모든 IRAM은 새로운 커널을 1024 사이클(약 4μs) 만에 로드할 수 있습니다. 총 400개의 PE는 약 10만 MIPS의 피크 처리량을 제공하며, CRAM에 대한 전체 대역폭은 600GB/s입니다. NOC의 대역폭은 약 700Gb/s입니다.
초기 전력 데이터(SYSMON을 통해 측정)는 약 13W (PE당 33mW)로, 간단한 테스트에서 PE #0이 모든 다른 PE로부터 요청 메시지를 반복적으로 수신하고 각 PE에 응답 메시지를 전송하는 경우입니다.
결론
GRVI Phalanx 시스템은 컴퓨팅 산업의 주요 과제인 처리량 증가와 에너지 소비 감소를 해결하기 위한 중요한 진전을 이루었습니다. 이 시스템은 FPGA 가속기 개발에서의 여러 도전 과제를 해결하고, 높은 처리량과 낮은 지연 시간, 그리고 효율적인 에너지 소비를 달성할 수 있는 새로운 컴퓨팅 시대를 열 것으로 기대됩니다.
📄 논문 본문 발췌 (Excerpt)
## FPGA 가속기 개발의 도전과 혁신: GRVI Phalanx 시스템 소개
이번 가을, 무어의 법칙에 따라 컴퓨팅 산업은 처리량 증가와 에너지 소비 감소라는 과제에 직면해 있습니다. 이러한 추세는 데이터 센터 서버에서 FPGA(Field Programmable Gate Array) 가속기에 대한 관심을 높였습니다. 예를 들어, 마이크로소프트의 Catapult 시스템[1]은 데이터 센터 규모로 FPGA 가속을 활용하여 Bing 검색 쿼리 순위의 처리량을 두 배로 늘리거나 지연 시간을 줄입니다.
FPGA는 컴퓨터로서 병렬성, 전문성, 그리고 현대 인터페이스와의 연결성을 제공합니다. 10-100 Gbps 이더넷과 여러 DRAM 채널(곧 HBM)을 포함합니다. 일반 목적 CPU와 비교했을 때, FPGA 가속기는 더 높은 처리량, 낮은 지연 시간, 그리고 낮은 에너지 소비를 달성할 수 있습니다.
FPGA 가속기 개발의 두 가지 주요 과제는 소프트웨어와 하드웨어 구현입니다.
소프트웨어 과제:
애플리케이션을 하드웨어로 이동시키는 것은 비용이 많이 들고, 코드 변경에 따라 유지 관리가 어렵습니다. C++ 코드를 RTL(레지스터 트랜스레벨)로 다시 작성하는 것은 고통스러운 과정입니다. 고수준 합성(High-Level Synthesis)은 C 함수를 게이트로 매핑하지만, 모듈을 시스템으로 구성하거나 호스트와의 인터페이스를 제공하는 데는 도움이 되지 않습니다.
OpenCL to FPGA 도구는 이러한 문제를 해결하기 위한 중요한 진전입니다. 개발자들은 이제 저수준 FPGA 문제에 대한 추상화를 제공하는 진정한 소프트웨어 플랫폼을 갖추게 되었습니다. 그러나 “OpenCL to FPGA"는 만능 솔루션이 아닙니다. 많은 소프트웨어가 OpenCL로 작성되지 않으며, 가속기는 특정 커널(kernel)에 특화되어 있고, 설계 주기가 수 시간에 달할 수 있습니다.
하드웨어 구현 과제:
가속기 SOC(System-on-Chip) 하드웨어를 구현하는 것은 또 다른 도전입니다. SOC는 수십 개의 계산 및 가속기 코어와 이들과 연결된 극한의 대역폭 인터페이스 코어 (PCI Express, 100G Ethernet, 향후 HBM의 8개 이상의 DRAM 채널 등)로 구성됩니다. 이러한 많은 계산 및 인터페이스 코어를 풀 밴드위드(50+ Gbps)로 상호 연결하는 것은 어떻게 가능할까요? GRVI Phalanx는 이러한 문제를 해결하기 위한 프레임워크입니다. 설계자는 소프트웨어, 가속화된 소프트웨어 또는 고정 기능 가속기 중 원하는 조합을 사용하여 클러스터를 구성할 수 있습니다. 클러스터 내에서 코어는 직접 연결되거나 공유 메모리를 통해 통신할 수 있습니다. 클러스터와 외부 인터페이스 코어 간에는 넓은 대역폭의 Hoplite NOC가 메시지 형태로 데이터를 전송합니다.
본 논문은 GRVI Phalanx 시스템의 진행 상황을 상세히 설명합니다. 이 시스템은 GRVI 소프트 프로세서에서부터 클러스터 아키텍처, 그리고 전체 시스템에 이르기까지 단계별로 구축되었습니다.
대부분의 작업이 소프트웨어 기반인 워크로드의 실제 가속을 위해서는 FPGA 효율성이 높은 소프트 프로세서가 필요합니다. 이러한 프로세서는 표준 명령어 집합 구조(ISA)를 구현해야 하며, 이를 위한 다양한 오픈 소스 소프트웨어 도구, 라이브러리 및 애플리케이션이 존재해야 합니다. RISC-V ISA는 좋은 선택입니다. 오픈 ISA인 RISC-V는 현대적이고 확장 가능하며 다양한 사용 사례에 적합하게 설계되었습니다. 또한, 포괄적인 오픈 소스 사양, 테스트 스위트, 컴파일러, 시뮬레이터, 라이브러리, 운영 체제 및 프로세서 및 인터페이스 IP를 제공합니다. 그 핵심 ISA인 RV32I는 단순한 32비트 정수 RISC 아키텍처입니다. 현재 FPGA 소프트 프로세서 구현은 10여 개 이상 존재합니다. 본 연구의 질문은 “RISC-V RV32I에 대한 극도로 FPGA 효율적인 구현이 가능한가?“였습니다.
프로세서 설계는 포함할 기능과 제외할 기능을 결정하는 작업입니다. 단순하고 간결한 코어는 자원을 덜 사용하므로 더 많은 코어를 칩당 구현할 수 있어 더 높은 계산 및 메모리 병렬성을 달성할 수 있습니다.
GRVI RV32I 코어의 설계 목표는 MIPS/LUT를 극대화하는 것이었습니다. 이를 위해 각 CPU에서 불필요한 논리 회로를 제거했습니다. 드물게 사용되는 자원, 예를 들어 시프트기, 곱셈기 및 바이트/하프워드 로딩/저장 기능은 클러스터 내 두 개 이상의 코어에서 공유되어 전체적으로 비용을 반으로 줄입니다. GRVI 마이크로아키텍처는 평범합니다. 2단계 또는 3단계 파이프라인을 선택할 수 있습니다.
GRVI: 고성능 FPGA 아키텍처 설계
GRVI는 소형하고 빠른 FPGA(Field Programmable Gate Array) 코어입니다. 데이터 경로(datapath)는 250개의 LUT(Look-Up Table)을 사용하며, 전체 코어는 일반적으로 320개의 LUT를 포함합니다. Kintex UltraScale (-2)에서 최대 375MHz의 클록 속도로 작동할 수 있으며, CPI는 약 1.3/약 1.6 (2/3 단계)로 예상되어, 코어의 성능 지표는 대략 0.7 MIPS/LUT입니다.
…(본문이 길어 생략되었습니다. 전체 내용은 원문 PDF를 참고하세요.)…