Hi,
yesterday I have upgraded my CUDA based framework from 2.1 to 2.2. Unfortunately I encounter some problems related to reference kernel parameters.
Think of this example:
__global__ void testKernel(int& i)
{ i = 5; }
The NVCC from 2.1 accepts this code and generates working code. The 2.2 version generates the following error message:
Error 1 error C2664: '__device_stub__Z10testKerneliRiRf' : cannot convert parameter 2 from 'int' to 'int *' C:\Temp\tmpxft_0000014c_00000000-3_test1.cudafe1.stub.c 15
Maybe this behavior is related to recent changes like…
o The default compilation mode for host code is now C++. To restore the old behavior, use the option --host-compilation=c
…because with C compilation mode NVCC accepts the code.
Can someone confirm this behavior, and if so, confirm this is a bug?
Btw… I’m using the release version of 2.2 CUDA with Visual Studio 2005.
Thx,
Marcel