使用C或C ++编译器时,如果我们通过-O3
开关,则执行速度会变快。在CUDA中,有没有相同的东西?
我正在使用命令nvcc filename.cu
编译我的代码。之后我执行./a.out
。
答案 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 ++编译器相同。