“GPU based parallel cooperative particle swarm optimization using C-CUDA: a case study.” başlıklı çalışma Kumar, Jitendra, Lotika Singh ve Sandeep Paul tarafından yapılmış olup Fuzzy Systems (FUZZ), 2013 IEEE International Conference on. IEEE konferansında 2013 yılında sunulmuştur.
Evrimsel algoritmaları CUDA üzerinde gerçeklemenin hızlanmaya katkısı olduğu gibi, yakınsama zamanında iyileşme(improvement in convergence time) yaptığı da görülmektedir.
Çalışmada CUDA üzerinde Cooperative Particle Swarm Optimization (CPSO) algoritması gerçeklenmiştir.
Çalışmada CUDA’nın randomize sınıfının popülasyon çeşitliliğini daha iyi ürettiği belirtilmiştir.
CPSO çalışması: van den Bergh, Frans, Andries P. Engelbrecht, and A. P. Engelbrecht. “Cooperative learning in neural networks using particle swarm optimizers.” South African Computer Journal. 2000. APA
CUDA(COMPUTE UNIFIED DEVICE ARCHITECTURE)
CUDA, NVIDIA tarafından geliştirilmiş bir yazılım ve donanım mimarisidir. CUDA, SIMD (Single Instruction Multiple Data) programlama modeline uygun çalışma gösterir. CPU ve GPU birlikte işleme yapar. Aynı anda çok sayıda thread çalıştığından SIMT (Single Instruction Multiple Threads) programlama modeli şeklinde isimlendirilmiştir.
GPU’da çalışan koda kernel ismi verilmektedir. Kodun bir de CPU’da çalışan kısmı mevcuttur.
CUDA grid, block ve thread yapısı
GPU bellek hiyerarşisi aşağıda görülmektedir.
Evrimsel algoritmaların fitness değerlendirme işlemi GPU’da yapılarak zaman kazanımı sağlanmaktadır.
Cooperative Particle Swarm Optimization (CPSO)
Kooperatif PSO’da parçacıklar arasında bir yarıştan ziyade yardımlaşma fikri ön plana çıkarılmıştır. Popülasyon n farklı alt popülasyona bölünür ve her bir alt bölüm ayrı ayrı çözüme ulaşmaya çalışır.
CPSO’nun bölünmüş sürü yaklaşımı:
n=5 ve D=1000 için düşünelim.
M=Parçacık Sayısı
n adet D boyutlu S1..Sn arasında sürü oluşturulur. {5 adet 1000 boyutlu sürü oluşturulur}
Durdurma kriteri sağlanıncaya kadar:
—S1–Sn sürülerinin her birinden en iyi parçacıkları seç(b1–bn)
—— For k:1-M, i:1:n
———- p=Si sürüsünün k.parçacığı
———- v =(b1;b2;:;p;:;bn) – Bir vektör oluşturulur
———- E(v)= error function at v
———- E(v)’yi kullanarak Si sürüsündeki k parçacığının fitnesini ayarla
———- b1–bn deki en iyi fitnessleri gerekliyse güncelle
—— S1–Sn sürülerinin normal PSO güncellemelerini yap
—Durdurma kriteri.
CPSO’da her bir jenerasyonda 4ns yani (2 pBest hesabı, 2 gBest hesabı)xBoyut SayısıXPopülasyon Sayısı kadar fonksiyon değerlemesi yapmaktadır. 1000 boyutlu 20 parçacıklı bir sistemde 80000 FEs yapılır. Çok fonksiyon değerlemesi yapıldığından paralel programlama çözümü uygun bir yaklaşımdır.
GPU destekli CPSO algoritmasının sözde kodu:
Paralel olarak fitness değerlemesi aşağıdaki şekilde yapılmaktadır:
Hesaplama işlemi atomic operations ile yapılmaktadır. Böylece aynı anda aynı bölgeye tek bir yazma işlemi gerçekleştirilmektedir. Sonuçlar shared memory’ye yazılmaktadır.
context vector oluşumu aşağıdaki şekilde yapılmaktadır:
Tüm adımlar aşağıdaki şekilde görselleştirilmiştir:
İşlemler GPU’da yapılırken organizasyon CPU tarafından yürütülmektedir.
Çalışmada ?1 = ?2 = 2.05 ve ? = 0.25 alınmıştır.
Çalışmanın yapıldığı makinanın özellikleri:
Test fonksiyonları:
CUDA’da thread/block sayısını belirlemek de önemli bir karardır. Sonuca etki etmektedir. Aşağıda farklı boyutlarda farklı thread/block sayısın etkisi görülmektedir.
100 jenerasyonda 500,1000,1500 boyutta farklı threads/block sayısına göre sonuçlar:
Her thread bir boyutta işlem yapmaktadır ve her blokta ⌈?/?⌉ Boyut/Block’taki Thread Sayısı kadar eleman işlenmektedir.
Farklı fonksiyonlarda farklı hızlanmaların elde edilmesinin nedeni fonksiyonun hesaplama karmaşıklığı ile alakalıdır.
1000 jenerasyonda ulaşılan sonuçlar:
Yakınsama analizi ve popülasyon çeşitliliğini izleme adına yapılan çalışmada:
Paralel versiyonun daha iyi yakınsadığı ve daha erken istenen sonuca ulaştığı görülmektedir. Bunun nedeni olarak CUDA’nın rastgele sayı üretme tekniğinin daha iyi olduğu sonucuna varılmıştır. Ayrıca CPU’da tek noktalı bir rastgele sayı üretme durumu var iken, burada her bir GPU çekirdeği için ayrı bir rastgele sayı üretme çekirdeği vardır.
Çalışmayı indirmek için:
gpu_based_parallel_cooperative_particle_swarm_optimization_using_c_cuda_a_case_study
4-6 MART 2021 ÇEVRİMİÇİ TÜBİTAK-2237-B PROJE EĞİTİMİ ETKİNLİĞİ KTÜ – TRABZON
Alanında dünyada öncü Prof. Dr. Yener EYÜBOĞLU, Prof. Dr. Asım KADIOĞLU, Prof. Dr. Nurettin YAYLI,>>>
Mar
ARDEB 1001 – 2020 Sonuçlarını Değerlendirme ve Yenilikler Toplantısı
>>>
Şub
2021 yılı içerisinde değerlendirilebilecek konferanslar
GLOBAL CONFERENCE on ENGINEERING RESEARCH online 2-5 June 2021 Abstract or Full Paper Submission: 2>>>
Şub
Sayfamda paylaştığım bütün Karikatürler silinmiştir
İsimsiz bir uyarı yorumuyla araştırdığım vakit gördüm ki bazı karikatüristler blog sayfalarında karikatür paylaşanlara dava>>>
Oca
MATLAB – Error: Functions cannot be indexed using {} or . indexing.
data = get(z9).OutputData{1}; satırında aşağıdaki şekilde hata vermekteydi. Error: Functions cannot be indexed using {}>>>
Oca
“ERASMUS+ Yüksek Öğretim” konulu seminer notları
“ERASMUS + Yüksek Öğretim” konulu seminer notları Dr. Öğretim Üyesi Kemal TÜTÜNCÜ hocam tarafından sunulan>>>
Oca
Akademik bir makalenin Giriş kısmı nasıl yazılmalıdır?
Sinem Toraman @Sinem_Trmn tarafından verilen “Akademik Yazımda Metodolojik Sorunlar ve Çözüm Önerileri” başlıklı eğitimde bir>>>
Ara
4. Uluslararası Mühendislik Teknolojileri Konferansı
4. Uluslararası Mühendislik Teknolojileri Konferansı: https://icente.selcuk.edu.tr/>>>
Eyl
Kaç kere yeniden doğar insan?
Kaç kere yeniden doğar insan? Kaç kere yeniden doğmalı? Peki her doğumda aynı anadan mı>>>
Tem
Optimizasyon problemlerindeki belirsizlikler
Normalde bir x değişkeni için f(x) fonksiyonunun her zaman aynı sonucu üretmesi beklenir. Fakat bazı>>>
Tem
Moodle – mysql_full_unicode_support
Bu uyarıya rağmen Moodle kurulumu yapıldığı zaman bazı karakterlerin ve emojilerin desteklenmeyeceği belirtilmektedir.>>>
May
Moodle SSL ayarı nasıl yapılır?
SSL kurulumunuzu bitirdikten sonra config.php dosyasındaki: $CFG->wwwroot = 'http://sorucevaptest.com/moodle'; kısmındaki adresi https şeklinde düzenleyiniz. $CFG->wwwroot>>>
May
Moodle – mysql_full_unicode_support#File_format
Çözüm: https://docs.moodle.org/38/en/MySQL_full_unicode_support phpmyadmin yetkisi olanlar için: SET GLOBAL innodb_file_format = barracuda SET GLOBAL innodb_file_per_table =>>>
May
Tanım Teorileri: Platon’un İnsanı ders notları…
Tanım Teorileri: Platon’un İnsanı ders notları… İnsanın Tanımına Dair ders notları… başlıklı yazı: https://www.ahmetcevahircinar.com.tr/2020/04/19/insanin-tanimina-dair-ders-notlari/ “Namazın>>>
2 Comments
Nis
İnsanın Tanımına Dair ders notları…
İnsanın Tanımına Dair ders notları… İnsanın Tanımına Dair başlıklı videoyu yayınlandıktan 2 hafta sonra izleyebildim>>>
1 Comment
Nis
Uzman Sistemler -Bir Yapay Zeka Uygulaması- Novruz Allahverdi
Uzman Sistemler -Bir Yapay Zeka Uygulaması- Novruz Allahverdi Uzman Sistemler hakkında yabancı literatürün oldukça zengin>>>
Nis
Ne yapmayı düşünüyorsun?
“Ne yapmayı düşünüyorsun? Bu soru karşısında Martin Heidegger biraz duraklar ve şöyle der: “Hem düşünmek>>>
Ara
Eğlenerek İngilizce öğrenmek için Duolingo
Duolingo 2011 yılında ortaya çıkmış, benim 2016 yılında üye olduğum fakat geçtiğimiz günlerde Twitter’da yeniden>>>
Ara
Online MS Paint – jspaint.app
Windows işletim sistemine sahip olmadığınız ortamlarda alışkın olduğunuz Paint programını online olarak kullanabilirsiniz. Online Paint>>>
Ara
VATAN HAİNİ – Nâzım Hikmet
“Nâzım Hikmet vatan hainliğine devam ediyor hâlâ. Amerikan emperyalizminin yarı sömürgesiyiz, dedi Hikmet. Nâzım Hikmet>>>
Kas