Makine öğrenmesi uygulamalarının FPGA gerçeklemesi ve performans analizi
FPGA implementation and performance analysis of machine learning applications
Yazar: HALİL ASİL AYDIN
Danışman: DOÇ. DR. SADİYE NERGİS TURAL POLAT
Yıldız Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı / Elektronik Bilim Dalı
Derece: Yüksek Lisans, 2023
Konu: Elektrik ve Elektronik Mühendisliği = Electrical and Electronics Engineering

Özet:
Makine öğrenmesi algoritmaları insanların öğrenme şeklini taklit ederek büyük veri kümeleri ile eğitilen otomatik karar verme algoritmalarıdır ve de her geçen gün popülerlikleri artmaktadır. Makine öğrenmesi algoritmalarından en popüler olanlarından biri de konvolüsyonel sinir ağıdır (CNN). CNN'ler nesne tespiti, anomali tespiti, sınıflandırma ve video analizi gibi pek çok popüler uygulamaya temel oluşturmaktadır. Lakin modellerin karmaşıklığına göre işlem hacminin yükselmesi ile hafıza kullanımının artması modellerin gerçek hayatta kullanımını zorlaştıran unsurlardır. Aynı zamanda bu kompleksliğin artması durumunda modeller gerçek zamanlı çalışma akışını kaybetmeye başlarlar ve performansları düşer, buna rağmen pek çok CNN modeli uygulamaya özel entegre devreler (ASIC), grafik işleme ünitesi (GPU) ve alan programlanabilir kapı dizileri (FPGA) gibi farklı gömülü sistemler üzerinde çalıştırılabilmektedir. Bu çalışmada, Xilinx firmasının ZCU102 FPGA geliştirme kartı üzerinde, seçilmiş olan üç adet CNN modeli gerçeklenmiş olup ayrıca bu modellerin performans analizlerine yer verilmiştir. Bu amaçla farklı CNN modelleri için ortak bir yapı sağlayan derin öğrenme işleme birimi (DPU) kullanılmıştır. DPU'nun tek çekirdekli veya çok çekirdekli kullanımları için kaynak kullanımı ve güç tüketimi analiz edilmiştir. Bunun haricinde modellerin gerçeklendiği yapı Petalinux işletim sistemi üzerinde çalışmaktadır. Bu yüzden DPU'un çekirdek sayısına göre modellerin çok iş parçacıklı yapıdaki performansları analiz edilmiştir. Çok iş parçacıklı uygulamalarda modellerin DPU çekirdek sayısı arttıkça her çekirdek için ortalama yüzde yirmi gibi performans artışı sağladığı görülmüştür.

Abstract:
Machine learning algorithms are automatic decision-making algorithms educated with large data sets imitating learning style of people and they are becoming more and more popular. Conventional neural network (CNN) is one of the most popular algorithms of machine learning algorithms. CNNs become the base for many popular applications such as object detection, anomaly detection, classification and video analysis. However, according to complexity of models there are some elements making the use of models more difficult in daily life; these are transaction throughput ascending and use of memory improving. At the same time, if this complexity continues to increase, models start to lose real time working flow and their performances decrease. Despite this, many CNN models can be worked through different embedded systems such as application special integrated circuits (ASIC), graphics processing units (GPU) and field programmable gate arrays (FPGA). In this study, three selected CNN models are implemented on ZCU102 FPGA developing card of Xilinx company and performance analysis of these models are included. To this end, deep learning processing unit (DPU) providing a common structure for different CNN models is used. Resource use and power consumption of DPU has been
analyzed for its single core or multicore uses. Apart from this, the structure implementing models works on Petalinux operating system. Therefore, performances of models having multithread structure, have been analyzed according to core number of DPU. It has been observed as DPU core number of models increase in multithread applications, performances enhance at the rate of 20% for each core at average.