Différences entre les versions de « Jacket »
Ligne 33 : | Ligne 33 : | ||
for p = 1:50 | for p = 1:50 | ||
− | + | x = linsolve(A,p*b); | |
end | end | ||
Ligne 51 : | Ligne 51 : | ||
for p = 1:50 | for p = 1:50 | ||
− | + | x = linsolve(A,p*b); | |
end | end | ||
Ligne 64 : | Ligne 64 : | ||
gfor p = 1:50 | gfor p = 1:50 | ||
− | + | x = linsolve(A,p*b); | |
gend | gend |
Version du 27 février 2013 à 14:16
Jacket est un toolbox propriétaire pour MATLAB qui permet l'exécution de code sur GPUs. Similaire à GPUmat, son cousin gratuit, pour sa syntaxe, Jacket comprend cependant davantage de fonctions implémentées et accélère également l'affichage des graphismes 2d ou 3d, en faisant usage du GPU.
Guide
Présentation donnée par Alexandre Desfosses Foucault: http://dms.umontreal.ca/wiki/images/9/9a/PresentationJacket.pdf
Exemples
Exemple 1
clear
addpath(genpath('/local/jacket-2.0/engine/'))
%% Exécution de plusieurs opérations indépendantes sur le CPU
%Création des matrices sur le CPU
matrixSize = 2000; A = rand(matrixSize); b = ones(matrixSize,1);
tic
%pour plusieurs valeurs de p différentes, on résoud le système linéaire
for p = 1:50
x = linsolve(A,p*b);
end
allCpuTime = toc
%% On refait la même chose, en mettant les variables sur le gpu
A = gdouble(A); b = gdouble(b);
tic
%pour plusieurs valeurs de p différentes, on résoud le système linéaire
for p = 1:50
x = linsolve(A,p*b);
end
gpuVariablesForLoopTime = toc
%% On utilise GFOR pour faire tourner toutes résolutions linéaires en même temps
tic
gfor p = 1:50
x = linsolve(A,p*b);
gend
GFORTime = toc
%% Résultats %Variables sur cpu : 1.4222e+01 % Variables sur GPU et boucle for : 4.4444e+00 % Variables sur GPU et boucle GFOR : 2.5247e+00
%Attention, chiffres valides pour une matrice 2000x2000