使用 Visual Studio 2010 在 Nvidia GEFORCE 上的 OpenCL 代码

Posted

技术标签:

【中文标题】使用 Visual Studio 2010 在 Nvidia GEFORCE 上的 OpenCL 代码【英文标题】:OpenCL code on Nvidia GEFORCE using Visual Studio 2010 【发布时间】:2014-07-25 01:55:53 【问题描述】:

我是 OpenCL 新手,我一直在尝试在 Nvidia 上测试运行 OpenCL 代码。我已经安装了 CUDA 6.0 工具包,并在 Visual Studio 2010 中添加了 .cu 和 .cl 扩展名。我在项目属性的 Linker 选项卡中包含了 OpenCL.lib。我已经在 Visual Studio 2010 中包含了所需的库。但是,当我编译我的代码时,我收到一个错误“nvcc:致命错误:不知道如何处理 matvec.cl”。有人可以对这个问题有所了解。在过去的两天里,我一直在做这件事。之前有相关的问题,但是没有一个问题的回复,这里是链接: Cannot run OpenCL on an NVIDIA Card ( 'CL/cl_platform.h': No such file or directory) 另一个回复中的链接由于某种原因不起作用,这是链接: How to configure OpenCL in visual studio2010 for nvidia's gpu on windows? 如果有人也可以提供此问题的链接,将不胜感激。提前谢谢。

【问题讨论】:

【参考方案1】:

您似乎已将 Visual Studio 配置为使用 nvcc 编译 .cl 文件。这是您应该对 CUDA 文件 (.cu) 执行的操作,但 OpenCL 内核源代码是在运行时编译的,不应在应用程序构建时由任何东西编译。只需删除此配置选项,您就可以开始使用了。

可能想要对.cl 文件做的一件事是将它们自动复制到应用程序二进制目录中,以便应用程序在需要加载它们时可以轻松找到它们。这只是一个偏好问题。

【讨论】:

感谢您的回复。阅读您的答案后,我为我的 matvec.cl 文件选择了属性选项,并为 itemtype 选择了“不参与构建”选项,这是否正确。很抱歉,您能否详细说明如何为我的“matvec.cl”文件删除此配置选项。 @Steve 是的,这个选项听起来是正确的——只要 Visual Studio 不尝试编译文件,你应该没问题。 感谢您的及时答复。还有一个问题,我正在尝试编译一个矩阵向量乘法程序。如果我运行程序,它会显示“矩阵向量乘法不成功”。您能否提及需要包含在 Visual Studio 中以处理 OpenCL 代码的确切库。 @Steve 如果程序完全运行,那么您拥有正确的库配置。该错误消息过于模糊,无法诊断问题 - 任何给定的 OpenCL 失败都有大量潜在原因。您需要尝试找出该错误的来源(例如,哪个 OpenCL 函数调用失败)。如果您发布一些代码或指向您正在尝试的示例的链接(可能是在一个新问题中?),我们也许可以提供帮助。 谢谢。我会再试一次,看看问题是否可以解决,否则我将发布一个带有代码的新问题以及问题。再次感谢您的帮助,Jprice。

以上是关于使用 Visual Studio 2010 在 Nvidia GEFORCE 上的 OpenCL 代码的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Visual Studio 2010 Express 连接到 SqlExpress for Entity Framework?

如何在 Visual Studio 2010 中使用 Visual Studio 2008 创建的 DLL?

如何为 Visual Studio 2010 安装 NLog?

visual studio 2010怎么查看函数

visual studio 2010 序列号在哪输入

如何在 Visual Studio 2008 或 Visual Studio 2010 中设置 JavaScript 断点