从构造函数调用时,CudaMemcpyToSymbol失败

时间:2015-08-03 19:09:13

标签: cuda

我在CUDA文档中找不到任何解释为什么cudaMemcpyToSymbol在以下内容中失败(使用cudaErrorInvalidSymbol)

__constant__ float dev[2];

struct Struct
{
    void construct()
    {
        float host[2] = {1, 2};
        cudaError_t error = cudaMemcpyToSymbol(dev, host, sizeof(host));
        printf(cudaGetErrorString(error));
    }
};

class Class
{
public:
    Class()
    {
        s.construct();
    }

private:
    Struct s;
};

static Class instance;

int main()
{
}

当从方法调用construct()时它起作用:

class Class
{
public:
    void foo()
    {
        s.construct();
    }

private:
    Struct s;
};

static Class instance;

int main()
{
    instance.foo();
}

0 个答案:

没有答案