본문 바로가기
Digital Logic/FPGA

FPGA Acceleration(가속화), 꼭 알아두어야 할 그것.

by 고뭉나무 2021. 7. 12.

FPGA의 특징

FPGA는 단가 측면에서 ASIC에 밀리고 그렇다고 CPU(SW)처럼 개발이 쉬운 것도 아니여서 이를 이용한 Computing power가 주목받지 못했다.

하지만 장점 또한 명확하다.

ASIC이 갖지 못하는 'Re-Programmable' 특성과 CPU(SW)가 갖고 있지 못한 월등한 'Computing power'를 가지고 있다.

그리고 이 매력으로 FPGA는 여러 전자 제품(5G, 자율 주행, Cloud, 카메라, 항공 등) 안의 코어 역할로 사용되고 있다. 

 

그래서 이번 포스팅에서는 두 가지 장점 중 Computing power에 대해 알아보겠습니다.

 

 

 

 

FPGA가 갖고 있는 Computing Power를 구현할 수 있는 기술

HW 가속화

구동 방식은 다음과 같다.

1) CPU(SW)에서 Data를 FPGA로 넘겨준다. (PCIe를 통해)

2) FPGA에서 연산을 한다. (Accelerated Functions)

3) Function의 결과 값을 CPU(SW)로 보낸다. (PCIe를 통해)

 

 

 

그럼 왜 FPGA에서 처리하면 가속화가 되는 것일까?

 

아래 예시를 통해 알아보자.

CPU(SW)는 순차적인 처리만 가능하다. 들어오는 순서대로 실행하기 때문에 func2와 같은 수행 시간이 긴 작업이 중간에 있으면 전체 수행 시간도 그만큼 늘어난다. 전체 수행 시간을 단축 시키려면 CPU의 연산 처리 성능을 올리는 수 밖에 없다. (일반적으로)

 

 

 

하지만 만약 FPGA를 같이 사용한다면 시간을 단축시키는 방법이 생긴다. FPGA는 병렬 처리가 가능하기에 수행 시간이 긴 func2를 동작시키면서 '동시에' func3과 func4를 처리할 수 있다. 그러면 결과적으로 전체 수행 시간이 단축된 것을 볼 수 있다.

이러한 행위를 'FPGA 가속화'라고 한다.

 

 

 

그리고 FPGA 가속화를 위해서 쓰이는 고급 기술이 있는데 그것이 바로 'Pipelining'이다. 

우리가 흔히 아는 Pipeline처럼 병렬 처리의 장점을 최~대한 활용하여 코드를 설계하는 것이 곧 FPGA 가속화의 성능이라고 볼 수 있다.

 

 

 

그럼 실제 시장에서 어떤 식으로 주목 받고 있는 지 확인해보자.

 

Machine vision

출처: Stemmer imaging

#이미지 처리 #높은 용량의 메모리

 

 

Where are FPGAs in machine vision?

They are often found as part of a cameras back end, used for converting the data coming from the sensor to more meaningful data to be transmitted from the camera. As well as implementing the data conversion the FPGA core runs a memory controller used for implementing the data resend mechanism.

A second area where FPGAs are heavily used is in frame grabbers, again this is often for data conversion or image enhancement. A more advanced use of FPGA's in frame grabbers can be seen on the Silicon Software Micro Enable 5 Ironman boards, the architecture here uses two FPGAs, one for controlling data acquisition and transfer, virtual serial ports and communication with the camera, and a second FPGA, programmable by the user via a graphical design tool, to perform time critical, high bandwidth and more complex operations such as sobel filters, simple JPEG compression, high speed data conversion, blob location or laser triangulation. 

 

 

FPGAs used for data conversion is wide-spread and generally unseen by the user but when they are brought to the forefront of processing, they have the ability to offload processing power from the CPU and can enable extremely high bandwidths to be managed; they are not suitable for all applications and not needed for some. But what they offer can make them an invaluable tool in machine vision.

 

https://www.stemmer-imaging.com/en-dk/technical-tips/introduction-to-fpga-acceleration/

 

Introduction to FPGA acceleration

STEMMER IMAGING Tech Tip: Learn more about FPGA acceleration and more about the ability to offload processing power from the CPU.

www.stemmer-imaging.com

 

 

 

Interface PCIe board

출처: BittWare

#고속 처리 #여러 센서 처리 #실시간 데이터 획득

 

A Growing Demand for FPGA Accelerators

FPGA accelerators have already set to expand beyond the data centers. Sectors such as autonomous driving, robotics, and Industry 4.0 cannot tolerate the telecommunication delays of relaying information from distant data centers. Compute horsepower is increasingly deployed in edge computing racks and mobile base stations in 5G. When it comes to large scale operations, an FPGA is a better accelerator choice for battery-operated devices, and in cloud services hosted on massive servers with reduced power consumption and minimal costs.

 

Compute Accelerators: Designed for compute-intensive data center applications, BittWare's 520N-MX is a PCIe board built using Intel's Stratix 10 MX FPGA with integrated HBM2 (high bandwidth memory) at 512 Gbps. Four QSFP28 cages supporting up to 100G per port makes it ideal for clustering, and OCuLink connectors allow for expansion. This board supports both traditional HDL and higher abstraction C, C++, and OpenCL. Its flexible memory architecture allows a broad range of memory types to be coupled to the FPGA fabric: QDR-II+ SRAM, DDR4 SDRAM, Intel Optane 3D-XPoint, and NVMe SSDs. The 520N-MX features a Board Management Controller (BMC) for advanced system monitoring and control, which significantly simplifies platform integration and management.

 

Sensor Processing Accelerator: Sensor processing is a core market for FPGAs. FPGAs are extensively used in embedded applications such as RADAR, SDR, and Electronic Warfare for real-time data acquisition, filtering, and signal processing. Modern FPGAs and SoCs, with their inherent flexibility, are ideal for multi-channel sensor processing applications managing ultra-high data ingress and real-time processing requirements within SWaP (Size, Weight, and Power) constrained application environments. The unique blend of logic resources, DSP blocks, and embedded memories enables an efficient fulfillment of FPGA sensor processing demands.

 

출처: https://www.element14.com/community/docs/DOC-95463/l/introduction-to-fpga-based-accelerators

 

 

#AI 반도체 #CNN #YOLOv3

 

오늘날의 FPGA는 데이터 센터와 에지 환경 모두에 대한 수요가 빠르게 증가하고 있습니다. 특정 애플리케이션에 하드웨어 가속을 유연하게 조정할 수 있는 유연성에 대한 필요성 이 때문입니다.

 

CNN 네트워크 내에서 컨볼루션을 처리하려면 수백만 개의 계수를 저장하고 처리해야 합니다. 전통적으로 이러한 각 계수는 단일 정밀도 표현으로 저장됩니다. 연구원들은 필요한 스토리지 양과 메모리 대역폭 요구 사항을 줄이면서 전체 정확도를 크게 변경하지 않으면서 계수를 절반정밀도로 줄일 수 있음을 입증했습니다. 오늘날 사용할 수있는 사전 훈련 된 CNN 모델의 대부분은 부분적으로 감소 된 정밀도를 사용합니다.

 

Flexible FPGAs

One approach to reduce the silicon count (therefore power) required for machine learning inference is reducing the dynamic range of calculations. Reducing from 32-bit to 16-bit floating point arithmetic, for example, only slightly reduces the application performance in recognition accuracy, yet can greatly reduce hardware requirements.

What if we went further? This is where FPGAs can excel because as the number of bits required is reduced, even down to a single binary bit, the hardware fabric adapts to only use what is needed. We can use variable precision within a project as well, including use of the hardened floating-point DSP logic blocks on the Stratix 10 FPGA when required.

 

FPGAs allow the designer to have a range of tools to best tailor the hardware to the application requirements.

In fact, our research focuses on performing machine learning using only binary weights: weights are binarized with only two values: +1 and -1. While many image-based machine learning applications use a series of convolution operations collectively called convolutional neural networks (CNNs), this new CNN variant is known more specifically as a Binary Weighted Neural Network (BWNN). It reduces all fixed-point multiplication operations in the convolutional layers and fully connected layers to integer additions.

 

FPGA Optimizations

Firstly, binarization of the weights reduces the external memory bandwidth and storage requirements by a factor of 32. The FPGA fabric can take advantage of this binarization as each internal memory block can be configured to have a port width ranging from 1 to 32 bits. Hence, the internal FPGA resource for storage of weights is significantly reduced, providing more space for the parallelization of tasks.

 

https://www.bittware.com/ko/resources/bwnn/

 

이진 가중 신경망 추론의 FPGA 가속 | 비트웨어 FPGA 가속

오늘날의 FPGA는 데이터 센터와 에지 환경 모두에 대한 수요가 빠르게 증가하고 있습니다. 이는 성능 향상, FPGA 개발 도구 사용, 특정 애플리케이션에 하드웨어 가속을 유연하게 조정할 수 있는

www.bittware.com

 

 

 

반응형

댓글