Некоторые люди всегда устанавливают последнюю версию ОС. Я являюсь одним из них. Я с радостью установил Ubuntu 17.04 и застрял на компиляции Tensorflow на 1 неделю.

Вкратце: основная проблема заключается в том, что версия gcc несовместима с CUDA 8.0. На данный момент CUDA 8.0 поддерживает gcc только до версии 5.3.1. Однако в Ubuntu 17.04 только 5.4. Установка gcc-4.9 решила проблему.

Вот последовательность моей установки:

  1. Установите gcc-4.9 и g++4.9.
  2. Создайте мягкую ссылку gcc-4.9 как gcc на своем пути (обычно /usr/bin).
  3. Загрузите и установите файл запуска CUDA. Возникли проблемы с файлом Installutils.pm, и они были решены с помощью решения отсюда.
  4. Загрузите и установите патч CUDA (если есть)
  5. Загрузите cudnn и извлеките файлы include и lib в папку установки CUDA.
  6. Установите среду для LD_LIBRARY_PATH и CUDA_HOME в .bashrc или .bash_profile (или .zshrc для моей машины).
  7. Загрузите распространяемые исходные файлы bazel и скомпилируйте их.
  8. Добавьте мягкую ссылку на исполняемый файл bazel на свой путь.
  9. Клонируйте Tensorflow и проверьте версию, которую вы хотите использовать (на данный момент 1.3.2)
  10. Попробуйте скомпилировать его и посмотреть, есть ли какие-либо сообщения об ошибках. Моя установка давала некоторые отсутствующие ошибки библиотеки, и я исправил их, добавив дополнительные пути в LD_LIBRARY_PATH (cuda/extras/CUPTI/lib64 для моей машины)
  11. Скомпилируй и иди обедать.
  12. Вернитесь с обеда, сгенерируйте пакет pip и установите его.
  13. Установите драйвер nvidia и nvidia-current-dev. Это установит gcc-6 как часть зависимостей. Сбросьте ссылку gcc на gcc-4.9 в папке /usr/bin.
  14. Смените драйвер видеокарты на драйвер nvidia.
  15. Перезагрузите компьютер.
  16. Добавлена ​​новая установка nvidia lib в LD_LIBRARY_PATH (/usr/lib/nvidia-384 для моей машины)
  17. Tensorflow готов для вас прямо сейчас!

Все зависит от gcc. Если вы используете неправильную версию, вам придется удалить все и начать с нуля снова. Строго соблюдайте требования из Руководства по установке NVIDIA. CUDA очень чувствительна к версиям gcc. Любые незначительные обновления могут нарушить компиляцию CUDA.

p.s. Скомпилированная версия Tensorflow на 20% быстрее, чем пакет pip.