Я пытаюсь работать с tensorflow на Ubuntu 18.04 с помощью Глубокого обучения AMI из Amazon, который имеет все установленные вириона CUDA. Однако не настолько легко сделать tensorflow 1. X работ с GPU, потому что некоторые проблемы с $PATH. Когда никакие меры не приняты, эта ошибка периода выполнения происходит при использовании TF 1. X:
2020-03-25 16:31:58.162200: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcudart.so.10.0'; dlerror: libcudart.so.10.0: cannot open shared object file: No such file or directory
Но это работает правильно на TF 2. X
Таким образом, после того, чтобы читать некоторые сообщения как это или это, я решил добавить, что это управляет к 1) ~/.bashrc
и позже к 2) ~/.profile
:
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda-10.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH"
export PATH="/usr/local/cuda-10.0/bin:$PATH"
но без эффекта (я действительно перезапускал машину или использование source ~/.bashrc
команда).
Однако, если я добавляю эти переменные к /etc/environment
затем tensorflow находит эти переменные и работы отлично! Проблема, что она полностью повреждает машину как, я принимаю, она переопределяет все другой $PATH
и LD_LIBRARY_PATH
переменные. Моя теория, это потому что /etc/environment
имеет самый высокий приоритет переменная LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda-10.0/extras/CUPTI/lib64
точно что TF 1. X требует.
Вопрос:
Как я добавляю эту переменную правильно, таким образом, TF 1. X находит, что это - файлы CUDA-10.0 и TF 2. X находит его выше версии CUDA?
Ответ на мой собственный вопрос заключается здесь: установка LD_LIBRARY_PATH для CUDA и его этого сообщения, но не забывает делать sudo ldconfig