Hi,
when compiling lib/gpu on a Mac OS 10.6.7, I encountered the following error:
pair_gpu_build_kernel.cu(32): error: calling a __device__ function("tex1Dfetch") from a __host__ function("fetch_pos") is not allowed
When I modified the function fetch_pos with the __device__ modifier, the error was eliminated with this file; but similar errors showed up with other .cu files. So I guess there might be something wrong with the setting on my local machine. How can I resolve this issue?
FYI, I'm using CUDA Toolkit 4.0, compiling with SINGLE_SINGLE CUDA precision, sm_1.1, and -m32; lib/gpu from lammps 1 July 2011. Makefile.mac is attached though I thought it is not the same as distributed, and the path to cuda home is correct for my machine.
Any suggestions are appreciated. Thanks in advance,
-Trung
Makefile.mac (1.75 KB)
Hi,
when compiling lib/gpu on a Mac OS 10.6.7, I encountered the following
error:
pair_gpu_build_kernel.cu(32): error: calling a __device__
function("tex1Dfetch") from a __host__ function("fetch_pos") is not allowed
strange. i tried various permutations of settings on an x86_64 linux
machine trying to compile in 32-bit and 64-bit mode for -arch=sm_11
but i cannot reproduce this.
When I modified the function fetch_pos with the __device__ modifier, the
error was eliminated with this file; but similar errors showed up with other
.cu files. So I guess there might be something wrong with the setting on my
local machine. How can I resolve this issue?
it is hard to tell, where this is coming from. i would suspect
some preprocessor magic bombed on your machine.
cheers,
axel.
Hi Trung,
This is a problem with the library on macs for cuda 4 that I need to fix. In the meantime, you can edit lib/gpu/geryon/ucl_nv_kernel.h:
Change:
#ifndef __inline
#define __inline static __inline__ __device__
#endif
to be:
#define __inline static __inline__ __device__
- Mike
Hi Mike,
thanks for the workaround. lib/gpu compiles successfully now.
Btw, I noticed that on my Mac machine __inline was defined in /usr/include/sys/cdefs.h:94, causing the #define preprocessor following #ifndef __inline in lib/gpu/geryon/ucl_nv_kernel.h disregarded.
-Trung
Quoting "Brown, W. Michael" <[email protected]...>: