如何在 XCODE 5 中使用 CUDA 6.0

Posted

技术标签:

【中文标题】如何在 XCODE 5 中使用 CUDA 6.0【英文标题】:How to use CUDA 6.0 with XCODE 5 【发布时间】:2014-05-01 10:48:24 【问题描述】:

我的问题可能完全是菜鸟。抱歉,为此,我一直在尝试在 Xcode 中编译我的第一个 Cuda 代码,但我不知道在哪里以及如何设置 IDE 来调用 NVCC。 我安装了最新的 CUDA 工具包 CUDA 6.0,甚至使用 brew 安装了 GCC 4.8。我有 XCODE 5.5 当我从 XCODE 运行我的代码时,像 global 这样的所有指令都被标记为未识别。 我不知道在哪里更改设置以调用 NVCC。如果有人可以帮助我,我将非常感激。

此外,当我创建 XCODE 项目时,我将其创建为 C 项目。所以,我将 CUDA 代码放在了这个 C 文件中,这就是给我上面提到的错误的原因。我试图用 .cu 文件替换这个 .C 文件(只需更改扩展名),这也失败了 - XCODE 甚至不知道如何处理 .cu 文件

有人可以帮帮我吗?

提前致谢

【问题讨论】:

您是否按照mac getting started document中的指示进行操作? 是的,我做到了。事实上,我能够成功编译并运行文档中提到的程序。对于 Querydevice 和 bandwidthtest,我得到了 PASS 结果。但是我不知道如何使用Xcode编写和运行程序......! 你解决过这个问题吗?我现在也面临同样的问题 不...我相信 Xcode 与 NSIGHT 不兼容。 Apple 只是在推广 OpenCL 的使用。 【参考方案1】:

我已经尝试过了。虽然我还没有完全成功,但我想我会在这里发布我的进展,希望能帮助别人。我采取的步骤受到this page的启发。

    创建一个新的 Xcode 项目 在 Build Settings 下添加一个新的用户定义设置 CC,其值为 /usr/local/cuda/bin/nvcc。 在构建设置下将/usr/local/cuda/include 添加到Header Search Paths。 将Enable Modules (C and Objective-C) 设置为No。 在Build Phases下添加/usr/local/cuda/lib/libcuda.dylibLink Binary With Libraries

对于您创建的任何C 文件,在文件检查器中将其扩展名设置为.cu,完成后,您必须将该文件的类型设置为C source 以获取语法高亮,方法是转到编辑器->语法着色->C.

此设置的问题: - Xcode 不能运行可执行文件,至少 nog 如果它是为调试而编译的。但是,您可以让它将可执行文件复制到某个合理的位置并在终端中运行它。 - 每当您尝试“为运行而构建”时,有时 Xcode 会神奇地破坏整个项目。

【讨论】:

如何设置文件类型为C源? @JudeMichaelMurphy 我已经扩展了我的答案来回答你的问题。但是我很久以前写过这篇文章,从那以后就没有接触过 Xcode 和 Cuda 的组合。但我认为这就是我当时的意思。

以上是关于如何在 XCODE 5 中使用 CUDA 6.0的主要内容,如果未能解决你的问题,请参考以下文章

XCode 4.5 iOS 6.0 模拟器和旋转问题

如何在 Xcode 4.5 上安装 iOS 4.3 模拟器?

对 iOS 5.0 和 iOS 6.0 使用 XCode 4.5 的困惑

如何在 Xcode 6.0 Beta 中运行 iOS 7.1 模拟器?

使用 IB / Xcode 4.5.1 和 iOS Simulator 6.0 自定义 UIView 操作方法

IOS 6.0 xcode 4.5 编译错误#import 代码保存在类外的文件中