Search code examples
c++installationcmakeanacondacudf

I am trying to install cudf from source for conda, I cannot use cmake to install it


I am trying to install CUDF from its source file as given in the page (https://github.com/rapidsai/cudf/blob/branch-0.15/CONTRIBUTING.md#setting-up-your-build-environment )

After the following few steps, I cannot complete it by doing the cmake

Build and install libcudf after its dependencies. CMake depends on the nvcc executable being on your path or defined in $CUDACXX.

$ cd $CUDF_HOME/cpp  
$ mkdir build
$ cd build 

then it says

-DCMAKE_INSTALL_PREFIX set to the install path for your libraries or $CONDA_PREFIX if you're using Anaconda, i.e. -DCMAKE_INSTALL_PREFIX=/install/path or-DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX# -DCMAKE_CXX11_ABI set to ON or OFF depending on the ABI version you want, defaults to ON. When turned ON, ABI compatibility for C++11 is used. When OFF, pre-C++11 ABI compatibility is used.

cmake .. -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DCMAKE_CXX11_ABI=ON  

Then it showing errors like the following

cmake: /usr/local/lib/libcurl.so.4: no version information available (required by cmake)
CMake Error at /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:219 (file):
  file failed to open for writing (Permission denied):

    /home/CUDF/cudf/cpp/build/CMakeFiles/3.16.3/CompilerIdCUDA/CMakeCUDACompilerId.cu
Call Stack (most recent call first):
  /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE)
  /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD)
  /usr/share/cmake-3.16/Modules/CMakeDetermineCUDACompiler.cmake:72 (CMAKE_DETERMINE_COMPILER_ID)
  CMakeLists.txt:18 (project)


CMake Error at /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:219 (file):
  file failed to open for writing (Permission denied):

    /home/CUDF/cudf/cpp/build/CMakeFiles/3.16.3/CompilerIdCUDA/CMakeCUDACompilerId.cu
Call Stack (most recent call first):
  /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE)
  /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD)
  /usr/share/cmake-3.16/Modules/CMakeDetermineCUDACompiler.cmake:72 (CMAKE_DETERMINE_COMPILER_ID)
  CMakeLists.txt:18 (project)


-- The CUDA compiler identification is unknown
-- Check for working CUDA compiler: /home/anaconda3/envs/cudf_dev/
-- Check for working CUDA compiler: /home/anaconda3/envs/cudf_dev/ -- broken
CMake Error at /usr/share/cmake-3.16/Modules/CMakeTestCUDACompiler.cmake:46 (message):
  The CUDA compiler

    "/home/anaconda3/envs/cudf_dev/"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /home/CUDF/cudf/cpp/build/CMakeFiles/CMakeTmp
    
    Run Build Command(s):/usr/bin/make cmTC_9f254/fast && /usr/bin/make -f CMakeFiles/cmTC_9f254.dir/build.make CMakeFiles/cmTC_9f254.dir/build
    make[1]: Entering directory '/home/CUDF/cudf/cpp/build/CMakeFiles/CMakeTmp'
    /usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
    Building CUDA object CMakeFiles/cmTC_9f254.dir/main.cu.o
    /home/anaconda3/envs/cudf_dev/     -x cu -c /home/CUDF/cudf/cpp/build/CMakeFiles/CMakeTmp/main.cu -o CMakeFiles/cmTC_9f254.dir/main.cu.o
    make[1]: execvp: /home/anaconda3/envs/cudf_dev/: Permission denied
    make[1]: *** [CMakeFiles/cmTC_9f254.dir/build.make:66: CMakeFiles/cmTC_9f254.dir/main.cu.o] Error 127
    make[1]: Leaving directory '/home/CUDF/cudf/cpp/build/CMakeFiles/CMakeTmp'
    make: *** [Makefile:121: cmTC_9f254/fast] Error 2
    
    

  

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:18 (project)


-- Configuring incomplete, errors occurred!
See also "/home/CUDF/cudf/cpp/build/CMakeFiles/CMakeOutput.log".
See also "/home/CUDF/cudf/cpp/build/CMakeFiles/CMakeError.log".
k@k-HP:~/CUDF/cudf/cpp/build$ 

What should I do with this step?

P.s : my anaconda path is like /home/anaconda3/ and cudf environment path is like /home/anaconda3/envs/cudf_dev


Solution

  • Please note that cudf 0.15 does not support CUDA 10.0 and python 3.6.

    It seems to be a CUDA/permissions issue.

    Did you install/ build your conda env as root and now you are trying to run build as a user?

    What is your output for nvidia-smi?

    Also if you have the CUDA toolkit installed and the env's cuda version matches the CUDA version shown in nvidia-smi. Then i would recommend that you try running ./build.sh command from /home/CUDF/cudf/ folder. Running ./build.sh works for me.

    In case the above solutions do not work you can always file an issue in the cudf repo (https://github.com/rapidsai/cudf/issues) and please provide the output of file print_env.sh.

    You can also install the nightly version of cudf-0.15 by using the following command :

    conda install -c rapidsai-nightly -c nvidia -c conda-forge -c defaults cudf=0.15 python=3.7 cudatoolkit=10.1

    You need to update the cudatoolkit version depending on the CUDA toolkit version you have installed in your system.