Geforce 320M problem problem finding the lcutil_x86_64

I have searched the forum and read similar problems, but none of them seem to help. I first installed the 3.2 toolkit, but then decided to try 3.1 which is what I currently have. When I run the deviceQuery, I get:

Device 0: “GeForce 320M”
CUDA Driver Version: 3.10
CUDA Runtime Version: 3.10
CUDA Capability Major revision number: 1
CUDA Capability Minor revision number: 2
Total amount of global memory: 265027584 bytes
Number of multiprocessors: 6
Number of cores: 48
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 16384 bytes
Total number of registers available per block: 16384
Warp size: 32
Maximum number of threads per block: 512
Maximum sizes of each dimension of a block: 512 x 512 x 64
Maximum sizes of each dimension of a grid: 65535 x 65535 x 1
Maximum memory pitch: 2147483647 bytes
Texture alignment: 256 bytes
Clock rate: 0.95 GHz
Concurrent copy and execution: Yes
Run time limit on kernels: Yes
Integrated: Yes
Support host page-locked memory mapping: Yes
Compute mode: Default (multiple host threads can use this device simultaneously)
Concurrent kernel execution: No
Device has ECC support enabled: No

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 3.10, CUDA Runtime Version = 3.10, NumDevs = 1, Device = GeForce 320M

PASSED

When I run my code, I receive:

ld: warning: directory ‘/usr/local/cuda/bin/…/lib64’ following -L not found
ld: library not found for -lcutil_x86_64

I tried switching the library to -lcutil_i386, but then I get:

ld: warning: directory ‘/usr/local/cuda/bin/…/lib64’ following -L not found
ld: library not found for -lcudart

Any ideas would be greatly appreciated.

Those errors are happening when you are compiling code, not running it. What compilation statements are you using to compile the code?

My make file look like this:

generic compiler flags

CFLAGS = -O3

LFLAGS = -framework OpenGL -framework GLUT /opt/local/lib/libpng.3.dylib

NVCC flags

COMMA = ,

EMPTY =

SPACE = (EMPTY) (EMPTY)

CUDA_PATH = /Developer/GPU\ Computing/C

NVCC_CFLAGS = -m64 -I$(CUDA_PATH)/common/inc \

          -Xcompiler $(subst $(SPACE),$(COMMA),$(CFLAGS)) # -Xptxas -v

NVCC_LFLAGS = -L$(CUDA_PATH)/lib -lcutil_x86_64 \

          $(CUDA_PATH)/common/lib/darwin/libGLEW.a \

          -Xlinker $(subst $(SPACE),$(COMMA),$(LFLAGS))

Are you doing this on a 64 bit or 32 bit machine? The error you are getting indicates that the linker can’t find the SDK cutil library. You have to compile this yourself by running make in /Developer/GPU\ Computing/C/common . You should then get either the 64 bit or 32 bit version built depending on which architecture you are using.

I am using a 64 bit machine. I have run make in every folder containing an make file, including the common, with the same problems. I have had this same issue with 3.2 and 3.1 now. Should I try 3.0?

Downgrading won’t change anything. What does the common/lib directory in your SDK contain. On my 32 bit machine with CUDA 3.2, I have:

MacBook-Air:~ avidday$ ls /Developer/GPU\ Computing/C/lib/

libcutil_i386.a		libparamgl_i386.a	librendercheckgl_i386.a

For a 64 bit machine you should have libcutil_x86_64.a . If you don’t, then something is wrong with the way you are building the SDK.

My library looks like:

MacBook-Pro:lib timothyluciani$ ls /Developer/GPU\ Computing/C//lib/

libcutil_i386.a libparamgl_i386.a librendercheckgl_i386.a

I tried completely removing cuda, then reinstalling it. I still get these libraries. Is there a way to force a 64 bit installation?

This has nothing to do with CUDA, per se, it is just the SDK isn’t building for the right architecture. Architecture detection is done inside the horrid common.mk . You could try doing something like

make x86_64=1

in common and see what it does. I have only ever used 32bit OS X systems with CUDA, so that is only a guess, I can’t test it myself.

That worked!! Thank you so much!!! :biggrin: