Evrişimsel sinir ağlarının FPGA üzerindehızlı ve kaynak verimli kısmi yapılandırma tabanlı gerçeklenmesi
Fast and resource efficient implementation of convolutional neural networks on FPGA based on partial reconfiguration
Yazar: HADEE MAD-A-DUM
Danışman: PROF. DR. YAŞAR BECERİKLİ
Kocaeli Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Derece: Doktora, 2022
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Evrişimli sinir ağları = Convolutional neural networks ; FPGA = FPGA ; Görüntü sınıflandırma = Image classification ; Nesne tespiti = Object detection

Özet:
Evrişimsel Sinir Ağları (ConNN/CNN) algoritması, klasik makine öğrenmesi yöntemlerine kıyasla ConNN modelleri doğrulukta önemli bir gelişme sağlaması sayesinde, özellikle bilgisayarla görme alanında bilişsel uygulamalar için verimli algoritmalardan biridir. Ancak ConNN algoritması, yüksek performanslı bilgi işlem cihazları gerektiren bilgi işlem ve bellek açısından yoğun bir görevdir. Buna göre, yüksek performans ve enerji verimliliğine sahip bir donanım işlemcisini belirlemek için ConNN modelinin çeşitli platformlarda konuşlandırılması incelenmiştir.

Alanda Programlanabilir Kapı Dizisi (FPGA) platformları, bilgi işlem yeteneği, güç verimliliği ve kullanıcı dostu arayüzler açısından FPGA cihazlarındaki son gelişmeler, ConNN modellerini hızlandırmak için güçlü bilgi işlem platformlarından biri olarak ortaya çıkmıştır. FPGA cihazının avantajları, paralel hesaplama yeteneği ve mantık modüllerinin yeniden programlanabilmesidir. Ancak ConNN modelinin FPGA üzerinde uygulanması kaynak kısıtlamaları ile sınırlıdır. Bu nedenle, kaynak kısıtlamaları altında FPGA'nın optimum performansını elde etmek için ConNN'nin kaynak verimliliği ile hızlandırılması araştırılmıştır.

Bu tezde, kaynak kısıtlı bir ortamda ConNN modelini hızlandırmak için FPGA tabanlı bir donanım hızlandırıcı önerilmiştir. Önerilen hızlandırıcı, verimli donanım optimizasyon yöntemleri ve donanım davranışının sayısal analizi kullanılarak tasarlanmıştır. Performans değerlendirmesi için AlexNet, ResNet-18 ve YOLOv3-tiny gibi farklı ConNN modelleri uygulanmıştır. Ayrıca, dinamik donanım tasarımı kullanarak kaynak verimliliğini daha da artırmak için uyarlanabilir bir hızlandırıcı önerilmiştir. Uyarlanabilir hızlandırıcının mimarisi, FPGA'nin kısmi yeniden yapılandırma yeteneği kullanılarak bilgi işlem ve depolama gereksinimlerine göre çalışma zamanında yeniden yapılandırılır. Önerilen uyarlamalı tasarım, statik tabanlı hızlandırıcı tarafından geliştirilemeyen kaynak yetersiz kullanımını iyileştirmiştir.

Ayrıca, yüksek çözünürlüklü logaritmik nicemleme yöntemini kullanan bir ConNN sıkıştırma tekniği önerilmiştir. Önerilen yöntemi kullanarak, nicemlenmiş ConNN modelleri, yeniden eğitim süreci olmaksızın orijinal doğruluğa yakın bir doğruluk oranı elde etmiştir. Ek olarak, düşük bit genişlikli nicemleme yönteminin performansını geliştirmek için bir aykırı ağırlık nicemleme yöntemi gösterilmiştir. Önerilen yöntem, büyük bir ağırlığı iki küçük değerle değiştirmektedir. Böylece logaritmik nicemleme, düşük bit genişliği kullanılarak rahatlıkla gerçekleştirilebilir.  Nicemlenmiş ConNN modellerini gerçekleştirmek için bit kaydırma tabanlı bir hızlandırıcı da sunulmuştur. Deneysel sonuçlar, önerilen hızlandırıcının çarpma tabanlı tasarıma kıyasla önemli ölçüde daha iyi kaynak verimliliği sağladığını göstermiştir.

Abstract:
Convolutional Neural Networks (ConNN/CNN) algorithm is one of the efficient algorithms for cognitive applications, especially in the field of computer vision, as ConNN models provide a significant improvement in accuracy compared to classical machine learning methods. However, ConNN algorithm is a computing and memory-intensive task that requires a high-performance computing device. Accordingly, the deployment of ConNN model has been studied on various platforms to obtain a hardware processor with high performance and energy efficiency.

Field Programmable Gate Array (FPGA) has emerged as one of the powerful computing platforms to accelerate ConNN model due to recent improvements in FPGA devices with respect to computing capability, power efficiency and user-friendly development tools. The advantages of the FPGA device are parallel computing capability and re-programmability of the logic modules. However, the implementation of ConNN model on FPGA is limited by resource constraints. For this reason, accelerating ConNN with resource efficiency has been studied to achieve optimum performance of FPGA devices under resource constraints.

In this thesis, an FPGA-based hardware accelerator is proposed to perform ConNN model in a resource-constrained environment. The proposed accelerator is designed using hardware optimization techniques and numerical analysis of hardware behaviour. Different ConNN models including AlexNet, ResNet-18 and YOLOv3-tiny are implemented for performance evaluation. Moreover, an adaptive hardware accelerator is demonstrated to further increase resource efficiency using dynamic hardware design. The architecture of the adaptive accelerator is able to be reconfigured at runtime according to the computing and storage requirements using partial reconfiguration capability. The proposed adaptive design solves resource underutilization that cannot be improved by the static-based accelerator.

Additionally, in the thesis, a ConNN compression technique using high-resolution logarithmic quantization is proposed. Applying the proposed method, quantized ConNN models achieve accuracy close to original accuracy without the retraining process. Besides this, an outlier weights separation method is demonstrated to improve the performance of low bit-width quantization method. The proposed method replaces a large weight with two smaller values. Thus, logarithmic quantization can be conveniently performed using a low bit-width. A bit-shift-based accelerator is also presented to perform quantized ConNN models. Experimental results showed that the proposed accelerator provides significantly better resource efficiency compared to the multiply based design.