akrizhevsky / cuda-convnet2

Automatically exported from code.google.com/p/cuda-convnet2
Apache License 2.0
777 stars 289 forks source link

Cuda-convnet--ImportError: /usr/local/cuda/lib64/libcublas.so.4: undefined symbol: cudaMemsetAsync #25

Open libingict opened 6 years ago

libingict commented 6 years ago

Hi, all, I am a new CNN learning and trying run cuda-convnet on different GPU platforms. Cuda-convnet can run well on my server. but when I run cuda-convnet with the gpgpusim simulator. an error happenes. The error is "ImportError: /usr/local/cuda/lib64/libcublas.so.4: undefined symbol: cudaMemsetAsync" The details are like this:

Importing _ConvNet C++ module Traceback (most recent call last): File "convnet.py", line 203, in model = ConvNet(op, load_dic) File "convnet.py", line 43, in init IGPUModel.init(self, "ConvNet", op, load_dic, filename_options, dp_params=dp_params) File "/root/convnet/trunk/gpumodel.py", line 88, in init self.import_model() File "convnet.py", line 49, in import_model self.libmodel = import(lib_name) ImportError: /usr/local/cuda/lib64/libcublas.so.4: undefined symbol: cudaMemsetAsync

The wired thing is the gpugpusim can run other cuda code. Cuda-convnet can run well on my server. I setup my gpgpusim simulator following its tutorial and copy the config files into the convnet's work path, and then I type ""

My gcc version is gcc version 4.4.7 (Ubuntu/Linaro 4.4.7-8ubuntu1) . The GPU model is GTX480. My cuda is version 4.0. Here is the output of my libcublas.so nm -D /usr/local/cuda/lib64/libcublas.so |grep ‘cuda’

             U __cudaRegisterFatBinary
             U __cudaRegisterFunction
             U __cudaRegisterTexture
             U __cudaUnregisterFatBinary
             U cudaBindTexture
             U cudaConfigureCall
             U cudaCreateChannelDesc
             U cudaEventCreateWithFlags
             U cudaEventDestroy
             U cudaEventQuery
             U cudaEventRecord
             U cudaEventSynchronize
             U cudaFree
             U cudaFuncGetAttributes
             U cudaGetDevice
             U cudaGetDeviceProperties
             U cudaGetExportTable
             U cudaGetLastError
             U cudaLaunch
             U cudaMalloc
             U cudaMemcpy
             U cudaMemcpy2D
             U cudaMemcpy2DAsync
             U cudaMemcpyAsync
             U cudaMemsetAsync
             U cudaSetupArgument
             U cudaThreadSynchronize
             U cudaUnbindTexture

ll /usr/local/cuda/lib64/libcublas.so

lrwxrwxrwx 1 root root 14 Mar 17 16:10 /usr/local/cuda/lib64/libcublas.so -> libcublas.so.4*

Should I change something in the makefile? Due to the requirement of the gpgpusim simulator, I could not update the Cuda toolkit version.

Could anyone help me out with this issue? Thanks a lot in advance!