Dynamische Zuordnung in CUDA - geringere Konkurrenz als handgeschriebene Lösung?
-
08-10-2019 - |
Frage
Jetzt CUDA ermöglicht die dynamische Zuordnung auf dem globalen Speicher. Aber ich konnte keinen Hinweis auf die Skalierbarkeit dieser malloc
Funktion finden: es ist besser, als zum Beispiel preallocate einen Teil des Speichers und weisen Sie dann einfach den nächsten Speicher Futter zu einem Faden durch atomar eine globale ganze Zahl erhöht wird? Diese letzte „home-made“ Lösung funktioniert, aber es ist ein offensichtliches Problem mit Skalierbarkeit, so dass ich, ob malloc
frage mich, dies irgendwie kümmert.
Lösung
Ich denke, während die „home-made“ Lösung, die derzeit nur so gut sein könnte, obwohl gleichzeitige Anrufe auf einen globalen integer es verlangsamen könnten, würde Malloc meine Wahl sein.
Das ist, weil es ermöglicht Nvidia mit den Kopfschmerzen Skalierbarkeit zu bewältigen und Verbesserungen zu machen, entweder in der Hardware oder Software-Implementierung, dass Sie die Vorteile des nur durch erneute Kompilierung Code zu einem späteren Zeitpunkt getroffen werden.