【问题标题】:How can I compile with gcc when using Nsight Eclipse Edition?使用 Nsight Eclipse 版时如何使用 gcc 进行编译?
【发布时间】:2013-01-22 13:54:57
【问题描述】:

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

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

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

【问题讨论】:

    标签: eclipse cuda nsight


    【解决方案1】:

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

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

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

    【讨论】:

    • 我也刚刚注意到 nvcc 将 cpp 文件完全“转发”到 gcc。 (我注意到是因为错误消息的格式发生了变化)
    • @Eugene 但是,如何将我的“平台编译器”从 GCC 更改为 ICC(英特尔 C++)?你能帮我解决我的问题吗? stackoverflow.com/questions/23133335/…
    • @Alex 在 CUDA 项目属性中应该有一个“ccbin” NVCC 标志(我不记得属性树中的确切路径 - 类似于 Build->Settings)。只需将其指向您的 icc 编译器。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-11-26
      • 2016-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多