CUDA -Host -to -Geräte- (oder Gerät zu Host-) MEMCPY -Operationen mit Anwendungsrendern -Grafiken mithilfe von OpenGL auf derselben Grafikkarte

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

  •  18-09-2019
  •  | 
  •  

Frage

Ich habe mein Problem in den CUDA -Foren gepostet, aber nicht sicher, ob es angemessen ist, hier einen Link zu veröffentlichen, um mehr Ideen zu veröffentlichen, falls es eine erhebliche Anzahl verschiedener Zielgruppen zwischen den beiden Foren gibt. Der Link ist hier. Ich entschuldige mich für etwaige Unannehmlichkeiten und schätze irgendwelche Kommentare zu dieser Frage, da ich noch nicht zu einigen Einzelheiten eines bestimmten CUDA -Speicherzugriffs- und -managementproblems gehört habe. Danke im Voraus.

War es hilfreich?

Lösung

Ich bin mir nicht sicher, ob dies relevant ist, ohne mehr von Ihrem Code zu sehen, aber woher wird Cudaobjs Destruktor angerufen?

du sagtest:

Wenn ich es jedoch so mache, stieß ich auf Fehler, die die Anwendung in der Linie von Cudaobjs Destruktor, in der Cudafree () aufgerufen wird, verlassen. Dies führt dazu, dass der Speicherreinigungscode nach dem Aufräumcode von CUDA -Kontext aufgrund des Fehlers nicht ausgeführt wird, was ein Durcheinander von Speicherlecks hinterlässt.

Nach Ihrer Beschreibung, wie Sie das CUDA -Setup -Material zu Beginn der Hauptfunktion von Thread2 geändert haben. Wenn Sie den Destruktor auf Cudaobj aus einem anderen Thread anrufen, ist es fehlerhaft, die Cuda -Initialisierung in Thread 2 zu verschieben ist spezifisch für einen einzelnen Thread in Ihrem Prozess. Das Aufräumen in einem anderen Thread wird nicht gemäß der Dokumentation unterstützt, obwohl ich es selbst nie selbst ausprobiert habe. Hoffe das hilft

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