일반 유저들과는 거리가 아주 먼 내용인데, 마지막 부분만 한번 보세요. 요새 분위기가 이렇다는 걸 알 수 있어서 올립니다.
FPGA에 CPU 코어와 AI 가속기를 결합한 Versal
자일링스의 제품 분류
FPGA(Field-Programmable Gate Array) 업체인 자일링스(Xilinx)가 새로운 종류의 제품인 Versal을 발표했습니다. ACAP(Adaptive Compute Acceleration Platform)과 머신 러닝, 5G에 초점을 맞춘 제품입니다. 자일링스는 8월에 미국 스탠포드에서 열린 핫 칩스 컨퍼런스에서 Versal ACAP를 설명했습니다.
딥 러닝이 인기를 끌면서 데이터 센터에서 FPGA를 신경망 가속기로 사용하고 있습니다. 자일링스는 여기에 맞춰 FPGA 기반으로 머신 러닝에 최적화한 제품을 내놨습니다. Versal는 FPGA, CPU 코어, AI 가속 엔진까지 3가지 하드웨어를 탑재합니다. FPGA는 다양한 하드웨어 코어를 쓰지만, ACAP는 그 중에서도 AI 가속 코어를 중요하게 여기는 제품입니다.
스칼라 엔진, 프로그래머블 로직, AI 코어까지 3종류의 프로세싱 엔진을 NOC (Network-on-Chip)로 연결
Versal의 첫 번째 제품인 VC1902
프로그래머블 로직과 AI 코어를 결합
ACAP라는 종류의 첫 제품인 Versal VC1902은 TSMC의 7nm 공정 7FF로 생산합니다. 고성능 CPU 코어를 2개, AI 엔진 코어는 400개가 들어갑니다. 트랜지스터 수는 370억 개, 온 다이 메모리는 총 855Mbit, I/O는 785개, SerDes가 44의 호화 스펙입니다. 처리 부분은 스칼라 엔진, 프로그래머블 엔진, AI 엔진의 3종류입니다. 스칼라 엔진은 Cortex-A72 듀얼 코어와 Cortex-R5 듀얼 코어를 탑재합니다.
FPGA인 Versal Programmable Logic(PL)은 1.8MFLOPS의 성능에 900K LUTs(LookUp Tables)의 구성이며, 158MB의 Block RAM(BRAM)와 UltraRAM (URAM)를 분산 배치합니다. FPGA 부분의 DSP 어레이는 FP32/16 부동 소수점 연산과 INT8/16/24, CMPLX18 고정 소수점 연산을 지원합니다. FP32의 최대 성능은 2.8TFLOPS, INT8는 11.8TOPS입니다.
프로그래머블 로직
프로그래머블 로직의 DSP 컬럼 구성
메쉬 네트워크를 써서 타일 형태로 구성한 AI 엔진
AI 엔진 코어는 400개, 최고 성능은 8비트 정수(INT8) 133TOPS. AI 엔진은 메쉬 네트워크에 연결되며, 바둑판 형태의 타일 모양으로 배치됩니다. 각각의 코어에는 L1 메모리와 DMA 엔진이 분산됩니다.
메쉬 배열의 Versal의 AI 코어
AI 엔진 코어의 내부
각각의 AI 코어 내부는 32-bit 스칼라 RISC 프로세서 기반인 스칼라 유닛, 512-bit SIMD(Single Instruction, Multiple Data) 벡터 유닛, 3개의 어드레스 생성 유닛이 있습니다. 명령 세트 아키텍처는 VLIW (Very Long Instruction Word). 벡터 유닛은 INT8에서 1사이클에 vec128의 연산이 가능합니다.
INT8의 vec128에서 1사이클이니 512비트 벡터 폭과 맞지 않습니다. 하나의 연산을 2개의 오퍼레이션으로 수행한다고 볼 수도 있는데, 400개의 AI 엔진이 vec128를 1 사이클마다 2 오퍼레이션으로 1.3GHz의 속도로 연산하면 133TOPS가 됩니다.
AI 코어의 이론 성능
각각의 AI 엔진은 2개의 로드와 1개의 스토어를 포함합니다. 코어의 메모리는 로컬이 32KB, 4코어 공유 어드레서블 메모리가 128KB, 또 16.3MB의 L2 SRAM이 공유됩니다. AI 코어는 온다이 메쉬 네트워크에 연결됩니다. 광대역 NOC(Network-on-Chip)에 AI 코어 메쉬와 프로그래머블 로직이 저마다 연결되며, NOC는 DRAM 인터페이스에 연결됩니다. AI 코어는 각각 DMA 엔진을 가지고 데이터를 코어에서 코어로 전달합니다.
Versal 메모리 계층
Versal의 NOC (Network-on-Chip)
Versal의 AI 코어. 유연한 데이터 플로우
가속 장치의 상호 연결인 CCIX를 지원
스칼라 엔진인 Versal Processor System(PS)는 Cortex-A와 Cortex-R의 두 가지 코어를 쓴 멀티 코어입니다. 여기에선 Cortex-A72 듀얼코어, Cortex-R5 듀얼코어 구성을 썼습니다. 또 PS에 옆에는 Versal PMC and Security를 배치했습니다. 이건 Platform Management Ctrl (PMC)와 보안을 담당하는 유닛입니다.
Versal 스칼라 엔진
Versal NOC는 Vertical NoC과 Horizontal NoC으로 나뉩니다. 다이 중앙은 프로그래머블 로직이 들어가며, 다이 위가 AI 코어, 다이 하단은 메모리 인터페이스, 다이 좌우에는 I/O 다이, 왼쪽에 스칼라 프로세서와 플랫폼 관리가 배치됩니다. NOC는 이들 블록 사이에 배치됩니다.
Versal의 NOC (Network-on-Chip)의 구조
Versal의 NOC 배치
Versal의 NOC 토폴로지
메모리 인터페이스는 DDR4/LPDDR4에 x256 인터페이스. I/O는 PCI Express Gen4뿐만 아니라 가속 인터커넥트인 CCIX도 지원합니다. CCIX는 최고 25Gbps의 2x8 구성이 가능하며, CCIX는 호스트 CPU 측과 메모리 일관성을 유지해 연결됩니다.
Versal 메모리 인터페이스
시리얼 인터페이스는 PCI Express와 CCIX를 모두 지원
다용도 Versal의 AI 엔진
Versal는 신경망 네트워크 프로세서로 많이 쓰는 매트릭스 전용 연산 유닛이 아니라 벡터 연산 유닛을 채용했습니다. 연산 정밀도도 FP32까지 지원해 단순 AI 코어가 아니라 다양한 용도로 쓸 수 있습니다. 딥러닝에만 전문하된 코어가 아니라 시그널 프로세싱에도 적용할 수 있습니다. 그 예로 자일링스는 5G 무선 처리를 ACAP에서 실현하는 경우를 제시했습니다.
다양한 워크로드에 유연하게 대응하는 ACAP 아키텍처
5G 무선 ACAP의 구현 사례
ACAP에서 해결해야 할 점은 프로그래밍입니다. Arm CPU, 프로그래머블 로직, AI 코어까지 서로 다른 3개의 엔진을 포괄하는 프로그래밍 플랫폼이 필요합니다. 자일링스는 이를 위해 AI 코어 라이브러리를 준비합니다. AI 코어 사이의 데이터 플로우를 자동 생성하는 컨파일러도 개발 중입니다.
ACAP의 AI 코어 프로그래밍 개념
ACAP 프로그래밍 툴 체인
FPGA의 상황 변화가 만들어낸 자일링스의 Versal ACAP
반도체 공정이 복잡해지며 FPGA가 더욱 중요해졌습니다. 지금은 새로운 공정을 도입한 반도체 칩의 설계와 제조 비용이 급증해, 전처럼 쉽게 ASIC (Application Specific Integrated Circuit : 주문형 IC)를 만들지 못합니다. 최첨단 공정에서는 아주 비싼 ASIC를 뽑아낼 가격이 맞지 않습니다. 그래서 FPGA를 쓰는 제품들이 늘었습니다. 예전에는 FPGA를 프로토타입에만 쓰고 최종 제품에는 ASIC를 썼지만, 지금은 FPGA를 양산 제품에 넣는 경우가 많습니다. 그게 ASIC를 설계하는 것보다 저렴해서입니다.
무어의 법칙이 둔화되면서 CMOS 스케일링이 거의 멈추며 범용 프로세서의 성능을 끌어올리기 힘들어졌다는 것도 한몫 합니다. 그래서 성능 향상은 특정 작업에 최적화된 Domain Specific 방식을 많이 씁니다. 데이터 센터에서도 특정 워크로드에 최적화한 가속 장치의 도입이 늘어나고 있습니다. 이런 상황에서 하드웨어 로직을 프로그램으로 대체할 수 있는 FPGA를 다용도로 활용하는 가속기로 도입하고 있습니다. 마이크로소프트는 데이터센터에 FPGA를 전면 도입해 딥러닝을 FPGA로 연산했습니다. 반도체 공정의 개발이 지지부진해지며 FPGA에 시선을 돌리게 됐습니다.
이런 상황에서 FPGA도 변화했습니다. 간단한 프로그래머블 로직 어레이가 아닌 CPU 코어, 고속 메모리, 고속 I/O 인터페이스 블록을 하드웨어 코어로 탑재합니다. 프로그래머블 로직도 더 고성능을 추구하고 있습니다. 자일링스는 이런 분위기에 맞춰, 고성능 가속을 요구하는 데이터센터에 유연성을 확보한 솔루션을 제공합니다. 하드웨어 로직을 프로그래밍을 대체하는 FPGA의 장점과, 하드웨어 AI 가속의 장점을 결합합니다. 비싼 ASIC를 대체해 확장이 필요한 5G 시스템 같은 솔루션도 제공합니다.