Matlab’ta veriler sütun bazlı şekilde sıralanmaktadır

Matlab’ta veriler sütun bazlı şekilde sıralanmaktadır. Bellekteki verilerin satır bazlı sıralandığına yeni yeni alışırken, Matlab’ta verilerin sütun bazlı şekilde sıralandığını öğrenmenin şokunu yaşamaktayım. Satır bazlıya göre verilerimizi ayarlayıp, ona uygun bir indeks yapısı kurmuştuk, şimdi de sütun bazlı sıralamaya göre…

Matlab’ta boyutu baştan belirleyerek hız kazanımı elde edilir

Matlab’ta boyutu baştan belirleyerek hız kazanımı elde edilir. Aşağıdaki kodlar incelendiğinde ilk kısımdaki kod 0.000032 saniyede çalışmış, ikinci kısımdaki kod ise 0.000014 saniyede çalışmıştır. Kullanacağımız dizilerin boyutlarını baştan belirlemek bize performans sağlayacaktır. tic x=8; x(2)=10; x(3)=11; x(4)=20; toc tic y=zeros(4,1);…

Matlab Kıyasla Değiştir İşlemi

Bir matristeki elemanları tarayıp, büyük veya küçük olduğu durumlarda değişim yapmak istersek; Örneğin: A = [1 7 3; 6 2 9] A = 1 7 3 6 2 9 B = 5; C = max(A,B) dediğimizde; A matrisindeki tüm elemanlar…

Matlab Eleman Eleman Operatör İşlemi Yaptırma

Matlab matris eksenli bir ortam olduğundan olduğundan *(çarpma) operatörü direk matris çarpma yapmaktadır. O yüzden vektörleri veya elemanları tek tek çarpmak için bu operatörlerin başına .(nokta) koyulmalıdır. Örneğin: x =[1 2 3]; v =[4 5 6]; k = x .*…

Matlab Vektörizasyon ile Hızlanma

Matlab Vektörizasyon uyumlu çalışma yapısı ile for döngülerinin gereksiz yere kullanımını önler. Aşağıdaki kodlar incelendiği zaman durum daha net anlaşılacaktır. clear all; tic A = 0:0.000001:10; B = 0:0.000001:10; Z = zeros(size(A)); y = 0; for i = 1:10000001 Z(i)…

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…

GPU hesaplamada veri transferinin etkisinin FFT hesaplama ile gösterimi

GPU hesaplamada veri transferinin etkisinin FFT hesaplama ile gösterimi… GPU hesaplamada kullanılacak verinin CPU’dan GPU’ya aktarılması ek bir zaman maliyeti getirmektedir. Bu da performansı etkilemektedir. Aşağıdaki örnekte bunun etki boyutları araştırılmıştır. Gerekli açıklamalar kodların yanında yorum olarak mevcuttur. A1 =…

class() Matlab Komutu

Kullanmakta olduğumuz değişkenin tipini veren faydalı bir komuttur. Özellikle CPU-GPU veri taşıma sırasında datanın ne durumda olduğu sorgulanabilir. A2 = gpuArray(A1); tic; B2 = fft(A2); time2 = toc; class(B2); % Burada gpuArray sonucu döner B2=gather(B2); class(B2); % Burada double sonucu…

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…