deeplearningais / CUV

Matrix library for CUDA in C++ and Python
www.ais.uni-bonn.de
196 stars 48 forks source link

Installing on OSX #11

Open remaininlight opened 8 years ago

remaininlight commented 8 years ago

I have been attempting to install CUV on OSX, I am stuck on the error below when I run "make -j". Any help or pointers are appreciated. I've already navigated through a few different errors, so if we can get it working on OSX I'll put a guide together, which might be useful for others.

Scanning dependencies of target tp_theano
[ 18%] Linking CXX shared library libtp_theano.dylib
Undefined symbols for architecture x86_64:
  "cuv::cuvAssertFailed(char const*)", referenced from:
      cuv::theano_conv::convolve_2d_with_bias(cuv::tensor<float, cuv::dev_memory_space, cuv::row_major>&, cuv::tensor<float, cuv::dev_memory_space, cuv::row_major> const&, cuv::tensor<float, cuv::dev_memory_space, cuv::row_major> const&, cuv::tensor<float, cuv::dev_memory_space, cuv::row_major> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) in tp_theano_generated_convolutions.cu.o
      cuv::theano_conv::convolve_2d(cuv::tensor<float, cuv::dev_memory_space, cuv::row_major>&, cuv::tensor<float, cuv::dev_memory_space, cuv::row_major> const&, cuv::tensor<float, cuv::dev_memory_space, cuv::row_major> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) in tp_theano_generated_convolutions.cu.o
      cuv::theano_conv::d_convolve_d_images(cuv::tensor<float, cuv::dev_memory_space, cuv::row_major>&, cuv::tensor<float, cuv::dev_memory_space, cuv::row_major> const&, cuv::tensor<float, cuv::dev_memory_space, cuv::row_major> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in tp_theano_generated_convolutions.cu.o
      cuv::theano_conv::d_convolve_d_images_with_bias(cuv::tensor<float, cuv::dev_memory_space, cuv::row_major>&, cuv::tensor<float, cuv::dev_memory_space, cuv::row_major> const&, cuv::tensor<float, cuv::dev_memory_space, cuv::row_major> const&, cuv::tensor<float, cuv::dev_memory_space, cuv::row_major> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in tp_theano_generated_convolutions.cu.o
      cuv::theano_conv::d_convolve_d_kern(cuv::tensor<float, cuv::dev_memory_space, cuv::row_major>&, cuv::tensor<float, cuv::dev_memory_space, cuv::row_major> const&, cuv::tensor<float, cuv::dev_memory_space, cuv::row_major> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in tp_theano_generated_convolutions.cu.o
  "void cuv::detail::copy<int>(int*, int const*, unsigned long, cuv::host_memory_space, cuv::host_memory_space, CUstream_st*)", referenced from:
      void cuv::linear_memory<int, cuv::host_memory_space>::copy_from<int, cuv::host_memory_space>(cuv::linear_memory<int, cuv::host_memory_space> const&, CUstream_st*) const in tp_theano_generated_convolutions.cu.o
  "void cuv::detail::copy<unsigned int>(unsigned int*, unsigned int const*, unsigned long, cuv::host_memory_space, cuv::host_memory_space, CUstream_st*)", referenced from:
      void cuv::linear_memory<unsigned int, cuv::host_memory_space>::copy_from<unsigned int, cuv::host_memory_space>(cuv::linear_memory<unsigned int, cuv::host_memory_space> const&, CUstream_st*) const in tp_theano_generated_convolutions.cu.o
  "int cuv::detail::entry_get<int>(int const*, unsigned long, cuv::host_memory_space)", referenced from:
      cuv::reference<int, cuv::host_memory_space>::operator int() const in tp_theano_generated_convolutions.cu.o
  "unsigned int cuv::detail::entry_get<unsigned int>(unsigned int const*, unsigned long, cuv::host_memory_space)", referenced from:
      cuv::reference<unsigned int, cuv::host_memory_space>::operator unsigned int() const in tp_theano_generated_convolutions.cu.o
  "_cublasGetError", referenced from:
      CudaNdarray_CreateArrayObj(CudaNdarray*) in tp_theano_generated_cuda_ndarray.cu.o
      cnda_copy_structure_to_device(CudaNdarray*) in tp_theano_generated_cuda_ndarray.cu.o
      CudaNdarray_CopyFromCudaNdarray(CudaNdarray*, CudaNdarray*, bool) in tp_theano_generated_cuda_ndarray.cu.o
      CudaNdarray_setitem(_object*, _object*, _object*) in tp_theano_generated_cuda_ndarray.cu.o
      CudaNdarray_ptr_int_size(_object*, _object*) in tp_theano_generated_cuda_ndarray.cu.o
      cublas_init() in tp_theano_generated_cuda_ndarray.cu.o
      cublas_shutdown() in tp_theano_generated_cuda_ndarray.cu.o
      ...
  "_cublasGetVector", referenced from:
      CudaNdarray_CreateArrayObj(CudaNdarray*) in tp_theano_generated_cuda_ndarray.cu.o
      CudaNdarray_ptr_int_size(_object*, _object*) in tp_theano_generated_cuda_ndarray.cu.o
      fprint_CudaNdarray(__sFILE*, CudaNdarray const*) in tp_theano_generated_cuda_ndarray.cu.o
  "_cublasInit", referenced from:
      cublas_init() in tp_theano_generated_cuda_ndarray.cu.o
  "_cublasScopy", referenced from:
      CudaNdarray_CopyFromCudaNdarray(CudaNdarray*, CudaNdarray*, bool) in tp_theano_generated_cuda_ndarray.cu.o
  "_cublasSetVector", referenced from:
      cnda_copy_structure_to_device(CudaNdarray*) in tp_theano_generated_cuda_ndarray.cu.o
      CudaNdarray_setitem(_object*, _object*, _object*) in tp_theano_generated_cuda_ndarray.cu.o
      CudaNdarray_CopyFromArray(CudaNdarray*, PyArrayObject*) in tp_theano_generated_cuda_ndarray.cu.o
  "_cublasSgemm", referenced from:
      CudaNdarray_gemm(float, CudaNdarray const*, CudaNdarray const*, float, CudaNdarray*) in tp_theano_generated_cuda_ndarray.cu.o
  "_cublasSger", referenced from:
      CudaNdarray_sger(float, CudaNdarray*, CudaNdarray*, CudaNdarray*) in tp_theano_generated_cuda_ndarray.cu.o
  "_cublasShutdown", referenced from:
      cublas_shutdown() in tp_theano_generated_cuda_ndarray.cu.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [src/3rd_party/cuda_ndarray/libtp_theano.0.9.dylib] Error 1
make[1]: *** [src/3rd_party/cuda_ndarray/CMakeFiles/tp_theano.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [src/3rd_party/cudaconv2/CMakeFiles/tp_cudaconv2.dir/all] Error 2
make: *** [all] Error 2

I think this could possibly be related to an earlier message from running generate in the ccmake interface:

CMake Warning (dev):
   Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run "cmake
   --help-policy CMP0042" for policy details.  Use the cmake_policy command to
   set the policy and suppress this warning.

   MACOSX_RPATH is not specified for the following targets:

    cuv
    tp_cudaconv2
    tp_theano

 This warning is for project developers.  Use -Wno-dev to suppress it.