Parallel processing 使用Visual Studio 2010在Nvidia GEFORCE上编写OpenCL代码

Parallel processing 使用Visual Studio 2010在Nvidia GEFORCE上编写OpenCL代码,parallel-processing,opencl,gpu,nvidia,Parallel Processing,Opencl,Gpu,Nvidia,我是OpenCL的新手,我一直在尝试在Nvidia上测试运行OpenCL代码。我已经安装了CUDA6.0工具包,并在VisualStudio2010中添加了.cu和.cl扩展。我已经在项目属性的链接器选项卡中包含了OpenCL.lib。我已经在VisualStudio2010中包含了所需的库。但是,当我编译代码时,我得到一个错误“nvcc:fatal error:不知道如何处理matvec.cl”。有人能解释一下这个问题吗。我已经做了两天了。之前有过与此相关的问题,但有一个问题没有回答,以下是链

我是OpenCL的新手,我一直在尝试在Nvidia上测试运行OpenCL代码。我已经安装了CUDA6.0工具包,并在VisualStudio2010中添加了.cu和.cl扩展。我已经在项目属性的链接器选项卡中包含了OpenCL.lib。我已经在VisualStudio2010中包含了所需的库。但是,当我编译代码时,我得到一个错误“nvcc:fatal error:不知道如何处理matvec.cl”。有人能解释一下这个问题吗。我已经做了两天了。之前有过与此相关的问题,但有一个问题没有回答,以下是链接: 另外,由于某种原因,回复中的链接不起作用,以下是链接:
如果有人也能为这个问题提供链接,我们将不胜感激。提前感谢。

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


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

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