Bettet 'code = sm_X' nur Binärcode (Cubin-Code) oder auch PTX-Code oder beides ein?

Ich bin ein bisschen verwirrt über die Option 'code = sm_X' in der Anweisung '-gencode'.

Ein Beispiel: Was bedeutet die NVCC-Compileroption

-gencode arch=compute_13,code=sm_13

in der Bibliothek eingebettet?

Nur der Maschinencode (Cubin-Code) für GPUs mit CC 1.3 oderebenfall der PTX-Code für GPUs mit CC 1.3?

In der 'Maxwell-Kompatibilitätsanleitung' heißt es: "Nur die durch die 'code =' - Klausel angegebenen Back-End-Zielversionen werden in der resultierenden Binärdatei beibehalten."

araus würde ich schließen, dass die angegebene Compiler-Option nur Maschinencode für GPUs mit CC 1.3 und @ einbetteNei PTX-Code. Dies würde bedeuten, dass esnich es ist möglich, diese Bibliothek auszuführen, z. auf einer Maxwell-Generationskarte, da in der Bibliothek kein PTX-Code eingebettet ist, aus dem der Maschinencode "just-in-time" (JIT) kompiliert werden könnte.

uf der anderen Seite wird in der GTC 2013-Präsentation 'Einführung in das CUDA-Toolkit als Application Build Tool' von NVIDIA angegeben, dass der '-gencode arch = compute_13, code = sm_13' für alle GPUs mit CC> = ausreicht 1.3, und dass mit dieser Compiler-Option für GPUs mit CC> 1.3 der Maschinencode vom PTX-Code abgeglichen wird. Die Informationen im Maxwell-Kompatibilitätshandbuch und in dieser GTC-Präsentation widersprechen sich meiner Meinung nach.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage