검색 상세

FPGA에서 OpenCL을 이용한 LSTM-RNN의 최적화

Optimization of LSTM-RNN on FPGA using OpenCL

초록/요약

이 논문에서는 FPGA에서 OpenCL을 이용하여 LSTM을 최적화하는 방법 두 가지를 제안한다. 첫 번째 방법은 LSTM 신경망의 각 층을 순차로 처리하지만 한 층을 여러CU(compute unit)로 병렬 처리해서 성능을 향상시킨다. LSTM 각 층을 처리하기위해 입력, 계산, 출력을 담당하는 세 개의 커널을 사용한다. 계산을 담당하는 커널이 대부분의 처리시간을 소모하기 때문에 이 커널에 여러 CU를 할당한다. 두 번째 방법은 LSTM 각 층별로 독립적인 커널을 생성한다. 동일한 계산을 수행하는 커널을 층별로 따로 생성하는 방법은 중복 코드를 사용해서 소프트웨어공학에서 별로 선호하지는 않지만 신경망의 처리를 파이프라인으로 만들 수 있다. FPGA에서는 각 커널마다 하나 이상의 CU가 할당되기 때문에 이 방법을 사용하여 LSTM 각 층을 병렬 처리할 수 있다. 두 가지 방법을 비교 실험한 결과로는 두 개 층 정도의 얕은 LSTM 신경망에서는 첫 번째 방법의 성능이 좋게 나오고 그 이상의 깊은 LSTM 신경망에서는 두번째 방법의 성능이 좋게 나온다.

more

목차

제 1 장 서론
1.1 연구 배경 1
1.2 연구 방법 및 내용 1
1.3 논문 구성 3
제 2 장 관련 시스템 및 연구
2.1 Xilinx FPGA의 구조 4
2.2 FPGA에서 OpenCL 환경 6
2.3 LSTM (Long Short Term Memory) 13
2.4 FPGA에서 신경망 구현에 관한 기존 연구 17
제 3 장 FPGA에서 OpenCL을 이용한 LSTM의 최적화
3.1 LSTM 구현에 공통적으로 사용한 최적화 방법 19
3.2 여러 CU를 사용한 최적화 방법 및 실험 결과 21
3.3 LSTM 각 층별 독립적인 커널을 사용한 최적화 방법 및 실험 결과 23
제 4 장 결론 25
참고 문헌 26
Abstract 28

more