brief.ing.gg

BRIEFING

FPGA 개발보드는 왜 느려 보이는가

FPGA 개발보드는 왜 느려 보이는가

Scope

핵심 질문

FPGA 개발보드의 CPU clock과 benchmark가 낮아 보여도 특정 workload에서는 경쟁력이 있는 이유는 무엇인가?

Research

핵심 근거

  • FPGA fabric의 clock은 장치·회로·배치·타이밍 제약에 따라 달라지므로 특정 보드의 측정 없이 대표 주파수를 단정하지 않는다.
  • 성능은 clock보다 동시에 몇 개 pipeline stage가 병렬로 처리되는지에 좌우된다.
  • 개발보드의 ARM core benchmark와 FPGA fabric 성능을 혼동하면 안 된다.

Draft

FPGA 보드를 CPU benchmark로 보면 매우 느려 보일 수 있다. 이것은 비교 기준이 맞지 않기 때문이다.

낮은 Clock

FPGA logic은 복잡한 programmable routing을 거치므로 최신 CPU처럼 수 GHz에서 동작하기 어렵다.

대신 병렬 회로를 만든다

예를 들어 packet 하나를 20단계 pipeline으로 나누고 매 단계가 한 clock 안에 처리되며 입출력 속도가 충분하고 stall이 없다면, 서로 다른 packet을 단계별로 동시에 처리할 수 있다. 이 이상화된 조건에서 초기 latency는 약 20 cycle이고 pipeline이 차면 매 cycle 결과를 하나씩 낼 수 있다. 이는 실제 보드에서 측정한 throughput이 아니다.

개발보드 CPU와 구분

SoC FPGA에는 ARM core가 함께 들어있는 경우가 있다. 그 CPU의 benchmark가 낮다고 FPGA logic 자체의 throughput도 낮다는 뜻은 아니다.

언제 강한가

작업이 고정된 dataflow이고 bit-level 병렬화가 가능할 때 강하다. 복잡한 branch와 자주 바뀌는 일반 software에는 불리하다.

핵심

FPGA 성능은 GHz보다 pipeline throughput, I/O bandwidth, latency determinism으로 평가해야 한다.