Etiket Arşivleri: MATLAB

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 = [a b c] = Varsayılan değeri = [1 1 1]’dir. ThreadBlockSize: Bloklardaki thread sayısını>>>

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 döner

İki sayının ve iki vektörün toplanması – MATLAB(Parallel Computing Toolbox) GPU Hesaplama

MATLAB(Parallel Computing Toolbox) GPU Hesaplama ile örnek olarak iki sayının ve iki vektörün toplanması işlemi nasıl gerçekleştirilir? 1.adımda toplama işlemlerini yapacak olan kernel kodunun .cu dosyası içerisine doğru bir şekilde yazılması ve derlenerek .ptx dosyasının oluşturulması gerekmektedir. test.cu dosyamız: __global__ void add1( double * pi, double c ) { *pi += c; } __global__ void>>>

MATLAB(Parallel Computing Toolbox) GPU Hesaplama Örneği – Monte Carlo Simülasyonu

MATLAB(Parallel Computing Toolbox) GPU Hesaplama Örneği – Monte Carlo Simülasyonu close all; clear all N = 1e8; gpu = gpuDevice for pass = 1:2 disp(‘ ‘) if (pass==1) disp(‘Single precision:’) prec = ‘single’; else disp(‘Double precision:’) prec = ‘double’; end disp(‘ ‘) disp(‘GPU’) for M = [1e5 1e6 1e7] parallel.gpu.rng(‘default’); tic e4 = 0; for>>>