MATLAB

MATLAB

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 ve C/C++ kullanırken verilerin bellekte sıralanması

MATLAB ve C/C++ kullanırken verilerin bellekte sıralanması birbirinden farklı olarak gerçekleşmektedir. MATLAB’da sütun bazlı bir sıralama var iken, C/C++’da ise satır bazlı sıralama kullanılmaktadır. Aynı veriyi ikisinde de kullanacaksak verilerin indekslerini iyi tutmamız gerekmektedir. İkinci bir sıkıntı da C/C++’da indeksleme…

Matlab ile performans artırmak için bazı öneriler…

Paralel programlama ile hızlanmayı hedef alan çalışmalar yapan ve yapmaya devam edecek olan bir karakter olarak Matlab’da uygulanması gereken bazı önerilere yer vereceğim. 1-Döngü içerisinde dosyaya yazma ve dosyadan okuma komutları kullanılmamalıdır. Çünkü dosyaya yazma ve okuma sırasında çağrılan komutlar…

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 =…