Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CMake with older CUDA does not see the includes from Conda #13393

Open
5 of 8 tasks
ramilbakhshyiev opened this issue May 28, 2024 · 0 comments
Open
5 of 8 tasks

CMake with older CUDA does not see the includes from Conda #13393

ramilbakhshyiev opened this issue May 28, 2024 · 0 comments
Labels

Comments

@ramilbakhshyiev
Copy link

Checklist

  • I added a descriptive title.
  • I searched through existing issues and couldn't find a solution or duplicate issue.
  • I searched on the web (e.g. Google) and didn't find any helpful information.
  • I searched the Anaconda documentation and didn't find any helpful information.

Impacted product

  • A conda package (built by Anaconda)
  • Anaconda Distribution (formerly Anaconda Individual Edition)
  • Miniconda
  • Anaconda.org

What happened?

When enabling older CUDA (11.4.4) language on Ubuntu 22.04 LTS (v6.5 Linux kernel), CMake does not seem to find the system include headers from Conda environment and falls through to the system ones.

Commands used to configure Conda:

sudo apt update
sudo apt-get --yes install build-essential
sudo wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /opt/miniconda-installer.sh
sudo bash /opt/miniconda-installer.sh && sudo chown -R ubuntu /home/ubuntu/miniconda3

eval "$(/home/ubuntu/miniconda3/bin/conda shell.bash hook)"

conda update -y -q conda
conda install -y -q conda-build

cd $HOME

eval "$(/home/ubuntu/miniconda3/bin/conda shell.bash hook)" 

conda config --set solver libmamba
conda update -y -q conda

conda install -y -q python=3.11 cmake make swig mkl mkl-devel numpy scipy pytest gxx_linux-64 sysroot_linux-64
conda install -y -q cuda-toolkit -c "nvidia/label/cuda-11.4.4"

Here's the simplest CMakeFiles.txt I am using to reproduce this error:

cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
project(cmake_and_cuda LANGUAGES CXX CUDA)

Here's the error I am getting:

CMake Error at /home/ubuntu/miniconda3/share/cmake-3.26/Modules/CMakeDetermineCompilerId.cmake:751 (message):
  Compiling the CUDA compiler identification source file
  "CMakeCUDACompilerId.cu" failed.

  Compiler: /home/ubuntu/miniconda3/bin/nvcc

  Build flags:

  Id flags: --keep;--keep-dir;tmp -v



  The output was:

  1

  #$ _NVVM_BRANCH_=nvvm

  #$ _SPACE_=

  #$ _CUDART_=cudart

  #$ _HERE_=/home/ubuntu/miniconda3/bin

  #$ _THERE_=/home/ubuntu/miniconda3/bin

  #$ _TARGET_SIZE_=

  #$ _TARGET_DIR_=

  #$ _TARGET_SIZE_=64

  #$ TOP=/home/ubuntu/miniconda3/bin/..

  #$ NVVMIR_LIBRARY_DIR=/home/ubuntu/miniconda3/bin/../nvvm/libdevice

  #$ LD_LIBRARY_PATH=/home/ubuntu/miniconda3/bin/../lib:

  #$
  PATH=/home/ubuntu/miniconda3/bin/../nvvm/bin:/home/ubuntu/miniconda3/bin:/home/ubuntu/miniconda3/bin:/home/ubuntu/miniconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin


  #$ INCLUDES="-I/home/ubuntu/miniconda3/bin/../include"

  #$ LIBRARIES= "-L/home/ubuntu/miniconda3/bin/../lib/stubs"
  "-L/home/ubuntu/miniconda3/bin/../lib"

  #$ CUDAFE_FLAGS=

  #$ PTXAS_FLAGS=

  #$ rm tmp/a_dlink.reg.c

  #$ gcc -D__CUDA_ARCH__=520 -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS
  -D__CUDACC__ -D__NVCC__ "-I/home/ubuntu/miniconda3/bin/../include"
  -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=4
  -D__CUDACC_VER_BUILD__=152 -D__CUDA_API_VER_MAJOR__=11
  -D__CUDA_API_VER_MINOR__=4 -include "cuda_runtime.h" -m64
  "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii"

  #$ cicc --c++17 --gnu_version=110400 --orig_src_file_name
  "CMakeCUDACompilerId.cu" --allow_managed -arch compute_52 -m64
  --no-version-ident -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1
  --include_file_name "CMakeCUDACompilerId.fatbin.c" -tused
  --gen_module_id_file --module_id_file_name
  "tmp/CMakeCUDACompilerId.module_id" --gen_c_file_name
  "tmp/CMakeCUDACompilerId.cudafe1.c" --stub_file_name
  "tmp/CMakeCUDACompilerId.cudafe1.stub.c" --gen_device_file_name
  "tmp/CMakeCUDACompilerId.cudafe1.gpu" "tmp/CMakeCUDACompilerId.cpp1.ii" -o
  "tmp/CMakeCUDACompilerId.ptx"

  /usr/include/stdio.h(189): error: attribute "__malloc__" does not take
  arguments



  /usr/include/stdio.h(201): error: attribute "__malloc__" does not take
  arguments



  /usr/include/stdio.h(223): error: attribute "__malloc__" does not take
  arguments



  /usr/include/stdio.h(260): error: attribute "__malloc__" does not take
  arguments



  /usr/include/stdio.h(285): error: attribute "__malloc__" does not take
  arguments



  /usr/include/stdio.h(294): error: attribute "__malloc__" does not take
  arguments



  /usr/include/stdio.h(303): error: attribute "__malloc__" does not take
  arguments



  /usr/include/stdio.h(309): error: attribute "__malloc__" does not take
  arguments



  /usr/include/stdio.h(315): error: attribute "__malloc__" does not take
  arguments



  /usr/include/stdio.h(830): error: attribute "__malloc__" does not take
  arguments



  /usr/include/stdlib.h(566): error: attribute "__malloc__" does not take
  arguments



  /usr/include/stdlib.h(570): error: attribute "__malloc__" does not take
  arguments



  /usr/include/stdlib.h(799): error: attribute "__malloc__" does not take
  arguments



  13 errors detected in the compilation of "CMakeCUDACompilerId.cu".

  # --error 0x1 --





Call Stack (most recent call first):
  /home/ubuntu/miniconda3/share/cmake-3.26/Modules/CMakeDetermineCompilerId.cmake:8 (CMAKE_DETERMINE_COMPILER_ID_BUILD)
  /home/ubuntu/miniconda3/share/cmake-3.26/Modules/CMakeDetermineCompilerId.cmake:53 (__determine_compiler_id_test)
  /home/ubuntu/miniconda3/share/cmake-3.26/Modules/CMakeDetermineCUDACompiler.cmake:307 (CMAKE_DETERMINE_COMPILER_ID)
  CMakeLists.txt:2 (project)

This seems to be "fix" the issue:

cp -r -n "$CONDA_PREFIX/x86_64-conda-linux-gnu/sysroot/usr/include/"* "$CONDA_PREFIX/include/"
cp -r -n "$CONDA_PREFIX/x86_64-conda-linux-gnu/include/c++/11.2.0/"* "$CONDA_PREFIX/include/"
cp -r -n "$CONDA_PREFIX/x86_64-conda-linux-gnu/include/c++/11.2.0/x86_64-conda-linux-gnu/"* "$CONDA_PREFIX/include/"

The CMake command:

cmake -B build .

Is this a bug in CMake / Conda or are we missing a step?

Expected behavior or outcome

CMake successfully finds the include headers under the Conda environment and successfully generates the make files.

Conda info

active environment : base
    active env location : /home/ubuntu/miniconda3
            shell level : 1
       user config file : /home/ubuntu/.condarc
 populated config files : /home/ubuntu/.condarc
          conda version : 24.5.0
    conda-build version : 24.5.0
         python version : 3.11.9.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=cascadelake
                          __conda=24.5.0=0
                          __glibc=2.35=0
                          __linux=6.5.0=0
                          __unix=0=0
       base environment : /home/ubuntu/miniconda3  (writable)
      conda av data dir : /home/ubuntu/miniconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/ubuntu/miniconda3/pkgs
                          /home/ubuntu/.conda/pkgs
       envs directories : /home/ubuntu/miniconda3/envs
                          /home/ubuntu/.conda/envs
               platform : linux-64
             user-agent : conda/24.5.0 requests/2.32.2 CPython/3.11.9 Linux/6.5.0-1017-aws ubuntu/22.04.4 glibc/2.35 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.8 aau/0.4.4 c/. s/. e/.
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

Conda config

==> /home/ubuntu/.condarc <==
solver: libmamba

==> envvars <==
allow_softlinks: False

Conda list

# packages in environment at /home/ubuntu/miniconda3:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main    defaults
_openmp_mutex             5.1                       1_gnu    defaults
_sysroot_linux-64_curr_repodata_hack 3                   haa98f57_10    defaults
anaconda-anon-usage       0.4.4           py311hfc0e8ea_100    defaults
archspec                  0.2.3              pyhd3eb1b0_0    defaults
attrs                     23.1.0          py311h06a4308_0    defaults
beautifulsoup4            4.12.2          py311h06a4308_0    defaults
binutils_impl_linux-64    2.38                 h2a08ee3_1    defaults
binutils_linux-64         2.38.0               hc2dff05_0    defaults
blas                      1.0                         mkl    defaults
boltons                   23.0.0          py311h06a4308_0    defaults
brotli-python             1.0.9           py311h6a678d5_8    defaults
bzip2                     1.0.8                h5eee18b_6    defaults
c-ares                    1.19.1               h5eee18b_0    defaults
ca-certificates           2024.3.11            h06a4308_0    defaults
certifi                   2024.2.2        py311h06a4308_0    defaults
cffi                      1.16.0          py311h5eee18b_1    defaults
chardet                   4.0.0           py311h06a4308_1003    defaults
charset-normalizer        2.0.4              pyhd3eb1b0_0    defaults
click                     8.1.7           py311h06a4308_0    defaults
cmake                     3.26.4               h96355d8_0    defaults
conda                     24.5.0          py311h06a4308_0    defaults
conda-build               24.5.0          py311h06a4308_0    defaults
conda-content-trust       0.2.0           py311h06a4308_1    defaults
conda-index               0.4.0              pyhd3eb1b0_0    defaults
conda-libmamba-solver     24.1.0             pyhd3eb1b0_0    defaults
conda-package-handling    2.2.0           py311h06a4308_1    defaults
conda-package-streaming   0.9.0           py311h06a4308_0    defaults
cryptography              42.0.5          py311hdda0065_1    defaults
cuda-cccl                 11.4.122                      0    nvidia/label/cuda-11.4.4
cuda-command-line-tools   11.4.4                        0    nvidia/label/cuda-11.4.4
cuda-compiler             11.4.4                        0    nvidia/label/cuda-11.4.4
cuda-cudart               11.4.148                      0    nvidia/label/cuda-11.4.4
cuda-cudart-dev           11.4.148                      0    nvidia/label/cuda-11.4.4
cuda-cuobjdump            11.4.120                      0    nvidia/label/cuda-11.4.4
cuda-cupti                11.4.120                      0    nvidia/label/cuda-11.4.4
cuda-cuxxfilt             11.4.120                      0    nvidia/label/cuda-11.4.4
cuda-driver-dev           11.4.148                      0    nvidia/label/cuda-11.4.4
cuda-gdb                  11.4.120                      0    nvidia/label/cuda-11.4.4
cuda-libraries            11.4.4                        0    nvidia/label/cuda-11.4.4
cuda-libraries-dev        11.4.4                        0    nvidia/label/cuda-11.4.4
cuda-memcheck             11.4.120                      0    nvidia/label/cuda-11.4.4
cuda-nsight               11.4.120                      0    nvidia/label/cuda-11.4.4
cuda-nsight-compute       11.4.4                        0    nvidia/label/cuda-11.4.4
cuda-nvcc                 11.4.152                      0    nvidia/label/cuda-11.4.4
cuda-nvdisasm             11.4.152                      0    nvidia/label/cuda-11.4.4
cuda-nvml-dev             11.4.120                      0    nvidia/label/cuda-11.4.4
cuda-nvprof               11.4.120             h0d98127_0    nvidia/label/cuda-11.4.4
cuda-nvprune              11.4.120                      0    nvidia/label/cuda-11.4.4
cuda-nvrtc                11.4.152                      0    nvidia/label/cuda-11.4.4
cuda-nvrtc-dev            11.4.152                      0    nvidia/label/cuda-11.4.4
cuda-nvtx                 11.4.120                      0    nvidia/label/cuda-11.4.4
cuda-nvvp                 11.4.193                      0    nvidia/label/cuda-11.4.4
cuda-samples              11.4.120             h7b9d971_0    nvidia/label/cuda-11.4.4
cuda-sanitizer-api        11.4.120                      0    nvidia/label/cuda-11.4.4
cuda-toolkit              11.4.4                        0    nvidia/label/cuda-11.4.4
cuda-tools                11.4.4                        0    nvidia/label/cuda-11.4.4
cuda-visual-tools         11.4.4                        0    nvidia/label/cuda-11.4.4
distro                    1.9.0           py311h06a4308_0    defaults
expat                     2.6.2                h6a678d5_0    defaults
filelock                  3.13.1          py311h06a4308_0    defaults
fmt                       9.1.0                hdb19cb5_1    defaults
frozendict                2.4.2           py311h06a4308_0    defaults
gcc_impl_linux-64         11.2.0               h1234567_1    defaults
gcc_linux-64              11.2.0               h5c386dc_0    defaults
gds-tools                 1.0.2.10                      0    nvidia/label/cuda-11.4.4
gxx_impl_linux-64         11.2.0               h1234567_1    defaults
gxx_linux-64              11.2.0               hc2dff05_0    defaults
icu                       73.1                 h6a678d5_0    defaults
idna                      3.7             py311h06a4308_0    defaults
iniconfig                 1.1.1              pyhd3eb1b0_0    defaults
intel-openmp              2023.1.0         hdb19cb5_46306    defaults
jinja2                    3.1.3           py311h06a4308_0    defaults
jsonpatch                 1.33            py311h06a4308_1    defaults
jsonpointer               2.1                pyhd3eb1b0_0    defaults
jsonschema                4.19.2          py311h06a4308_0    defaults
jsonschema-specifications 2023.7.1        py311h06a4308_0    defaults
kernel-headers_linux-64   3.10.0              h57e8cba_10    defaults
krb5                      1.20.1               h143b758_1    defaults
ld_impl_linux-64          2.38                 h1181459_1    defaults
libarchive                3.6.2                h6ac8c49_3    defaults
libcublas                 11.6.5.2                      0    nvidia/label/cuda-11.4.4
libcublas-dev             11.6.5.2                      0    nvidia/label/cuda-11.4.4
libcufft                  10.5.2.100                    0    nvidia/label/cuda-11.4.4
libcufft-dev              10.5.2.100                    0    nvidia/label/cuda-11.4.4
libcufile                 1.0.2.10                      0    nvidia/label/cuda-11.4.4
libcufile-dev             1.0.2.10                      0    nvidia/label/cuda-11.4.4
libcurand                 10.2.5.120                    0    nvidia/label/cuda-11.4.4
libcurand-dev             10.2.5.120                    0    nvidia/label/cuda-11.4.4
libcurl                   8.7.1                h251f7ec_0    defaults
libcusolver               11.2.0.120           hfb93c24_0    nvidia/label/cuda-11.4.4
libcusolver-dev           11.2.0.120           hf58c79c_0    nvidia/label/cuda-11.4.4
libcusparse               11.6.0.120                    0    nvidia/label/cuda-11.4.4
libcusparse-dev           11.6.0.120                    0    nvidia/label/cuda-11.4.4
libedit                   3.1.20230828         h5eee18b_0    defaults
libev                     4.33                 h7f8727e_1    defaults
libffi                    3.4.4                h6a678d5_1    defaults
libgcc-devel_linux-64     11.2.0               h1234567_1    defaults
libgcc-ng                 11.2.0               h1234567_1    defaults
libgfortran-ng            11.2.0               h00389a5_1    defaults
libgfortran5              11.2.0               h1234567_1    defaults
libgomp                   11.2.0               h1234567_1    defaults
liblief                   0.12.3               h6a678d5_0    defaults
libmamba                  1.5.8                hfe524e5_2    defaults
libmambapy                1.5.8           py311h2dafd23_2    defaults
libnghttp2                1.57.0               h2d74bed_0    defaults
libnpp                    11.4.0.110                    0    nvidia/label/cuda-11.4.4
libnpp-dev                11.4.0.110                    0    nvidia/label/cuda-11.4.4
libnvjpeg                 11.5.2.120                    0    nvidia/label/cuda-11.4.4
libnvjpeg-dev             11.5.2.120                    0    nvidia/label/cuda-11.4.4
libsolv                   0.7.24               he621ea3_1    defaults
libssh2                   1.11.0               h251f7ec_0    defaults
libstdcxx-devel_linux-64  11.2.0               h1234567_1    defaults
libstdcxx-ng              11.2.0               h1234567_1    defaults
libuuid                   1.41.5               h5eee18b_0    defaults
libuv                     1.44.2               h5eee18b_0    defaults
libxml2                   2.10.4               hfdd30dd_2    defaults
lz4-c                     1.9.4                h6a678d5_1    defaults
make                      4.2.1                h1bed415_1    defaults
markupsafe                2.1.3           py311h5eee18b_0    defaults
menuinst                  2.1.0           py311h06a4308_0    defaults
mkl                       2023.1.0         h213fc3f_46344    defaults
mkl-devel                 2023.1.0         h3a03a7a_46344    defaults
mkl-include               2023.1.0         h06a4308_46344    defaults
mkl-service               2.4.0           py311h5eee18b_1    defaults
mkl_fft                   1.3.8           py311h5eee18b_0    defaults
mkl_random                1.2.4           py311hdb19cb5_0    defaults
more-itertools            10.1.0          py311h06a4308_0    defaults
ncurses                   6.4                  h6a678d5_0    defaults
nsight-compute            2021.2.2.1                    0    nvidia/label/cuda-11.4.4
numpy                     1.26.4          py311h08b1b3b_0    defaults
numpy-base                1.26.4          py311hf175353_0    defaults
openssl                   3.0.13               h7f8727e_2    defaults
packaging                 23.2            py311h06a4308_0    defaults
patch                     2.7.6             h7b6447c_1001    defaults
patchelf                  0.17.2               h6a678d5_0    defaults
pcre                      8.45                 h295c915_0    defaults
pcre2                     10.42                hebb0a14_1    defaults
pip                       24.0            py311h06a4308_0    defaults
pkginfo                   1.10.0          py311h06a4308_0    defaults
platformdirs              3.10.0          py311h06a4308_0    defaults
pluggy                    1.0.0           py311h06a4308_1    defaults
psutil                    5.9.0           py311h5eee18b_0    defaults
py-lief                   0.12.3          py311h6a678d5_0    defaults
pybind11-abi              4                    hd3eb1b0_1    defaults
pycosat                   0.6.6           py311h5eee18b_1    defaults
pycparser                 2.21               pyhd3eb1b0_0    defaults
pysocks                   1.7.1           py311h06a4308_0    defaults
pytest                    7.4.0           py311h06a4308_0    defaults
python                    3.11.9               h955ad1f_0    defaults
python-libarchive-c       2.9                pyhd3eb1b0_1    defaults
pytz                      2024.1          py311h06a4308_0    defaults
pyyaml                    6.0.1           py311h5eee18b_0    defaults
readline                  8.2                  h5eee18b_0    defaults
referencing               0.30.2          py311h06a4308_0    defaults
reproc                    14.2.4               h6a678d5_2    defaults
reproc-cpp                14.2.4               h6a678d5_2    defaults
requests                  2.32.2          py311h06a4308_0    defaults
rhash                     1.4.3                hdbd6064_0    defaults
rpds-py                   0.10.6          py311hb02cf49_0    defaults
ruamel.yaml               0.17.21         py311h5eee18b_0    defaults
scipy                     1.13.0          py311h08b1b3b_0    defaults
setuptools                69.5.1          py311h06a4308_0    defaults
soupsieve                 2.5             py311h06a4308_0    defaults
sqlite                    3.45.3               h5eee18b_0    defaults
swig                      4.0.2                h295c915_4    defaults
sysroot_linux-64          2.17                h57e8cba_10    defaults
tbb                       2021.8.0             hdb19cb5_0    defaults
tk                        8.6.14               h39e8969_0    defaults
tqdm                      4.66.4          py311h92b7b1e_0    defaults
truststore                0.8.0           py311h06a4308_0    defaults
tzdata                    2024a                h04d1e81_0    defaults
urllib3                   2.2.1           py311h06a4308_0    defaults
wheel                     0.43.0          py311h06a4308_0    defaults
xz                        5.4.6                h5eee18b_1    defaults
yaml                      0.2.5                h7b6447c_0    defaults
yaml-cpp                  0.8.0                h6a678d5_1    defaults
zlib                      1.2.13               h5eee18b_1    defaults
zstandard                 0.22.0          py311h2c38b39_0    defaults
zstd                      1.5.5                hc292b87_2    defaults

Additional information

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant