Simple CUBLAS Exemple de Multiplication de Matrice?
Je suis à la recherche d'un très bare bones exemple de multiplication de matrice pour CUBLAS qui peuvent se multiplier M fois N et à placer les résultats dans P pour le code suivant, en utilisant la haute performance des opérations du processeur graphique:
float M[500][500], N[500][500], P[500][500];
for(int i = 0; i < Width; i++){
for(int j = 0; j < Width; j++)
{
M[i][j] = 500;
N[i][j] = 500;
P[i][j] = 0;
}
}
Jusqu'à présent, la plupart de code, je suis la recherche pour n'importe quel type de multiplication de matrice à l'aide de CUBLAS (apparemment?) trop compliqué.
Je tente de conception de base de laboratoire où les élèves peuvent comparer les performances de multiplication de matrice sur le GPU vs multiplication de matrice sur le CPU, sans doute avec l'augmentation de la performance sur le GPU.
Considérez-vous le simpleCublas exemple dans le CUDA SDK pour être "trop compliqué"?
Oui. Je veux dire, si c'est aussi simple que cela, je suppose que nous venons de faire face avec elle. J'espérais juste, il y aurait une sorte de code avec une évidente CPU équivalent tel que nous pourrions le temps et de comparer les résultats.
Je suis la grande région de toronto pour 500 de Données au niveau des Structures de classe. Nous sommes donc déjà le pompage si plein de détails pour la programmation des différentes essences d'arbres, des tas, et d'autres structures de données ainsi que C++ et de l'expérimentation des conventions qui leur permettre d'apprendre que de nombreux détails syntaxiques pour CUBLAS serait vraiment hors de la portée des informations pertinentes pour la classe.
CUBLAS algèbre linéaire les appels eux-mêmes de suivre la même syntaxe/API comme le standard BLAS, ce qui est absolument le defacto algèbre linéaire de l'API et de la bibliothèque et a été depuis les années 1980 quand il a été écrit. L'utilisation du GPU implique l'utilisation d'un système avec une mémoire non uniforme de l'espace, et donc qu'il encourt en certains autres API généraux. Donc, si vous considérez être au-delà de la limite supérieure de ce que vous essayez d'enseigner, alors je pense que vous êtes hors de la chance.
Ok. Merci pour l'info de base. Je vais continuer à regarder autour. J'ai peut-être besoin de poser une question plus générale sur. Tout ce que je besoin est juste un exemple, simple possible, ce que je peux montrer le GPU supérieure de la CPU sur tout type de algorithmiques de la tâche, à l'aide de CUDA.
Oui. Je veux dire, si c'est aussi simple que cela, je suppose que nous venons de faire face avec elle. J'espérais juste, il y aurait une sorte de code avec une évidente CPU équivalent tel que nous pourrions le temps et de comparer les résultats.
Je suis la grande région de toronto pour 500 de Données au niveau des Structures de classe. Nous sommes donc déjà le pompage si plein de détails pour la programmation des différentes essences d'arbres, des tas, et d'autres structures de données ainsi que C++ et de l'expérimentation des conventions qui leur permettre d'apprendre que de nombreux détails syntaxiques pour CUBLAS serait vraiment hors de la portée des informations pertinentes pour la classe.
CUBLAS algèbre linéaire les appels eux-mêmes de suivre la même syntaxe/API comme le standard BLAS, ce qui est absolument le defacto algèbre linéaire de l'API et de la bibliothèque et a été depuis les années 1980 quand il a été écrit. L'utilisation du GPU implique l'utilisation d'un système avec une mémoire non uniforme de l'espace, et donc qu'il encourt en certains autres API généraux. Donc, si vous considérez être au-delà de la limite supérieure de ce que vous essayez d'enseigner, alors je pense que vous êtes hors de la chance.
Ok. Merci pour l'info de base. Je vais continuer à regarder autour. J'ai peut-être besoin de poser une question plus générale sur. Tout ce que je besoin est juste un exemple, simple possible, ce que je peux montrer le GPU supérieure de la CPU sur tout type de algorithmiques de la tâche, à l'aide de CUDA.
OriginalL'auteur Chris Redford | 2011-10-03
Vous devez vous connecter pour publier un commentaire.
Le SDK contient matrixMul qui illustre l'utilisation de CUBLAS. Pour un exemple plus simple de voir les CUBLAS manuel la section 1.3.
La matrixMul montre également un noyau personnalisé, ce ne sera pas effectuer aussi bien que CUBLAS de cours.
OriginalL'auteur Tom
CUBLAS n'est pas nécessaire de montrer le GPU surperformer le CPU, si CUBLAS serait probablement surpasser plus. Il semble que beaucoup de simples CUDA implémentations (y compris la matrice de multiplication) peut surpasser la CPU, si, étant donné un assez grand ensemble de données, comme l'a expliqué et démontré ici:
La plus simple Possible Exemple pour Montrer GPU Surpasser CPU à l'Aide de CUDA
OriginalL'auteur Chris Redford