FPGA Accelerated Computing, Kumar Deepak (Xilinx Data Center Group)

아래 영상을 보고 간략하게 느낀점을 정리합니다.

FPGA Accelerated Computing, Kumar Deepak (Xilinx Data Center Group)

FPGA

FPGA의 장점

  1. 어플리케이션에 따라 다르게 구현할 수 있다는 점. 예를 들면 7bit, 13bit 등의 integer를 구현할 수 있다.
  2. CPU나 GPU는 메모리 구조가 정해져 있지만, FPGA는 메모리 hierarchy가 제한되어있지 않으므로, data path를 원하는대로 구현할 수 있다.
    • 개인적으로 가장 큰 장점이라고 생각
    • 블럭에서 블럭으로 데이터를 전달할 때 DDR까지 갈 필요 없이 stream 등을 통해 전달할 수 있다. 예를 들면 CPU가 cache보다 훨씬 큰 데이터를 다룰 때, DDR에서 데이터 read 후 처리 한 뒤 DDR에 write 하고, 다시 결과 데이터를 DDR로부터 read 한 후 처리해야 하는 경우가 있을 수 있다. 그러나 이 경우 FPGA를 잘 설계한다면 DDR을 한 번만 read, write하도록 만들 수 있다.

FPGA Programming: Methology Evolution

  1. Schematics
  2. RTL
  3. IP-Centric + High-level Languages
  4. Software Defined
  5. 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을 만드는 순서

  1. Identify kernel (function) for FPGA-acceleration

    FPGA를 통해 가속해야 할 커널 또는 함수를 정의해야 한다. CPU가 처리하기 부담되지 않는 것은 CPU가 처리하고, 대용량의 데이터 처리가 필요한 것은 FPGA가 가속한다.

  2. Organize compute for FPGA

    몇 개의 unit을 두고, 각각의 unit은 무엇을 할 수 있는지 등을 결정해야 한다.

  3. Code kernel in HLS C++

  4. Write host code

  5. Compile and package it as shared library

  6. 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배 더 빠르게 동작했다.

Tags:

Categories:

Updated:

Leave a comment