2016-11-10 6 views
0

Я использую ускорение cudnn в моей программе caffe. Я использую cudnn 4 в начале, и он работает нормально, но когда я обновляю cudnn до версии 5.0, функция pow не работает. функция Вызывающий находится в batch_norm слое,caffe cudnn version 4 & 5

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

И данные после вызова не изменяется. военнопленная функция определяются как ниже, так же, как и в кофейном 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, но теперь более низкий графический процессор должен быть установлен на «compute_20, sm_20». И теперь он работает нормально.

+0

Этот параметр не имеет смысла. CUDNN требует запуска вычислительной возможности> = 3.0. На каком устройстве вы на самом деле пытаетесь работать? – talonmies