Performance evaluation of a parallel image enhancement technique for dark images on multithreaded CPU and GPU architectures - Hangün, Batuhan (My University, 2021)
Görüntü işleme; savunma sanayisi, biyomedikal, tüketici elektroniği gibi sektörlerde uygulamaları olan bir araştırma alanıdır. Zamanla, kullanılan algoritmaların karmaşıklığı ve kullanılan görüntülerin çözünürlüğü artmıştır. Buna karşın, karmaşıklığı fazla algoritmaların çalıştırılmasının ya da büyük boyutlu görüntülerin işlenmesinin tek çekirdekli merkezi işlem birimleri ile yeteri kadar hızlı bir şekilde yapılamadığı görülmüştür. Bunun sonucunda çok çekirdekli merkezi işlem birimleri kullanılmaya başlanmıştır fakat bunun da yetersiz kaldığının fark edilmesi üzerine yüzlerce aritmetik ve mantık işlem birimi barından grafik işleme birimlerinin görüntü işleme alanında kullanımı önem kazanmıştır. Grafik işleme birimleri de standart mikrodenetleyiciler gibi alt-seviyeli ve üst-seviyeli bazı programlama ara yüzleri ile programlanabilmektedir. Alt-seviyeli programlama ara yüzleri yüksek performans getirileri sunsa da bu programların geliştirilmesi zamanın yanında yüksek miktarda donanım bilgisi de gerektirmektedir bu da araştırmacılara zorluk çıkarmaktadır. Bu tez çalışmasında amaç, alt-seviyeli bir ara yüz kullanmadan, sadece üst-seviyeli bir ara yüz kullanarak görüntü işleme operasyonlarını grafik işleme birimi üzerinde çalıştırmak ve üst-seviyeli ara yüzlerin de kayda değer bir hızlanma sağladığını göstermek, böylece araştırmacıları çalışmalarında üst-seviyeli ara yüzlerle grafik işlemcilerini programlamaya teşvik etmektir. Çalışma dahilinde literatürden seçilen bir görüntü işleme yöntemi, OpenMP uygulama programlama ara yüzü ve CUDA temelli OpenCV uygulama programlama ara yüzü ile C++ programlama dili kullanılarak uygulanmıştır. Uygulama öncelikle kırk sekiz çekirdekli bir bulut bilgisayarında çalıştırılarak merkezi işlem biriminin performansı ölçülmüştür. Aynı uygulama daha sonra NVIDIA GeForce 1050 GTX TI grafik kartı ve Intel i7-7700HQ merkezi işlem birimi barındıran bir kişisel bilgisayar üzerinde çalıştırılmış ve performans sonuçları karşılaştırılmıştır. Sonuçlar, belli etkenlere bağlı olarak, grafik işlemci biriminin, merkezi işlem birimine göre yirmi beş kata kadar hızlanma sağladığını göstermiştir.

Image processing is a research area with applications in various fields. In time, the complexity of the algorithms and the resolution of the images used in this field have increased. Consequently, single-core central processing units have started to become insufficient. As a solution, researchers have deployed multicore central processing units to accelerate image processing applications. When the multicore central processing units have become inadequate, researchers have started to use graphics processing units. Those devices have hundreds of arithmetic and logic units to speed the image processing applications up. One can also program graphics processing unit using low-level programming interfaces and high-level programming interfaces as with standard microcontrollers. Even though they provide a significant amount of acceleration, low-level interfaces require high development time and deep knowledge about the hardware. For researchers, it is not suitable to spend most of their time on software development. In this thesis, we aimed to show the acceleration capabilities of a high-level programming interface to encourage more image processing researchers to use graphics processing units in their studies, spend less development time, and significantly gain speed up. Within the scope of the study, an image processing method selected from the literature was implemented using the C++ programming language with the OpenMP application programming interface and the CUDA-based OpenCV application programming interface. We first execute the program on a cloud computer with forty-eight cores to measure the performance of multicore central processing units. Then we implemented the same method on a personal computer which has NVIDIA GeForce 1050 GTX TI graphics card and Intel i7-7700HQ central processing unit. Experiments showed that the graphics processing unit provides twenty-five times speedup against the central processing unit depending on some factors.
Keywords: central processing unit; Electric engineering; Electronics engineering; Elektrik mühendisliği; Elektronik mühendisliği; grafik işleme birimi; graphics processing unit; hızlandırma Digital image processing; merkezi işlem birimi; Sayısal görüntü işleme; speed up