cuda中应用模板函数

// 定义
template < class  TData >  
__global__ 
void  testKernel(TData  * d_odata,TData  * d_idata, int  numElements)
{
    
const int        tid = blockDim.x * blockIdx.x + threadIdx.x;
    
const int numThreads = blockDim.x * gridDim.x;
    
for(int pos = tid; pos < numElements; pos += numThreads)
        d_odata[pos] 
= d_idata[pos];
}


template
< class  TData >  
void  runTest()
{
          ....
     testKernel
<<<64256>>>(
            (TData 
*)d_odata,
            (TData 
*)d_idata,
            numElements
        );
      CUT_CHECK_ERROR(
"testKernel() execution failed ");
}

// 调用
runTest < uint8 > ();
 

你可能感兴趣的:(CUDA,Class)