__fAtomicAdd Error unsupported operation


I have a Qosmio with a GeForce Gtx 560m. I installed gentoo amd64 without multilib support gcc 4.5.3 and had success installing and compiling nvidia cuda 4.1rc.

The problem I have, is that when i tried to compile a program that uses atomicAdd for a global float atomic add with nvcc -arch=sm_20, it says:

/usr/local/cuda/bin/…/include/sm_20_atomic_functions. h(79) Error: unsupported operation

The only function in that file is a float atomic add, which calls __fAtomicAdd. I then change in my .cu file atomicAdd by __fAtomicAdd (i thought that maybe it didn’t enter because the ifdef’s), but now it marks my .cu file, and gets the same error.

I tried:

grep “fAtomicaAdd” *.h /usr/local/cuda/include

and get:

sm_20_atomic_functions.h:extern device device_builtin float __fAtomicAdd(float *address, float val);
sm_20_atomic_functions.h: return __fAtomicAdd(address, val);

(that makes me think it’s not define anywhere, but maybe because is “device_builtin”, it doesn’t need it).

I have already compiled the same file in another linux system (gentoo amd64 without multilib support) with cuda 4.0, without any error.

Any suggestion, please? Thanks for your time.

Luis Ernesto.