yuecideng / Misc3D

A unified library for 3D data processing with both c++ and python API
MIT License
62 stars 10 forks source link

libmisc3d.so: undefined reference to `cudaGetDevice' #33

Open jiaming3 opened 1 year ago

jiaming3 commented 1 year ago

Hi @yuecideng , I used cuda11.7 and face this error. Do you know how to solve it?

_cgi-bin_mmwebwx-bin_webwxgetmsgimg  MsgID=1993292115322305944 skey=@crypt_66ee1642_ec82d8760ac336305cdecd6db9956aa1 mmweb_appid=wx_webfilehelper

[ 52%] Linking CXX executable ../../bin/farthest_point_sampling /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaGetDevice' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaStreamGetCaptureInfo' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaMemcpy2DAsync' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaFreeAsync' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaFreeHost' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaMemcpy2D' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to __cudaPushCallConfiguration' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaEventCreateWithFlags' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaStreamCreateWithFlags' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaMemcpyPeerAsync' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaMallocAsync' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaMemset2DAsync' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaStreamCreateWithPriority' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaMemcpyAsync' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaStreamWaitEvent' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaMallocHost' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaGetDeviceProperties' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaStreamCreate' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaEventQuery' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaDeviceCanAccessPeer' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaGetSymbolAddress' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaPopCallConfiguration' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to `cudaRegisterFatBinaryEnd' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaSetDevice' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaMemGetInfo' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaGetErrorString' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaStreamDestroy' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaGetDeviceCount' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaRegisterFunction' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaFree' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaMallocManaged' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaDeviceSynchronize' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaMemcpyToSymbolAsync' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaPeekAtLastError' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaRuntimeGetVersion' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaGetErrorName' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaEventDestroy' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaDeviceGetAttribute' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaFuncGetAttributes' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaOccupancyMaxActiveBlocksPerMultiprocessor' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaUnregisterFatBinary' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to __cudaRegisterFatBinary' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaGetLastError' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaMalloc' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaMemcpy' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaGetExportTable' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to__cudaRegisterVar' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaStreamQuery' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaThreadExchangeStreamCaptureMode' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaStreamGetPriority' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaPointerGetAttributes' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaMemset' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaStreamSynchronize' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaDeviceEnablePeerAccess' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaLaunchKernel' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaMemsetAsync' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaStreamGetFlags' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaEventCreate' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to cudaEventRecord' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference tocudaFuncSetAttribute' /usr/bin/ld: ../../lib/libmisc3d.so: undefined reference to `cudaDeviceGetStreamPriorityRange' collect2: error: ld returned 1 exit status make[2]: [examples/cpp/CMakeFiles/farthest_point_sampling.dir/build.make:185:bin/farthest_point_sampling] 错误 1 make[1]: [CMakeFiles/Makefile2:418:examples/cpp/CMakeFiles/farthest_point_sampling.dir/all] 错误 2 make: *** [Makefile:136:all] 错误 2

Thank you!

yuecideng commented 1 year ago

Hey @jiaming3 , I also encounter this issue when linking Open3D built with CUDA support. I think a workaround is use CPU only open3d as dependency. If you have to use Open3D with CUDA support, you should change the cmake of misc3d to configure cuda as well.

By the way, this library may no longer to be developed in the future. I'm working on another 3d data proceesing library (also compatible with open3d with tensor and tensor based geometry, and with CUDA support as well). The algorithms in misc3d would be covered by that. You can try to use that library If you are interested about it. The plan to release it may be around (2023.03.20 - 03.30)

godfather1402 commented 1 year ago

Hey @jiaming3 , I also encounter this issue when linking Open3D built with CUDA support. I think a workaround is use CPU only open3d as dependency. If you have to use Open3D with CUDA support, you should change the cmake of misc3d to configure cuda as well.

By the way, this library may no longer to be developed in the future. I'm working on another 3d data proceesing library (also compatible with open3d with tensor and tensor based geometry, and with CUDA support as well). The algorithms in misc3d would be covered by that. You can try to use that library If you are interested about it. The plan to release it may be around (2023.03.20 - 03.30)

Hi @yuecideng I'm also interested in this library. When do you plan to release a new library?. Thank you :)

yuecideng commented 1 year ago

Hi @godfather1402, the release date has been postponed due to some reasons. I am happy to let you know once I have opened source the new library.