如何让nvcc CUDA编译器进行更多优化?

时间:2017-04-30 13:10:10

标签: cuda nvcc compiler-options

使用C或C ++编译器时,如果我们通过-O3开关,则执行速度会变快。在CUDA中,有没有相同的东西?

我正在使用命令nvcc filename.cu编译我的代码。之后我执行./a.out

1 个答案:

答案 0 :(得分:8)

nvcc支持许多与CPU目标C / C ++编译器类似的选项。这在the nvcc documentation中记录;您还可以运行nvcc --help来获取这些选项的详细说明(也许nvcc --help | less可以更轻松地滚动它们)。

默认优化级别实际上是-O3(除非您指定-G,用于调试,这会禁用大多数优化)。您可以改为指定-O0-O1等,但这只会禁用优化。

如果您只想优化将在GPU上运行的代码,而不是在CPU上运行的代码,则可以传递不同的优化开关directly to the ptxas device code compiler

此外,如果您编写nvcc -o foo filename.cu,生成的可执行文件将被命名为foo而不是a.out,以防您需要可执行文件的有意义名称。这也与C / C ++编译器相同。