Как мне обновить cupy / CUDA, чтобы он снова заработал и исправил мою среду conda?

#python #linux #anaconda #conda #cupy

#python #linux #anaconda #conda #cupy

Вопрос:

Я на Ubuntu 18.04 (64-разрядная версия) и пытался использовать функцию, которая использует cupy для повторной выборки некоторых данных, но получила ошибку AttributeError: type object 'cupy.core.core.Indexer' has no attribute '__reduce_cython__' . Я видел проблему на github с той же ошибкой, которая предполагала, что это было из-за несоответствия версии или отсутствующей зависимости.

Сначала я попытался обновить cupy с помощью conda, но затем, когда я попытался импортировать cupy, я получил сообщение об ошибке, что cupy установлен неправильно, и предложил попробовать pip install cupy --no-cache-dir -vvvv это исправить. Похоже, это не сработало, и папка в site-packages по какой-то причине называлась ~ upy (при выполнении этой команды было много выходных данных / ошибок, но я не уверен, где она сохранила бы эти сообщения).

Я попытался запустить nvcc --version , как предложено в выпуске, чтобы проверить мою версию cuda, но получил сообщение об ошибке, что nvcc была нераспознанной командой. Ранее у меня работал cupy / CUDA, но я попытался обновить cuda с помощью sudo apt install nvidia-cuda-toolkit . Теперь nvcc работает и выводит Cuda compilation tools, release 9.1, V9.1.85 . (Обратите внимание, что в /usr /local /cuda version.txt в файле указано «Версия CUDA 10.1.168».)

Я все еще получал ошибки, поэтому я попытался sudo apt-get --purge remove "*cublas*" "*cufft*" "*curand*" "*cusolver*" "*cusparse*" "*npp*" "*nvjpeg*" "cuda*" "nsight*" и conda uninstall cupy удалить файлы, чтобы начать заново, но затем я узнал о --revisions аргументе для conda. Теперь я пытаюсь вернуться к версии 11, но получаю следующий результат:

 PackagesNotFoundError: The following packages are missing from the target environment:
  - conda-forge/linux-64::gnutls==3.6.13=h79a8f9a_0
  - conda-forge/linux-64::openh264==2.1.1=h8b12597_0
  - anaconda/linux-64::cupti==10.1.168=0
  - conda-forge/linux-64::openssl==1.1.1g=h516909a_0
  - anaconda/linux-64::cudnn==7.6.5=cuda10.1_0
  - anaconda/linux-64::tensorflow==2.2.0=gpu_py37h1a511ff_0
  - conda-forge/linux-64::ca-certificates==2020.6.20=hecda079_0
  - conda-forge/linux-64::conda==4.8.3=py37hc8dfbb8_1
  - anaconda/linux-64::tensorflow-base==2.2.0=gpu_py37h8a81be8_0
  - conda-forge/linux-64::nettle==3.4.1=h1bed415_1002
  - anaconda/linux-64::cupy==6.0.0=py37hc0ce245_0
  - anaconda/linux-64::cudatoolkit==10.1.243=h6bb024c_0
  - anaconda/linux-64::_tflow_select==2.1.0=gpu
  - conda-forge/linux-64::lame==3.100=h14c3975_1001
  

Прежде чем я продолжу, есть какие-либо предложения о том, как я должен это исправить? Теперь программа обновления программного обеспечения выдает мне сообщение об ошибке, в котором говорится, что система пакетов неисправна.

 Check if you are using third party repositories. If so disable them, since they are a common source of problems.
Furthermore run the following command in a Terminal: apt-get install -f
Transaction failed: The package system is broken, with the rest of the message as follows:
 The following packages have unmet dependencies:

nvidia-cuda-toolkit: Depends: nvidia-profiler (= 9.1.85-3ubuntu1) but 9.1.85-3ubuntu1 is installed
                     Depends: nvidia-cuda-dev (= 9.1.85-3ubuntu1) but it is not installed
                     Depends: opencl-dev but it is a virtual package
                     Depends: libgcc1 (>= 1:3.0) but 1:8.4.0-1ubuntu1~18.04 is installed

  

Поскольку я не документировал каждый шаг по мере его возникновения, вот список команд, которые я запустил, пытаясь исправить эту проблему, на случай, если это полезно или более показательно, чем то, что я упомянул выше:

   485  pip list
  486  pip freeze | grep cupy
  487  nvcc --version
  488  conda update cupy
  489  conda install numba cudatoolkit pyculib
  490  conda update cupy
  491  uname -a
  492  lspci | grep -i nvidia
  493  uname -m amp;amp; cat /etc/*release
  494  gcc --version
  495  uname -r
  496  cat /var/lib/apt/lists/*cuda*Packages | grep "Package:"  
  497  pip --update cupy
  498  pip install cupy --upgrade
  499  pip install cupy --no-cache-dir -vvvv
  500  pip install cupy
  501  nvcc --version
  502  sudo apt install nvidia-cuda-toolkit
  503  nvcc --version
  504  conda install -c conda-forge cupy
  505  pip freeze
  506  sudo apt-get --purge remove "*cublas*" "*cufft*" "*curand*"  "*cusolver*" "*cusparse*" "*npp*" "*nvjpeg*" "cuda*" "nsight*"
  507  apt-get install -f
  508  sudo apt-get install -f
  509  conda uninstall cupy
  510  conda list
  511  conda list --revisions
  512  conda env list
  513  conda install --revision 11
  514  conda list --revisions
  515  conda install --revision 13
  

Исправлено путем удаления CUDA и cupy с последующей переустановкой.

Я выполнил шаги по удалению для CUDA, перечисленные в конце их инструкций по установке, наряду с некоторыми другими командами очистки из другого поста (я думаю, это был sudo apt-get --purge remove "*nvidia*" ). Я удалил папки ~ upy и ~ upy-6.0.0-py3.7.egg-info, которые были созданы ранее. Затем я снова прошел все инструкции по установке для CUDA и использовал conda forge для установки cudatoolkit и cupy. Выполнение рекомендуемых инструкций cupy на их сайте у меня не сработало, это привело к очень длительной ошибке после неудачной сборки wheel. Успешными командами были:

 conda install -c nvidia cudatoolkit
conda install -c conda-forge cupy
  

Комментарии:

1. Можете ли вы поделиться содержимым среды? Вы пробовали все это в новых средах?

Ответ №1:

Для меня

 conda install -c conda-forge cupy
  

понижен рейтинг cudatoolkit, установленного на предыдущем шаге, и до несуществующей версии cuda тоже.

Комментарии:

1. Это то, что он написал в конце вопроса…