FPGA와 GPU

딥 러닝을 위한 FPGA와 GPU

FPGA는 짧은 대기 시간과 유연성이 요구되는 딥 러닝 응용 프로그램에 탁월한 선택입니다

FPGA 딥 러닝 이점:

  • FPGA는 다양한 기능에 맞게 재프로그래밍할 수 있는 회로를 통해 뛰어난 우수한 유연성과 비용 효율성을 제공합니다.

  • GPU와 비교했을 FPGA는 짧은 대기 시간이 중요한 딥 러닝 응용 프로그램에서 탁월한 성능을 제공할 수 있습니다.

  • FPGA는 전원 효율성과 성능 요건 간의 균형을 맞추도록 정밀하게 조정할 수 있습니다.

author-image

기준

FPGA란 무엇입니까?

FPGA(Field Programming Able Gate Array)는 프로그래밍 가능한 하드웨어 패브릭과 통합된 회로입니다. 그래픽 처리 장치(GPU) 또는 ASIC와 달리 FPGA 칩 내부의 회로는 하드 에칭되지 않으며, 필요에 따라 재프로그래밍할 수 있습니다. 이러한 기능 덕분에 FPGA는 설계 및 제작에 오랜 개발 시간과 상당한 투자가 필요한 ASIC의 훌륭한 대안으로 자리잡고 있습니다.

기술 업계는 비교적 최근에 머신 러닝과 딥 러닝을 위해 FPGA를 도입했습니다. 2010년, Microsoft Research는 웹 검색을 가속화하려는 노력의 일환으로 FPGA에서 AI의 첫 번째 사용 사례 중 하나를 시연했습니다.1FPGA는 속도, 프로그래밍 가능성 및 유연성을 조합하여 맞춤형 ASIC(응용 프로그램별 집적 회로)를 개발하는 데 소요되는 비용과 복잡성 없이 성능을 제공합니다. 5년 후, Microsoft의 Bing 검색 엔진은 프로덕션 환경에서 FPGA를 사용하여 딥 러닝 응용 프로그램에 대한 가치를 입증했습니다. FPGA를 사용하여 검색 순위 지정 속도를 높임으로써 Bing은 처리량이 50% 증가했습니다.1

딥 러닝을 위해 FPGA를 선택해야 하는 이유는 무엇입니까?

이미지 인식과 같은 초기 AI 워크로드는 병렬 처리에 크게 의존했습니다. GPU는 비디오와 그래픽을 렌더링하도록 특별히 설계되었기 때문에 머신 러닝 및 딥 러닝에 사용하는 것이 인기를 끌었습니다. GPU는 병렬 처리에서 탁월한 성능을 발휘하며 매우 많은 수의 산술 연산을 병렬로 수행합니다. 즉, 동일한 워크로드를 여러 번 연속해서 빠른 속도로 수행해야 하는 경우 크게 가속할 수 있습니다.

그러나 GPU에서 AI를 실행하는 데는 한계가 있습니다. GPU는 특정 딥 러닝 워크로드에 맞게 특별히 설계된 칩인 ASIC만큼 많은 성능을 제공하지는 못합니다.

FPGA는 통합 AI를 통해 하드웨어 맞춤화를 제공하며, GPU 또는 ASIC과 유사한 동작을 제공하도록 프로그래밍할 수 있습니다. 재프로그래밍 및 재구성 가능한 FPGA의 특성은 빠르게 진화하는 AI 환경에 적합하여 설계자가 알고리즘을 빠르게 테스트하고 시장에 신속하게 출시할 수 있습니다. FPGA는 딥 러닝 응용 프로그램 및 기타 AI 워크로드에 몇 가지 이점을 제공합니다.

높은 처리량과 짧은 대기 시간으로 뛰어난 성능 제공: FPGA는 CPU를 우회하여 비디오를 FPGA로 직접 수집함으로써 비디오 스트리밍, 전사, 동작 인식과 같은 실시간 응용 프로그램에 확정적 대기 시간 뿐만 아니라 짧은 대기 시간을 기본적으로 제공할 수 있습니다. 설계자는 처음부터 뉴럴 네트워크를 구축하고 모델에 가장 잘 맞도록 FPGA를 구성할 수 있습니다.
탁월한 가치와 비용: FPGA는 다양한 기능과 데이터 유형에 맞게 재프로그래밍할 수 있어 가장 비용 효율적인 하드웨어 옵션 중 하나입니다. 또한 FPGA는 AI 외에도 다양한 용도로 사용할 수 있습니다. 설계자는 동일한 칩에 추가 기능을 통합하여 비용과 보드 공간을 절약할 수 있습니다. FPGA는 제품 수명 주기가 길기 때문에 FPGA를 기반으로 하는 하드웨어 설계는 수년 또는 수십 년 단위로 긴 제품 수명을 가질 수 있습니다. 이러한 특성으로 인해 산업 방위, 의료 및 자동차 시장에서 사용하기에 적합합니다.
낮은 전력 소비량: 설계자는 FPGA를 통해 하드웨어를 응용 프로그램에 맞게 정밀 조정하여 전력 효율성 요구 사항을 충족할 수 있습니다. 또한 FPGA는 여러 기능을 수용할 수 있어 칩에서 더 많은 에너지 효율성을 제공합니다. 전체 칩이 아니라 FPGA의 일부를 기능에 사용할 수 있어 FPGA가 여러 기능을 병렬로 호스팅할 수 있습니다. 

FPGA의 AI 및 딥 러닝 응용 프로그램 

예를 들어, 응용 프로그램에 음성 인식 및 기타 자연어 처리 워크로드와 같은 짧은 대기 시간과 작은 배치 크기가 요구되는 경우, FPGA는 CPU보다 성능 이점을 제공할 수 있습니다. 프로그래밍 가능한 I/O 인터페이스와 매우 유연한 패브릭으로 인해 FPGA는 다음과 같은 작업에도 적합합니다.

I/O 병목 현상 극복: FPGA는 데이터가 짧은 대기 시간에 다양한 네트워크를 통과해야 하는 경우에 자주 사용됩니다. AI 시스템 성능을 가장 제한하는 요소 중 하나인 메모리 버퍼링을 제거하고 I/O 병목 현상을 극복하는 데 매우 유용합니다. FPGA는 데이터 수집을 가속화하여 전체 AI 워크플로의 속도를 높일 수 있습니다.
AI를 워크로드에 통합: 설계자는 FPGA를 사용하여 기존 워크로드에 심층 패킷 분석, 금융 사기 탐지 등의 AI 기능을 추가할 수 있습니다.
센서 융합 지원: FPGA는 카메라, LIDAR, 오디오 센서와 같은 여러 센서에서 입력되는 데이터를 처리할 때 탁월한 성능을 발휘합니다. 이 기능은 자율 주행 차량, 로봇 공학 및 산업 장비를 설계할 때 매우 중요할 수 있습니다.
고성능 컴퓨팅(HPC) 클러스터를 위한 가속화 제공: FPGA는 추론을 위한 프로그래밍 가능 가속기 역할을 하여 AI와 HPC의 융합을 촉진하는 데 도움이 될 수 있습니다. 2
AI 이외의 추가 기능 도입: FPGA를 사용하면 추가 칩 없이 보안, I/O, 네트워킹 또는 전/후처리 기능을 추가할 수 있습니다.

인텔® FPGA 소프트웨어 및 하드웨어

FPGA를 사용할 때 극복해야 할 몇 가지 장애물 중 하나는 하드웨어에 일반적으로 특수한 프로그래밍 전문 지식이 필요하다는 점입니다. 인텔은 소프트웨어 기반 프로그래밍 모델을 사용해 필요한 전문 지식의 양을 줄이고 있습니다. 이 상위 수준의 FPGA 프로그래밍 모델을 사용하면 데이터 과학자 또는 모델 개발자가 FPGA 아키텍처의 세부 사항을 알지 못해도 TensorFlow, Caffe와 같은 일반적인 AI 프레임워크를 사용하여 뉴럴 네트워크를 생성하고 이를 FPGA에 배포할 수 있습니다. 인텔은 FPGA를 훨씬 쉽게 프로그래밍 할 수 있는 몇 가지 도구를 개발했습니다.

OpenVINO™ 툴킷의 인텔® 배포는 컴퓨터 비전 개발자에게 FPGA를 포함한 여러 하드웨어 플랫폼에서 모델을 가속할 수 있는 단일 도구를 제공합니다.
인텔® FPGA AI 제품군은 인텔® FPGA로 추론을 가속할 수 있는 도구와 최적화된 아키텍처를 제공합니다. OpenVINO™ 툴킷과 연계하여 맞춤형 네트워크를 지원할 수 있는 확장성을 제공합니다.
Open FPGA Stack(OFS)은 맞춤형 FPGA 기반 플랫폼과 워크로드 개발을 위한 프레임워크를 제공하는 오픈 소스 소프트웨어 및 하드웨어 인프라입니다. 모든 소스 코드는 GitHub에서 사용할 수 있습니다.

인텔® FPGA 딥 러닝 기술 솔루션은 개발 시간과 비용을 줄이는 데 도움이 되는 다양한 제품군 및 소프트웨어 도구를 포괄합니다. 다음 하드웨어 제품은 딥 러닝 사용 사례에 특히 유용합니다.

인텔® Agilex® 5 FPGA 및 SoC는 업계 최초로 고효율 AI 및 디지털 신호 처리(DSP) 기능을 제공하는 AI Tensor를 탑재한 향상된 DSP 블록을 갖춘 중간급 FPGA입니다. 이 제품군은 이전 세대 인텔® FPGA에 비해 평균 50% 더 높은 패브릭 성능과 최대 42% 더 낮은 총 전력 소비량을 제공합니다.3

AI를 위한 인텔 포트폴리오

AI 도입이 증가하면서 엔드포인트 장치에서 에지 서버, 데이터 센터에 이르기까지 AI가 실행되는 응용 프로그램과 환경의 범위가 놀랍도록 다양해질 것입니다. 단일 아키텍처, 칩 또는 폼 팩터는 모든 AI 응용 프로그램의 요건을 충족할 수 업습니다. 인프라 설계자가 자신이 선택한 아키텍처에 액세스할 수 있어야 합니다.

인텔은 AI의 확산을 지원하는 4가지 유형의 실리콘, 즉 가속화를 위한 FPGA, GPU, ASIC과 범용 컴퓨팅을 위한 CPU를 제공합니다. 각 아키텍처는 고유한 요구 사항을 충족하므로 인프라 설계자는 모든 AI 응용 프로그램을 지원하는 데 필요한 정확한 아키텍처를 선택할 수 있습니다. 전력과 성능에 최적화된 광범위한 컴퓨팅 유형을 통해 언제든지 당면한 작업에 적합한 도구를 사용하게 됩니다.