Ich möchte Assembler-Code in CUDA C-Code verwenden um teure Ausführungen zu reduzieren wie wir es mit asm in der c-Programmierung machen.
Ist es möglich?
Nein, das geht nicht, es gibt nichts wie die asm-Konstrukte aus C / C ++. Was Sie tun können, ist die generierte PTX-Baugruppe zu optimieren und dann mit CUDA zu verwenden.
Siehe dies für ein Beispiel.
Aber für GPUs sind Assembly-Optimierungen NICHT notwendig. Sie sollten zuerst andere Optimierungen durchführen, wie Speicherkoaleszenz und Belegung. Weitere Informationen finden Sie im CUDA Best Practices-Handbuch . p>
Seit CUDA 4.0 wird Inline-PTX von der CUDA-Toolchain unterstützt. Es gibt ein Dokument im Toolkit, das es beschreibt: Using_Inline_PTX_Assembly_In_CUDA.pdf
Im Folgenden finden Sie einen Code, der die Verwendung von Inline-PTX in CUDA 4.0 demonstriert. Beachten Sie, dass dieser Code nicht als Ersatz für die integrierte __clz () - Funktion von CUDA verwendet werden sollte. Ich habe ihn lediglich geschrieben, um Aspekte der neuen Inline-PTX-Funktion zu untersuchen.
%Vor%Tags und Links c assembly inline-assembly cuda ptx