FPGA Accelerated Computing, Kumar Deepak (Xilinx Data Center Group)
아래 영상을 보고 간략하게 느낀점을 정리합니다.
FPGA Accelerated Computing, Kumar Deepak (Xilinx Data Center Group)
FPGA
FPGA의 장점
- 어플리케이션에 따라 다르게 구현할 수 있다는 점. 예를 들면 7bit, 13bit 등의 integer를 구현할 수 있다.
- CPU나 GPU는 메모리 구조가 정해져 있지만, FPGA는 메모리 hierarchy가 제한되어있지 않으므로, data path를 원하는대로 구현할 수 있다.
- 개인적으로 가장 큰 장점이라고 생각
- 블럭에서 블럭으로 데이터를 전달할 때 DDR까지 갈 필요 없이 stream 등을 통해 전달할 수 있다. 예를 들면 CPU가 cache보다 훨씬 큰 데이터를 다룰 때, DDR에서 데이터 read 후 처리 한 뒤 DDR에 write 하고, 다시 결과 데이터를 DDR로부터 read 한 후 처리해야 하는 경우가 있을 수 있다. 그러나 이 경우 FPGA를 잘 설계한다면 DDR을 한 번만 read, write하도록 만들 수 있다.
FPGA Programming: Methology Evolution
- Schematics
- RTL
- IP-Centric + High-level Languages
- Software Defined
- SW Frameworks
FPGA를 프로그래밍 하는 방식은 계속 변화해왔다. 맨 처음에는 회로를 그리는 것에서부터, HDL 언어로 회로를 기술하는 RTL 방식, 그 이후 IP를 사용하거나 High-level synthesis를 사용하는 방식, 가장 최근에는 그냥 tensorflow와 같은 파이썬 프레임워크를 넣으면 FPGA 로직으로 변환되는 방식 등으로, 계속 발전중이다.
Example: Anti-Money-Laundary Watch List Management
실제로 은행권에서 겪는 실제 FPGA가 필요한 사례에 대해 설명한다. Swift 포멧으로 트랜잭션이 전송되면, 몇 ms안에 해당 트랜잭션을 허가하거나 거부해야 한다. 이러한 경우 FPGA를 사용할 수 있다.
How do you build an FPGA application
FPGA application을 만드는 순서
-
Identify kernel (function) for FPGA-acceleration
FPGA를 통해 가속해야 할 커널 또는 함수를 정의해야 한다. CPU가 처리하기 부담되지 않는 것은 CPU가 처리하고, 대용량의 데이터 처리가 필요한 것은 FPGA가 가속한다.
-
Organize compute for FPGA
몇 개의 unit을 두고, 각각의 unit은 무엇을 할 수 있는지 등을 결정해야 한다.
-
Code kernel in HLS C++
-
Write host code
-
Compile and package it as shared library
-
Use it in application
AML WLM Demo on AWS F1.2xlarge
FPGA 데모를 시연하고, CPU만 썼을때와 비교한다. FPGA의 경우 평균 8.47202ms가 걸린 것에 비해 CPU는 5558.23ms가 소요된다. Wow!
- FPGA는 대용량 병렬 처리가 가능한 장치
- FPGA 프로그래밍은 더 이상 어렵지 않음
- 예제에서는 CPU보다 650배 이상 빠름
- HBM을 사용하는 u50에서는 더 빠를 것임
- 48 core Intel Xeon Silver server에 비해서도 200배 이상 빠름
Data Analytics Acceleration using FPGAs
Operational & Relational DB의 경우 이미 CPU 최적화가 많이 되어있어서 FPGA가 장점을 살리기 어려움. 그러나 이외의 경우 FPGA의 장점을 살릴 수 있다. DB 지식이 많이 없어서 잘 모르겠음😅.
Example Problem: Find “customers like me”—Enabling real-time healthcare with TigerGraph and Alveo U50
비슷한 환자를 찾아야 하는 문제. 특히 이 경우, 환자의 수가 많아지면 CPU는 코어가 많더라도 암달의 법칙에 따라 처리 시간이 느려졌는데, FPGA는 환자 수가 늘어나더라도 비슷한 처리 속도를 보여준다.
- Alveo U50은 128 core AMD EPYC Rome server보다 40배 더 빠르게 동작했다.
Leave a comment