2016-11-10 7 views
0

私はcaffeプログラムでcudnnアクセラレーションを使用しています。 私はcudnn 4を使い始めました。うまくいきましたが、cudnnをバージョン5.0にアップデートしても、pow関数は動作しません。 呼び出し元の関数はcaffe cudnn version 4&5

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

としてbatch_norm層である、呼び出し後のデータは変更されません。 POW関数は私はTITAN Xで始まるでコード生成する「compute_52、sm_52」を設定したミスを犯し

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

カフェ用のGitHub banchと同じように、以下のように定義されるが、今されています低いGPUは "compute_20、sm_20"に設定する必要があります。そして今はうまくいっています。

+0

その設定は意味をなさない。 CUDNNでは、実行するには計算能力> = 3.0のデバイスが必要です。実際にどのデバイスを実行しようとしていますか? – talonmies

関連する問題