GPU

A parallel Bees Algorithm implementation on GPU

“A parallel Bees Algorithm implementation on GPU” başlıklı makale Journal of Systems Architecture dergisinin 2014 yılında yayınlanan 60.sayısının 271-279.sayfalarında yayınlanmıştır. Makaleyi Guo-Heng Luo, Sheng-Kai Huang, Yue-Shan Chang ve Shyan-Ming Yuan yazmıştır. Makaleyi indirmek için: A-parallel-Bees-Algorithm-implementation-on-GPU Çalışmada Arı Algoritması için paralel…

MATLAB’da arrayfun nasıl kullanılır?

MATLAB’ın GPU hesaplamada önerdiği yöntemlerden birisi de arrayfun fonksiyonunun kullanılmasıdır. sonuc = arrayfun(@Fonksiyonum, giris1, giris2,…); şeklinde bir yapı ile kullanılmaktadır. Giriş parametreleri(giris1, giris2,…) gpuArray olarak tanımlanmak zorundadır. Fonksiyonumuz sayılarla ifade edilebilen ve eleman bazlı (scalar/elementwise) olmalıdır. Yani vektör ve matris…

GPU Hesaplamadaki Yetersiz Bellek Hatasının Nedeni ve Çözümü

GPU hesaplama işleminde özellikle büyük boyutlu verilerle çalışırken verinin doğruluğunu kontrol etmemiz gerekmektedir. CPU hesaplamada büyük boyutlu veriler işletim sistemi tarafından belirlenen mevcut bellek boyutuna geldiği zaman otomatik olarak harddisk’te bir takas hafızası(swapping memory) oluşturarak veri doğrulama işini yapmış olur,…

GPU hesaplama her zaman neden hızlı değildir?

GPU hesaplama her zaman neden hızlı değildir? A = 1:0.01:50000; Agpu = gpuArray(A); tic; B = fft(A); toc tic; Bgpu = fft(Agpu); toc B_from_gpu = gather(Bgpu); Yukarıdaki kodu incelediğimizde 1’en başlayaran 0.01’er artarak 50000’e kadar giden bir dizi oluşturulmaktadır. fft…

MATLAB ile GPU’yu resetleme

MATLAB ile GPU’yu resetlemek için aşağıdaki komutlar kullanılabilir. GPU belleğinde taşma olmaması için resetleme işlemi yapılması gerekmektedir. g = gpuDevice(1); reset(g);

MATLAB GPU CUDA Thread, Block, Grid boyutlarının ayarlanması

Kerneli aşağıdaki şekilde oluşturabiliriz: k = parallel.gpu.CUDAKernel(‘test.ptx’,’test.cu’); Peki bu kaç kere çalıştırılacak? Bunun ayarlanmasını ise GridSize ve ThreadBlockSize özellikleri ile yapmaktayız. Örneğin: k.ThreadBlockSize = [500,1,1]; kodu 500 kere ilgili kernelin çalıştırılacağını belirtir. GridSize: Blok sayısını belirleyen 3 boyutlu bir vektördür…

PTX dosyası nasıl oluşturulur?

MATLAB(Parallel Computing Toolbox) GPU Hesaplama yaparken çağıracağımız kernelleri daha önceden derleyip, onlara ait .cu (kaynak kod) ve .ptx (parallel thread execution) dosyalarını ilgili Matlab dosyamızın bulunduğu klasöre koyarak gerekli tanımlamaları yapmamız gerekmektedir. Kullanmış olduğum sistemde nvcc derleyicisinin ihtiyaç duyduğu cl.exe…