CUDA vs Direct X 10 pour les mathématiques parallèles. Avez-vous des idées à ce sujet?CUDA vs Direct X 10 pour les mathématiques parallèles. Avez-vous des idées à ce sujet?
Répondre
CUDA est probablement une meilleure option, si vous savez que votre architecture cible utilise des puces nVidia. Vous avez un contrôle total sur vos transferts de données, les chemins d'instructions et l'ordre des opérations. Vous pouvez aussi vous débrouiller avec beaucoup moins d'appels __syncthreads lorsque vous travaillez au niveau inférieur.
DirectX 10 sera plus facile à interfacer, je pense, mais si vous voulez vraiment pousser votre optimisation de vitesse, vous devez contourner la couche supplémentaire. DirectX 10 ne saura pas non plus utiliser la mémoire de texture par rapport à la mémoire constante par rapport à la mémoire partagée, et cela dépendra de votre algorithme particulier.
Si vous avez accès à une Tesla C1060 ou quelque chose comme ça, CUDA est de loin le meilleur choix. Vous pouvez vraiment accélérer les choses si vous connaissez les spécificités de votre GPGPU - j'ai vu des accélérations de 188x dans un algorithme particulier sur un Tesla par rapport à mon bureau.
Eh bien, CUDA est portable ... C'est une grande victoire si vous me demandez ...
CUDA est portable de Windows vers Linux - ou si je comprends bien - mais pas des GPU NVidia à ATI. –
je trouve CUDA maladroit. Ce n'est pas C, mais un sous-ensemble. Il ne prend pas en charge nativement le flottant en double précision et est émulé. Pour la précision simple, c'est correct. Cela dépend du type de tâche que vous lancez. Vous devez passer plus de temps à calculer en parallèle que de passer les données pour qu'elles soient utiles. Mais cette question n'est pas unique à CUDA.
J'attendais l'OpenCL d'Apple qui semble être le standard de l'industrie pour l'informatique parallèle.
Etes-vous sûr de la double précision? –
CUDA n'a rien à voir avec la prise en charge des opérations en virgule flottante en double précision. Cela dépend du matériel disponible. Les séries 9, 100, 200 et Tesla prennent en charge les opérations à virgule flottante double précision tesla.
Il devrait être facile de décider entre eux.
Si votre application peut tolérer qu'elle soit spécifique à Windows, vous pouvez toujours envisager DirectX Compute. Sinon, utilisez CUDA ou OpenCL.
Si votre application ne peut pas tolérer un verrou fournisseur sur NVIDIA, vous ne pouvez pas utiliser CUDA, vous devez utiliser OpenCL ou DirectX Compute. Si votre application exécute DirectX interop, sachez que CUDA/OpenCL entraînera des interruptions de changement de contexte pour l'interopérabilité de l'API graphique, ce qui n'est pas le cas de DirectX Compute.
À moins qu'un ou plusieurs de ces critères n'affectent votre application, utilisez l'arrière grand-père de chaînes d'outils massivement parallèles: CUDA.
- 1. Ajax (jquery) vs PHP rediriger des idées?
- 2. Aide pour les problèmes mathématiques
- 3. Est-ce que 30 GOTO 10 vont toujours à 10?
- 4. Comment générer des fichiers pdb pour des versions parallèles?
- 5. Évaluation des expressions mathématiques
- 6. X est CSS ce que GWT est à Javascript; qu'est-ce que X?
- 7. comment traiter des séquences "parallèles" dans Linq?
- 8. Comment activer JMX sur Weblogic 10.x
- 9. équations mathématiques pour les sites Web latex
- 10. accès direct à la base de données vs service web
- 11. Mathématiques symboliques pour .NET
- 12. Qu'est-ce que VHTML? Comment ça marche? Où puis-je trouver des informations à ce sujet?
- 13. J'ai besoin d'images/cliparts/icônes pour les symboles mathématiques
- 14. Qu'est-ce que DES-X?
- 15. Chargement de maillage à partir du fichier X avec Direct X 9 en C++
- 16. EBNF pour les équations mathématiques et les inégalités
- 17. Requêtes mysql parallèles en PHP?
- 18. Des idées pour construire un système de gestion de documents
- 19. Rotation mathématiques d'image (C#)
- 20. Maximiser les téléchargements parallèles pour le site Web
- 21. Comment publier des programmes d'installation parallèles à l'aide de ClickOnce?
- 22. Problème avec les mathématiques dans smarty!
- 23. Comment dédoubler des flux d'événements parallèles
- 24. Comment traduisez-vous cela pour la boucle en mathématiques
- 25. ATI Stream par rapport à NVidia/CUDA
- 26. SetThreadAffinityMask est ignoré .... des idées?
- 27. Conseils pour un débutant C, CUDA, & ANN?
- 28. Mathématiques à virgule flottante incorrecte?
- 29. mémoire CUDA trouble
- 30. Macro compilateur CUDA (nvcc)
Vous devriez également regarder dans OpenCL qui devrait être multiplate-forme (windows/linux/etc) et et vendeur croisé (nvidia/ati) – hannson