cudaGetDeviceCount返回0

时间:2013-07-17 00:50:18

标签: cuda ubuntu-12.04 nvidia

我正在运行以下代码。但是,我得到了输出 代码38出错 test = 0 deviceCount = 0 代码38出错 test2 = 0 我在Ubuntu上有一块NVIDIA GTX 690显卡。这是否意味着驱动程序未激活?

#include <iostream>

using namespace std;
__device__ __constant__ float* data;

template<class T> void allocOnly(T* deviceDest, size_t numElem)
{
    cudaError_t errCode = cudaMalloc((void**)&deviceDest, numElem*sizeof(T));
    if(errCode != cudaSuccess) 
        cout << "Got error with code " << errCode << endl;
}

int main()
{
    float* test(0);
    allocOnly<float>(test,10);
    cout << "test = " << test << endl;
    int deviceCount = 0;
    cudaGetDeviceCount(&deviceCount);
    cout << "deviceCount= " << deviceCount << endl;

    float* test2(0);    
    cudaError_t errCode = cudaMalloc((void**)&test2, 10*sizeof(float));
    if(errCode != cudaSuccess) 
        cout << "Got error with code " << errCode << endl;
    cout << "test2 = " << test2 << endl;

    return 0;
}

2 个答案:

答案 0 :(得分:1)

是的,您的系统设置存在问题。尝试从终端运行nvidia-smi -a并查看其报告内容。

您应该在调用cudaGetDeviceCount(以及所有cuda API调用和内核调用)时执行proper cuda error checkingerror returned from that API call也具有指导意义。

在任何其他cuda API调用(例如cudaGetDeviceCount中对cudaMalloc的调用之前,对allocOnly 进行调用也是有意义的。 )。

答案 1 :(得分:0)

执行以下命令..它应该解决问题..

sudo nvidia-xconfig --enable-all-gpus