conda-forge / cupy-feedstock

A conda-smithy repository for cupy.
BSD 3-Clause "New" or "Revised" License
5 stars 23 forks source link

cuTENSOR-enabled builds are not picked up by default for CUDA < 11 #99

Closed leofang closed 3 years ago

leofang commented 3 years ago

Requesting CUDA 11.0 would pick up cutensor automatically even if it's not requested explicitly:

$ conda create -n test -c conda-forge python=3.8 cupy cudatoolkit=11.0
Collecting package metadata (current_repodata.json): done
Solving environment: done

==> WARNING: A newer version of conda exists. <==
  current version: 4.8.3
  latest version: 4.9.2

Please update conda by running

    $ conda update -n base -c defaults conda

## Package Plan ##

  environment location: /home/leofang/miniconda3/envs/test

  added / updated specs:
    - cudatoolkit=11.0
    - cupy
    - python=3.8

The following NEW packages will be INSTALLED:

  _libgcc_mutex      conda-forge/linux-64::_libgcc_mutex-0.1-conda_forge
  _openmp_mutex      conda-forge/linux-64::_openmp_mutex-4.5-1_gnu
  ca-certificates    conda-forge/linux-64::ca-certificates-2020.12.5-ha878542_0
  certifi            conda-forge/linux-64::certifi-2020.12.5-py38h578d9bd_1
  cudatoolkit        conda-forge/linux-64::cudatoolkit-11.0.3-h15472ef_6
  cudnn              conda-forge/linux-64::cudnn-8.0.5.39-ha5ca753_1
  cupy               conda-forge/linux-64::cupy-8.4.0-py38h8c8895c_0
  cutensor           conda-forge/linux-64::cutensor-1.2.2.5-h96e36e3_2
  fastrlock          conda-forge/linux-64::fastrlock-0.5-py38h709712a_2
  ld_impl_linux-64   conda-forge/linux-64::ld_impl_linux-64-2.35.1-hea4e1c9_2
  libblas            conda-forge/linux-64::libblas-3.9.0-7_openblas
  libcblas           conda-forge/linux-64::libcblas-3.9.0-7_openblas
  libffi             conda-forge/linux-64::libffi-3.3-h58526e2_2
  libgcc-ng          conda-forge/linux-64::libgcc-ng-9.3.0-h2828fa1_18
  libgfortran-ng     conda-forge/linux-64::libgfortran-ng-9.3.0-hff62375_18
  libgfortran5       conda-forge/linux-64::libgfortran5-9.3.0-hff62375_18
  libgomp            conda-forge/linux-64::libgomp-9.3.0-h2828fa1_18
  liblapack          conda-forge/linux-64::liblapack-3.9.0-7_openblas
  libopenblas        conda-forge/linux-64::libopenblas-0.3.12-pthreads_h4812303_1
  libstdcxx-ng       conda-forge/linux-64::libstdcxx-ng-9.3.0-h6de172a_18
  nccl               conda-forge/linux-64::nccl-2.8.3.1-h96e36e3_0
  ncurses            conda-forge/linux-64::ncurses-6.2-h58526e2_4
  numpy              conda-forge/linux-64::numpy-1.20.0-py38h18fd61f_0
  openssl            conda-forge/linux-64::openssl-1.1.1i-h7f98852_0
  pip                conda-forge/noarch::pip-21.0.1-pyhd8ed1ab_0
  python             conda-forge/linux-64::python-3.8.6-hffdb5ce_5_cpython
  python_abi         conda-forge/linux-64::python_abi-3.8-1_cp38
  readline           conda-forge/linux-64::readline-8.0-he28a2e2_2
  setuptools         conda-forge/linux-64::setuptools-49.6.0-py38h578d9bd_3
  six                conda-forge/noarch::six-1.15.0-pyh9f0ad1d_0
  sqlite             conda-forge/linux-64::sqlite-3.34.0-h74cdb3f_0
  tk                 conda-forge/linux-64::tk-8.6.10-h21135ba_1
  wheel              conda-forge/noarch::wheel-0.36.2-pyhd3deb0d_0
  xz                 conda-forge/linux-64::xz-5.2.5-h516909a_1
  zlib               conda-forge/linux-64::zlib-1.2.11-h516909a_1010

But, for CUDA < 11 (say 10.2) it does not:

$ conda create -n test -c conda-forge python=3.8 cupy cudatoolkit=10.2
Collecting package metadata (current_repodata.json): done
Solving environment: done

==> WARNING: A newer version of conda exists. <==
  current version: 4.8.3
  latest version: 4.9.2

Please update conda by running

    $ conda update -n base -c defaults conda

## Package Plan ##

  environment location: /home/leofang/miniconda3/envs/test

  added / updated specs:
    - cudatoolkit=10.2
    - cupy
    - python=3.8

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    cupy-8.4.0                 |   py38h7fa8657_0        34.4 MB  conda-forge
    ------------------------------------------------------------
                                           Total:        34.4 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      conda-forge/linux-64::_libgcc_mutex-0.1-conda_forge
  _openmp_mutex      conda-forge/linux-64::_openmp_mutex-4.5-1_gnu
  ca-certificates    conda-forge/linux-64::ca-certificates-2020.12.5-ha878542_0
  certifi            conda-forge/linux-64::certifi-2020.12.5-py38h578d9bd_1
  cudatoolkit        conda-forge/linux-64::cudatoolkit-10.2.89-h8f6ccaa_6
  cudnn              conda-forge/linux-64::cudnn-7.6.5.32-h01f27c4_1
  cupy               conda-forge/linux-64::cupy-8.4.0-py38h7fa8657_0
  fastrlock          conda-forge/linux-64::fastrlock-0.5-py38h709712a_2
  ld_impl_linux-64   conda-forge/linux-64::ld_impl_linux-64-2.35.1-hea4e1c9_2
  libblas            conda-forge/linux-64::libblas-3.9.0-7_openblas
  libcblas           conda-forge/linux-64::libcblas-3.9.0-7_openblas
  libffi             conda-forge/linux-64::libffi-3.3-h58526e2_2
  libgcc-ng          conda-forge/linux-64::libgcc-ng-9.3.0-h2828fa1_18
  libgfortran-ng     conda-forge/linux-64::libgfortran-ng-9.3.0-hff62375_18
  libgfortran5       conda-forge/linux-64::libgfortran5-9.3.0-hff62375_18
  libgomp            conda-forge/linux-64::libgomp-9.3.0-h2828fa1_18
  liblapack          conda-forge/linux-64::liblapack-3.9.0-7_openblas
  libopenblas        conda-forge/linux-64::libopenblas-0.3.12-pthreads_h4812303_1
  libstdcxx-ng       conda-forge/linux-64::libstdcxx-ng-9.3.0-h6de172a_18
  nccl               conda-forge/linux-64::nccl-2.8.3.1-h1a5f58c_0
  ncurses            conda-forge/linux-64::ncurses-6.2-h58526e2_4
  numpy              conda-forge/linux-64::numpy-1.20.0-py38h18fd61f_0
  openssl            conda-forge/linux-64::openssl-1.1.1i-h7f98852_0
  pip                conda-forge/noarch::pip-21.0.1-pyhd8ed1ab_0
  python             conda-forge/linux-64::python-3.8.6-hffdb5ce_5_cpython
  python_abi         conda-forge/linux-64::python_abi-3.8-1_cp38
  readline           conda-forge/linux-64::readline-8.0-he28a2e2_2
  setuptools         conda-forge/linux-64::setuptools-49.6.0-py38h578d9bd_3
  six                conda-forge/noarch::six-1.15.0-pyh9f0ad1d_0
  sqlite             conda-forge/linux-64::sqlite-3.34.0-h74cdb3f_0
  tk                 conda-forge/linux-64::tk-8.6.10-h21135ba_1
  wheel              conda-forge/noarch::wheel-0.36.2-pyhd3deb0d_0
  xz                 conda-forge/linux-64::xz-5.2.5-h516909a_1
  zlib               conda-forge/linux-64::zlib-1.2.11-h516909a_1010

...unless cutensor is explicitly called out:

$ conda create -n test -c conda-forge python=3.8 cupy cudatoolkit=10.2 cutensor
Collecting package metadata (current_repodata.json): done
Solving environment: done

==> WARNING: A newer version of conda exists. <==
  current version: 4.8.3
  latest version: 4.9.2

Please update conda by running

    $ conda update -n base -c defaults conda

## Package Plan ##

  environment location: /home/leofang/miniconda3/envs/test

  added / updated specs:
    - cudatoolkit=10.2
    - cupy
    - cutensor
    - python=3.8

The following NEW packages will be INSTALLED:

  _libgcc_mutex      conda-forge/linux-64::_libgcc_mutex-0.1-conda_forge
  _openmp_mutex      conda-forge/linux-64::_openmp_mutex-4.5-1_gnu
  ca-certificates    conda-forge/linux-64::ca-certificates-2020.12.5-ha878542_0
  certifi            conda-forge/linux-64::certifi-2020.12.5-py38h578d9bd_1
  cudatoolkit        conda-forge/linux-64::cudatoolkit-10.2.89-h8f6ccaa_6
  cudnn              conda-forge/linux-64::cudnn-7.6.5.32-h01f27c4_1
  cupy               conda-forge/linux-64::cupy-8.4.0-py38h6754262_0
  cutensor           conda-forge/linux-64::cutensor-1.2.2.5-h1a5f58c_2
  fastrlock          conda-forge/linux-64::fastrlock-0.5-py38h709712a_2
  ld_impl_linux-64   conda-forge/linux-64::ld_impl_linux-64-2.35.1-hea4e1c9_2
  libblas            conda-forge/linux-64::libblas-3.9.0-7_openblas
  libcblas           conda-forge/linux-64::libcblas-3.9.0-7_openblas
  libffi             conda-forge/linux-64::libffi-3.3-h58526e2_2
  libgcc-ng          conda-forge/linux-64::libgcc-ng-9.3.0-h2828fa1_18
  libgfortran-ng     conda-forge/linux-64::libgfortran-ng-9.3.0-hff62375_18
  libgfortran5       conda-forge/linux-64::libgfortran5-9.3.0-hff62375_18
  libgomp            conda-forge/linux-64::libgomp-9.3.0-h2828fa1_18
  liblapack          conda-forge/linux-64::liblapack-3.9.0-7_openblas
  libopenblas        conda-forge/linux-64::libopenblas-0.3.12-pthreads_h4812303_1
  libstdcxx-ng       conda-forge/linux-64::libstdcxx-ng-9.3.0-h6de172a_18
  nccl               conda-forge/linux-64::nccl-2.8.3.1-h1a5f58c_0
  ncurses            conda-forge/linux-64::ncurses-6.2-h58526e2_4
  numpy              conda-forge/linux-64::numpy-1.20.0-py38h18fd61f_0
  openssl            conda-forge/linux-64::openssl-1.1.1i-h7f98852_0
  pip                conda-forge/noarch::pip-21.0.1-pyhd8ed1ab_0
  python             conda-forge/linux-64::python-3.8.6-hffdb5ce_5_cpython
  python_abi         conda-forge/linux-64::python_abi-3.8-1_cp38
  readline           conda-forge/linux-64::readline-8.0-he28a2e2_2
  setuptools         conda-forge/linux-64::setuptools-49.6.0-py38h578d9bd_3
  six                conda-forge/noarch::six-1.15.0-pyh9f0ad1d_0
  sqlite             conda-forge/linux-64::sqlite-3.34.0-h74cdb3f_0
  tk                 conda-forge/linux-64::tk-8.6.10-h21135ba_1
  wheel              conda-forge/noarch::wheel-0.36.2-pyhd3deb0d_0
  xz                 conda-forge/linux-64::xz-5.2.5-h516909a_1
  zlib               conda-forge/linux-64::zlib-1.2.11-h516909a_1010
jakirkham commented 3 years ago

This probably has something to do with how Conda prioritizes having fewer dependencies if that is an option. Nothing we can do about it here.

leofang commented 3 years ago

Yeah I guess so too...Let's close this. Thanks John.

jakirkham commented 3 years ago

Feel free to raise an issue with Conda