コードを短くするために、次のテンプレートを宣言しました。
template <typename T>
void allocateGPUSpace(T* ptr, int size){
cudaMalloc((void**)&ptr,size * sizeof(T));
}
さらに、次のようにテンプレートを使用します。
float* alphaWiMinusOne;
allocateGPUSpace<float>( alphaWiMinusOne,numUnigrams);
ただし、コードをコンパイルすると、VS 2008 で警告が表示されます
warning: variable "alphaWiMinusOne" is used before its value is set
と
uninitialized local variable 'alphaWiMinusOne' used
cuda は C++ のテンプレートを理解できませんか? まあ、それはnvidiaにとって必須のことです