image thumbnail
from Speed using nvidia graphics card and accelerEyes jacket by Ambarish Jash
The code tests the increase in speed up of matrix multiplication.

speed_fact_x.m
%This code will be used to obtain the speed up of matrix multiplication
%using the NVIDIA GeForce 8800 GT 

num_size_gpu = (2:5000);
num_size_cpu = (2:5000);
timer_gpu = zeros(1,size(num_size_gpu,2));
timer_cpu = zeros(1,size(num_size_gpu,2));
%Starting GPU paralell loop
for ii = 1:size(num_size_gpu,2)
    
    a = gsingle(randn(num_size_gpu(ii),num_size_gpu(ii)));
    b = gsingle(randn(num_size_gpu(ii),num_size_gpu(ii)));
    tic
    c = a*b;
    gforce(c);
    temp1 = (toc);
    timer_gpu(ii) = single(temp1); 
    clear a b c
    
end

%Starting CPU loop for paralell computation

clear a b c

for ii = 1:size(num_size_cpu,2)
    
    a = randn(num_size_cpu(ii),num_size_cpu(ii));
    b = randn(num_size_cpu(ii),num_size_cpu(ii));
    tic
    c = a*b;
    timer_cpu(ii) = toc;
    
end

speed_x = double(timer_cpu./timer_gpu);
subplot(3,1,1)
plot(num_size_cpu,speed_x,'blue')
grid on
xlabel('Dimensions of square matrix');
ylabel('Speed up by');
title({'NVIDIA GeForece 8800 GT with 112 processors @ 1.476 GHz';'Intel(R) CORE(TM)2 QUAD CPU @ 2.66 GHz';'A comparitive study of matrix multiplication speed'})
subplot(3,1,2)
plot(num_size_cpu,double(timer_gpu),'blue');
grid on
xlabel('Dimensions of square matrix');
ylabel('Time taken GPU')
subplot(3,1,3)
plot(num_size_cpu,timer_cpu,'blue');
grid on
xlabel('Dimensions of square matrix');
ylabel('Time taken CPU')
print -djpeg mat_mult_5000

Contact us