1

我在 Nvidia 的 Nsight 中有一个小项目,它为我创建了 makefile。我想使用一些 SSE 指令,并想用 gcc 而不是 nvcc 编译项目中的 cpp 文件。

有没有办法配置 Nsight 来做到这一点,还是我必须手动编写 Makefile?

编辑: .cu 文件当然应该用 nvcc 编译。

4

2 回答 2

1

要在 Nsight 中使用 gcc,您必须创建 makefile 项目并手动编写 makefile。

或者,你可以使用 nvcc 来编译你的 .cpp/.c 文件。要添加 nvcc 无法识别的额外编译器选项(仅由 gcc 识别),-Xcompiler应在 nvcc 选项前面加上前缀。

使用 nvcc 的副作用之一是您的 .cpp 程序将需要 libcudart.so 才能运行,即使它并不真正需要它。

于 2013-01-21T18:00:03.137 回答
1

您应该能够在 CU 文件中使用 GCC SSE 指令 - NVCC 使用您的平台编译器编译所有主机代码。

如果您仍想使用 GCC,您有两种选择:

  1. 创建两个项目 - 一个是使用 NVCC 编译的静态库项目,另一个是使用 GCC 编译的常规可执行项目。然后您可以设置 Nsight 以将可执行文件与您的库链接。(您也可以将 NVCC 用于可执行文件,将 GCC 用于库)
  2. 正如@Eric 提到的,您可以创建一个“Makefile 项目”并手动编写makefile。
于 2013-01-22T05:54:57.777 回答