2016-07-02 4 views
0

dieser Code nicht in CUDA Toolkit 7.5 auf einem gtx 980 mit Rechenkapazität auf 5,2 in Visual Studio 2013.cudaTextureObject_t texFetch1D nicht kompiliert

__global__ void a_kernel(cudaTextureObject_t texObj) 
{ 
    int thread_id = blockIdx.x * blockDim.x + threadIdx.x; 
    int something = tex1Dfetch(texObj, thread_id); 
} 

hier ist der Fehler eingestellt ist kompilieren.

error : more than one instance of overloaded function "tex1Dfetch" matches the argument list: 

Dieser Code wird auch nicht kompiliert.

__global__ void another_kernel(cudaTextureObject_t texObj) 
{ 
    int thread_id = blockIdx.x * blockDim.x + threadIdx.x; 
    float something = tex1Dfetch<float>(texObj, thread_id); 
} 

hier ist dieser Fehler.

error : type name is not allowed 

nach diesem Beispiel und die Kommentare, sollten alle oben arbeiten: https://devblogs.nvidia.com/parallelforall/cuda-pro-tip-kepler-texture-objects-improve-performance-and-flexibility/

lass es mich wissen, wenn Sie weitere Informationen benötigen, könnte ich denke nicht, was sonst noch zur Verfügung stellen zu.

+0

Sie müssen einen [MCVE] (http://stackoverflow.com/help/mcve) Code anzeigen, der Ihren Fehler reproduziert. Genau wie du verlinkst, mit dem Code, wie du den Kernel lanchst und wie du das Tex obj erstellst. – kangshiyin

Antwort

2

Ihr erster Kernel kompiliert wegen eines fehlenden Template-Arguments nicht. Dies kompiliert:

__global__ void a_kernel(cudaTextureObject_t texObj) 
{ 
    int thread_id = blockIdx.x * blockDim.x + threadIdx.x; 
    int something = tex1Dfetch<int>(texObj, thread_id); 
} 

Ihr zweiter Kernel korrekt ist, und es hat für mich kompilieren VS2012 mit dem CUDA 7.0-Toolkit für jede Rechenkapazität mit Ich habe versucht (sm_30 durch sm_52).

0

Ich habe das Cuda Toolkit neu installiert und jetzt das zweite Stück Code (another_kernel) kompiliert. Das erste Stück Code war in der ersten Stelle nach der ersten Antwort falsch. W.r.t. Neuinstallation des Cuda-Toolkits, es war, dass ich zuvor etwas in der SDK geklatscht habe, glaube ich, dass es textur_indirect_functions.h war.