-3
常數如何包括插頭與CUDA常量文件中我有頭文件與此的任何文件
__constant__ er_t SERIES_PREC;
__constant__ er_t ONE;
__constant__ er_t HALF;
我不能包括任何這個頭文件* .CU文件 - 錯誤林肯。 如何在這種情況下使用常量內存?
常數如何包括插頭與CUDA常量文件中我有頭文件與此的任何文件
__constant__ er_t SERIES_PREC;
__constant__ er_t ONE;
__constant__ er_t HALF;
我不能包括任何這個頭文件* .CU文件 - 錯誤林肯。 如何在這種情況下使用常量內存?
試圖重現該問題,我沒有任何問題如下:
頭文件:
#pragma once
__constant__ int mystuff ;
__constant__ int othersuff ;
__global__ void f(int* val);
__global__ void g(int* val);
首先.CU文件:
#include "constants.cuh"
__global__ void f(int* val) { *val = mystuff ; }
二.CU文件:
#include "constants.cuh"
__global__ void g(int* val) { *val = mystuff ; }
主要.cu文件:
#include "constants.cuh"
int main()
{
int* g_out ;
cudaMalloc ((void**)&g_out, sizeof(int));
f<<<1,1>>>(g_out);
g<<<1,1>>>(g_out);
....
沒有問題(CUDA 7.5,Visual Studio 2012)。也許有一些er_t結構是編譯器不接受的。它是否有任何可能引發警告/錯誤消息的初始化程序或字段?
Thx爲您的想法!看起來非常有趣! –
它回答你的問題嗎? –
nope,但它給了我很棒的想法,現在我可以在所需的地方使用常量內存 –