CUDA vs Directx 10 für die parallele Mathematik. irgendwelche Gedanken haben Sie darüber?

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

  •  05-07-2019
  •  | 
  •  

Frage

CUDA vs Direct X 10 für parallele Mathematik. alle thoughs haben Sie davon?

War es hilfreich?

Lösung

CUDA ist wahrscheinlich eine bessere Option, wenn Sie Ihre Zielarchitektur kennen nVidia-Chips verwendet. Sie haben die vollständige Kontrolle über Ihre Datenübertragungen, Hinweispfade und Reihenfolge der Operationen. Sie können auch mit viel weniger __syncthreads Anrufe erhalten, indem, wenn Sie auf der unteren Ebene arbeiten.

DirectX 10 wird einfacher Schnittstelle an, denke ich sollte, aber wenn Sie wirklich Ihre Geschwindigkeitsoptimierung drücken wollen, müssen Sie die zusätzliche Schicht umgehen. DirectX 10 wird auch nicht wissen, wann Texturspeicher im Vergleich zu konstanten Speichern im Vergleich zu Shared Memory als auch verwenden, wie Sie auf Ihrem bestimmten Algorithmus abhängig werden.

Wenn Sie Zugang zu einem Tesla C1060 oder so ähnlich haben, ist CUDA bei weitem die bessere Wahl Hände. Sie können wirklich die Dinge beschleunigen, wenn Sie die Besonderheiten Ihres GPGPU kennen. - Ich 188x speedups in einem bestimmten Algorithmus auf einem Tesla im Vergleich zu meinem Desktop gesehen habe

Andere Tipps

Ich finde CUDA umständlich. Es ist nicht C, sondern eine Teilmenge davon. Es bietet keine Unterstützung für double precision floating point nativ und emuliert wird. obwohl für einfache Genauigkeit ist es in Ordnung. Es hängt von der Art der Aufgabe, die Sie an ihn werfen. Sie müssen mehr Zeit Computing parallel ausgeben, als Sie die Daten ausgeben, das um es mit wert zu sein. Aber das Problem ist nicht eindeutig zu CUDA.

ich für Apples OpenCL warten würde, die wie es scheint, wird der Industriestandard für die Parallel-Computing sein.

Nun, CUDA ist tragbar ... Das ist ein großer Gewinn, wenn Sie mich fragen ...

CUDA hat nichts über die Unterstützung doppelte Genauigkeit Gleitkomma-Operationen zu tun. Dies ist abhängig von der Hardware zur Verfügung. Die 9, 100, 200 und Tesla Serie Unterstützung doppelter Genauigkeit Gleitkommaoperationen tesla .

Es sollte einfach sein, zwischen ihnen zu entscheiden.

Wenn Ihre App kann sein Windows-spezifische tolerieren, können Sie immer noch DirectX Compute betrachten. Andernfalls verwenden CUDA oder OpenCL.

Wenn Ihre App keinen bestimmten Anbieter auf NVIDIA tolerieren kann, kann man nicht CUDA verwenden können, müssen Sie OpenCL oder DirectX Compute verwenden.

Wenn Ihre App DirectX Interop tun, beachten Sie, dass CUDA / OpenCL erleidet Kontext Kopfschalter Grafik-API-Interop tun, und DirectX Compute nicht.

Es sei denn, eine oder mehrere dieser Kriterien Ihre Anwendung betreffen, verwenden Sie die große Urvater massiv parallelen Werkzeugketten. CUDA

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top