caffe cudnn版本4&五

时间:2016-11-10 06:35:01

标签: c++ cuda caffe pow cudnn

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

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

调用后的数据没有变化。 pow函数定义如下,与caffe 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 个答案:

答案 0 :(得分:1)

我错误地将代码生成设置为&#34; compute_52,sm_52&#34;在TITAN X的开头,但是现在应该将较低的GPU设置为&#34; compute_20,sm_20&#34;。它现在正常运作。