__fAtomicAdd Error unsupported operation


I have a Qosmio with a GeForce Gtx 560m. I installed a “pure” (without multilib support) amd64 gentoo and had success installing and compiling nvidia sdk 4.1rc.

The problem I have, is that when i compile 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”, maybe it doesn’t need).

I use the function for a global float atomic add. I have already compiled the same file in another linux system (gentoo amd64 without multilib support) with cuda 4.0.

I have gcc version 4.5.3.

Any suggestion, please? Thanks for your time.

Luis Ernesto.