2016-11-10 100 views
0

我在我的咖啡程序中使用cudnn加速。 我在开始时使用cudnn 4,它工作正常,但是当我将cudnn更新到5.0版时,pow功能不起作用。 调用函数是在batch_norm层作为咖啡cudnn版本4&5

caffe_gpu_powx(variance_.count(), variance_.gpu_data(), Dtype(0.5), variance_.mutable_gpu_data()); 

并调用后的数据不会改变。 pow函数的定义如下,如相同的朱古力github上banch

template <typename Dtype> 
\__global__ void powx_kernel(const int n, const Dtype* a, 
    const Dtype alpha, Dtype* y) 
{ 
    CUDA_KERNEL_LOOP(index, n) 
    {   
     y[index] = pow(a[index], alpha); 
    } 
} 

template <> 
void caffe_gpu_powx<float>(const int N, const float* a, 
    const float alpha, float* y) { 
    // NOLINT_NEXT_LINE(whitespace/operators) 
    powx_kernel<float><<<CAFFE_GET_BLOCKS(N), CAFFE_CUDA_NUM_THREADS>>>(
     N, a, alpha, y); 
} 

回答

1

我做了我所设定的代码生成“compute_52,sm_52”在与TITAN X的开始一个错误,但现在应该将较低的GPU设置为“compute_20,sm_20”。现在工作正常。

+0

该设置没有意义。 CUDNN需要计算能力> = 3.0设备才能运行。你真的试图运行什么设备? – talonmies