Opencl clGetPlatformIDs返回-1001便士

Opencl clGetPlatformIDs返回-1001便士,opencl,Opencl,我知道这已经被贴了很多次了,但我还是在重复同样的问题,因为互联网上的建议都不适合我。为了让一个简单的OpenCL程序运行,我已经被困在这里好几个星期了 以下是我所做的: 我用CUDA买了一张新的视频卡,并安装了Ubuntu 14.04的新版本: # lspci | grep VGA 02:00.0 VGA compatible controller: NVIDIA Corporation GF119 [GeForce GT 610] (rev a1) 然后在其中安装CUDA: sudo a

我知道这已经被贴了很多次了,但我还是在重复同样的问题,因为互联网上的建议都不适合我。为了让一个简单的OpenCL程序运行,我已经被困在这里好几个星期了

以下是我所做的:

我用CUDA买了一张新的视频卡,并安装了Ubuntu 14.04的新版本:

 # lspci | grep VGA
 02:00.0 VGA compatible controller: NVIDIA Corporation GF119 [GeForce GT 610] (rev a1)
然后在其中安装CUDA:

sudo apt-get install nvidia-cuda-toolkit
据我所知,它安装了OpenCL编译所需的所有文件。我的计算机中现在有以下文件:

/usr/lib/x86_64-linux-gnu/libOpenCL.so
/etc/OpenCL/vendors/nvidia.icd
然后我尝试了以下程序:

#include <stdio.h>
#include <CL/cl.h>

int main(void)
{
    cl_int err;
    cl_uint numPlatforms = 0;
    err = clGetPlatformIDs(0, NULL, &numPlatforms);
    if (CL_SUCCESS == err)
        printf("\nDetected OpenCL platforms: %d", numPlatforms);
    else
        printf("\nError calling clGetPlatformIDs. Error code: %d", err);
    getchar();
    return 0;
}
当我运行它时,我得到以下消息:

 Error calling clGetPlatformIDs. Error code: -1001

我曾在互联网上尝试过一些令人毛骨悚然的建议,想让它发挥作用,但没有效果。如果您能提供任何帮助,我将不胜感激

你能列出这些你尝试过的令人不快的建议吗?你有没有尝试过几周前发布的第一个建议?用64位而不是32位编译应用程序,或者用32位而不是64位编译应用程序。英伟达ICD只安装了一种类型的,而不是两种,所以其中一个将无法加载。至少相关的,不太可能是复制的:(尽管答案“不只是模糊的,肯定地……”我同意@ MaCO13,它很可能是一个中断的ICD。从技术上讲,当找不到平台时,clGetPlatformIDs返回1001(CL_PLATFORM_NOT_FOUND_KHR),但它也可能表示ICD问题(例如ICD和驱动程序之间的版本不匹配)。
 Error calling clGetPlatformIDs. Error code: -1001