CUBLAS ou bibliothèques prises en charge, et l'accent pour la lecture pour un débutant

StackOverflow https://stackoverflow.com/questions/1549920

  •  20-09-2019
  •  | 
  •  

Question

Je suis en train d'exploiter la puissance du GPU (nVidia Quadro NVS140M) pour accélérer certains calculs de la matrice dans mon projet. Je lis à travers une documentation (guide de programmation, guide des meilleures pratiques, et manuel de référence), mais pas sûr section (s) je concentrer. Ce serait génial si je peux recevoir des conseils à ce sujet.

En outre, je me demande s'il y a un tiers maintenu SDKs, comme CuBLAS.net, qui peut simplifier le processus de développement de cublas avant coller avec les caractéristiques de cublas offris qui me aiderait à atteindre mes objectifs avec mon projet . Encore une fois, merci à l'avance pour les commentaires.

Était-ce utile?

La solution

La plupart des documents qui vient avec la boîte à outils CUDA téléchargements et SDK sont sur CUDA en général, pas spécifiquement CuBLAS. Commencez avec le fichier CUBLAS_Library_2.3.pdf si vous allez juste utiliser CuBLAS - vous pas besoin d'écrire vos propres noyaux CUDA. Si vous utilisez déjà un CPU BLAS, CuBLAS ne devrait pas être difficile à ramasser. (Et si vous n'êtes pas, envisager d'essayer un d'une CPU optimisée avant CuBLAS, car il sera plus facile à programmer).

Si vous codez sur .NET, alors la meilleure façon d'utiliser CuBLAS est probablement via la plate-forme d'appels en appeler cublas.dll. Assurez-vous de garder droite qui les tableaux sont en mémoire hôte (CPU), et qui sont dans le dispositif (GPU) mémoire.

Gardez à l'esprit que CUDA et CuBLAS ne sont pas des balles magiques. La performance dépend beaucoup de facteurs (en particulier les transferts à travers le bus PCIe), et appelle CUBLAS simplement la permutation pour les appels CPU-BLAS ne peut pas vous donner speedups. Vous devrez peut-être apporter des modifications plus substantielles à votre propre code pour obtenir des améliorations de performance. Les autres guides que vous mentionnez sont très utiles pour la compréhension de l'architecture CUDA et ses goulots d'étranglement.

EDIT: Je n'étais pas clair sur la frontière entre le code utilisateur et le code du noyau. CUBLAS est une bibliothèque de noyaux optimisés CUDA prédéfinis. Si vous avez seulement besoin des fonctionnalités BLAS, vous n'avez pas besoin d'écrire vos propres noyaux. Au lieu de cela, il suffit d'appeler des fonctions CUBLAS. Lorsque le réglage des performances, vous ne devriez pas besoin de modifier les noyaux CUBLAS, mais vous devrez peut-être changer quand et comment vous les appelez, et comment vous utilisez la mémoire, de manière à minimiser le nombre de transferts à travers le bus PCI Express.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top