Angenommen, ich möchte CUDAs untergeordnete Treiber-API für einige Quellen verwenden, die ich geschrieben habe. Ich weiß über cuLaunchKernel
, aber ich kann nicht scheinen, in den Dokumenten die genaue Erklärung zu finden, wie Sie das cuFunction
erhalten, um es von Ihren __global__
Funktionen zu übertragen.Wie bekomme ich eine cuFunction von einer __global__ Funktion, die ich geschrieben habe?
Antwort
Sie verwenden cuModuleGetFunction. Der übergebene Funktionsname muss der fehlende C++ - Name sein, wenn Sie keine C-Verknüpfung verwenden. Sie können dies mithilfe von cuobjdump auf einer kompilierten Version Ihrer Gerätequelle abrufen.
Aber _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ – einpoklum
Sie laden entweder eine vorkompilierte Binärdatei aus einer kubischen oder fetten Binärdatei, die Sie a priori erstellen, oder PTX-Code, den Sie entweder geschrieben oder aus der Quelle kompiliert haben. Sie können auch eine Runtime Device Linker-Sitzung initiieren, wenn Sie über Gerätecodebibliotheken verfügen, mit denen eine Verknüpfung hergestellt werden kann. – talonmies
Ich bekomme es, aber kann ich meine ausführbare Datei nicht irgendwie meine fette binäre sein? Ich meine, das ist, was die Laufzeit-API im Wesentlichen tut, oder? – einpoklum
- 1. printf innen CUDA __global__ Funktion
- 2. Ich habe gerade eine schreckliche PHP-Funktion geschrieben, brauche ich etwas Hilfe (elseif chain - switch?)
- 3. Wie bekomme ich die volle URL von einer Html Helper-Klasse, die ich gemacht habe?
- 4. Wie bekomme ich eine Liste aller öffentlichen Variablen, die ich in einer Klasse habe? (C#)
- 5. Wie bekomme ich den func-Prototyp, nachdem ich die Funktion via omnicppcomplete ausgewählt habe?
- 6. Ich habe eine Abfrage in Oracle geschrieben, möchte in MySQL
- 7. Erstellen einer generischen Funktion für eine Funktion einer Animation, die ich habe
- 8. Wie bekomme ich Dateien, die ich lokal gelöscht habe, aber die Änderungen nicht übernommen habe?
- 9. Wie bekomme ich eine eindeutige Kennung einer Funktion
- 10. Wie bekomme ich die Dauer einer Videodatei?
- 11. Javascript - Probleme mit einer Funktion habe ich geschrieben, um Bilder in
- 12. Wie bekomme ich die Deklaration einer Funktion mit `retify`?
- 13. Wie bekomme ich die letzte Nummer von der range() Funktion?
- 14. Wie bekomme ich die Ableitung der Funktion?
- 15. Wie bekomme ich die Funktion zurück
- 16. SQL: Wie bekomme ich die ID von Werten, die ich gerade eingefügt habe?
- 17. Wie bekomme ich den Rückgabewert von einer Funktion in windbg?
- 18. Wie bekomme ich "printf" Nachrichten in NDK-Anwendung geschrieben?
- 19. Wie bekomme ich [[boundthis]] von der Funktion
- 20. Warum bekomme ich eine EOF-Ausnahme nur, wenn ich von einer Datei lese, die ich erstellt habe?
- 21. Warum kann der Browser die Funktion, die ich in Java geschrieben habe, nicht finden, wenn ich die JSP-Webseite leite?
- 22. Wie bekomme ich die tatsächlichen Daten von der Funktion hist
- 23. Unbekannter Publisher, wenn ich die Anwendung installiere, die ich geschrieben habe?
- 24. Ich habe eine Webseite erstellt, die eine Nummer faktorisiert. Ich habe diese Funktion erstellt. Jetzt muss ich eine Funktion erstellen, die meine Mathematik zeigt.
- 25. Wie treffe ich eine Auswahl, um zu einer anderen Funktion zu wechseln, wenn ich die aktuelle Funktion abgeschlossen habe?
- 26. Wie bekomme ich die Befehlszeile von einer ClickOnce-Anwendung?
- 27. Wie bekomme ich eine Unterliste von einer Liste in ocaml
- 28. Wie bekomme ich die Adresse von Result?
- 29. Wie bekomme ich eine SSL * von Boost.ASIO?
- 30. Wie bekomme ich die Eigenschaften einer Bitmap?
werfen Sie einen Blick auf die CUDA-Beispielcodes, die die Treiber-API verwenden, z. B. [vectorAddDrv] (http://docs.nvidia.com/cuda/cuda-samples/index.html#vector-addition-driver-api). Das Projekt ist so eingerichtet, dass es den Kernel ("__global__" -Funktion in vectorAddDrv_kernel.cu) nach ptx kompiliert und der Kernel in ptx-Form über eine API-Sequenz in der vectorAddDrv.cpp-Datei geladen wird. Der [Treiber-API-Abschnitt] (http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#driver-api) des Programmierleitfadens wird auch als Referenz nützlich sein. –