Поддержка Mac OS gpu
Согласно
https://www.tensorflow.org/install/install_mac Примечание. Начиная с версии 1.2, TensorFlow больше не поддерживает GPU в Mac OS X. Поддержка GPU для OS X больше не предоставляется.
Однако, я хотел бы запустить настройку e-gpu, например akitio node, с помощью 1080 ti через thunderbolt 3.
Какие шаги необходимы для работы этой настройки?
До сих пор я знаю, что
. Что еще нужно для работы CUDA/tensorflow?
Ответы
Ответ 1
Я написал небольшой учебник по компиляции TensorFlow 1.2 с поддержкой GPU на macOS. Я думаю, что обычно копировать соответствующие части в SO, поэтому вот оно:
- Если вы ранее не использовали настройку TensorFlow-GPU, я предлагаю сначала настроить все с помощью TensorFlow 1.0 или 1.1, где вы все равно можете сделать
pip install tensorflow-gpu
. Как только вы начнете работать, настройка CUDA также будет работать, если вы компилируете TensorFlow. Если у вас есть внешний графический процессор, ответ YellowPillow (или мой) может помочь вам настроить настройки.
- Следуйте официальному руководству Установка TensorFlow из источников", но, очевидно, замените
git checkout r1.0
на git checkout r1.2
.
При выполнении ./configure
обратите внимание на путь библиотеки Python: он иногда предлагает неверный. В большинстве случаев я выбрал параметры по умолчанию, за исключением: пути библиотеки Python, поддержки CUDA и вычислительной способности. Не используйте Clang в качестве компилятора CUDA: это приведет к ошибке "Непоследовательная конфигурация кросс-стула", никакой инструментальной привязки, соответствующей "local_darwin", найденной для cpu "darwin". ". Используя /usr/bin/gcc
, поскольку ваш компилятор фактически использует Clang, который поставляется с macOS/XCode. Ниже приведена моя полная конфигурация.
- TensorFlow 1.2 ожидает библиотеку C под названием OpenMP, которая недоступна в текущем Apple Clang. Он должен ускорить многопоточное TensorFlow на многопроцессорных машинах, но он также будет компилироваться без него. Мы могли бы попытаться построить TensorFlow с gcc 4 (который я не справился) или просто удалить строку, которая включает OpenMP из файла сборки. В моем случае я прокомментировал строку 98
tensorflow/third_party/gpus/cuda/BUILD.tpl
, которая contained linkopts = ["-lgomp"]
(но местоположение строки, очевидно, может измениться). Некоторые люди имели проблемы с zmuldefs, но я предполагаю, что это было с более ранними версиями; спасибо udnaan за указание, что его ОК, чтобы прокомментировать эти строки.
- У меня возникли проблемы с последней базой 0.5.3, поэтому я вернулся к использованию 0.4.5, который я уже установил. Но некоторые обсуждения в проблеме github, упомянутые в bazel 0.5.2, также не имели проблемы.
- Теперь создайте с помощью bazel и завершите установку, как указано в официальном руководстве по установке. На моем iMac 3,2 ГГц это заняло около 37 минут.
Использование пути библиотеки python:/Users/m/code/3rd/conda/envs/p3gpu/lib/python3.6/site-packages
Вы хотите создать TensorFlow с поддержкой MKL? [y/N] N
Поддержка MKL не будет включена для TensorFlow
Пожалуйста, укажите флаги оптимизации для использования во время компиляции, если указан параметр bazel "--config = opt" [По умолчанию - -march = native]:
Вы хотите создать TensorFlow с поддержкой Google Cloud Platform? [Y/N]
Для TensorFlow не поддерживается поддержка Google Cloud Platform
Вы хотите создать TensorFlow с поддержкой файловой системы Hadoop? [Y/N]
Нет поддержки файловой системы Hadoop для TensorFlow
Вы хотите построить TensorFlow с помощью компилятора XLA "точно в срок" (экспериментальный)? [Y/N]
Нет поддержки XLA для TensorFlow
Вы хотите создать TensorFlow с поддержкой VERBS? [Y/N]
Нет поддержки VERBS для TensorFlow
Вы хотите создать TensorFlow с поддержкой OpenCL? [Y/N]
Не поддерживается поддержка OpenCL для TensorFlow
Вы хотите создать TensorFlow с поддержкой CUDA? [y/N] y
Поддержка CUDA будет включена для TensorFlow
Вы хотите использовать clang как компилятор CUDA? [Y/N]
nvcc будет использоваться как компилятор CUDA
Пожалуйста, укажите версию CUDA SDK, которую вы хотите использовать, например. 7,0. [Оставьте пустым, чтобы использовать системное значение по умолчанию]:
Укажите, где установлен набор инструментов CUDA. Дополнительную информацию см. В README.md. [По умолчанию:/usr/local/cuda]:
Укажите, какой gcc должен использоваться nvcc в качестве компилятора хоста. [По умолчанию:/usr/bin/gcc]:
Пожалуйста, укажите версию cuDNN, которую вы хотите использовать. [Оставьте пустым, чтобы использовать системное значение по умолчанию]:
Укажите, где установлена библиотека cuDNN. Дополнительную информацию см. В README.md. [По умолчанию:/usr/local/cuda]:
Укажите список разделенных запятыми возможностей вычисления Cuda, с которыми вы хотите построить.
Вы можете найти вычислительную способность вашего устройства по адресу: https://developer.nvidia.com/cuda-gpus.
Обратите внимание, что каждая дополнительная вычислительная способность значительно увеличивает время сборки и двоичный размер.
[По умолчанию: "3.5.5.2" ]: 6.1
INFO: Запуск очистки (это может занять некоторое время). Рассмотрите возможность использования --async, если очистка занимает более нескольких минут.
Конфигурация завершена
Ответ 2
Предполагая, что вы уже установили свой поле eGPU и подключили кабель TB3 от eGPU к вашему разъему TB3:
1. Загрузите automate-eGPU script и запустите его
curl -o ~/Desktop/automate-eGPU.sh
https://raw.githubusercontent.com/goalque/automate-eGPU/master/automate-eGPU.sh
&& chmod +x ~/Desktop/automate-eGPU.sh && cd ~/Desktop && sudo
./automate-eGPU.sh
Вы можете получить сообщение об ошибке:
"Загрузитесь в раздел восстановления и введите: csrutil disable"
Все, что вам нужно сделать, это перезагрузить компьютер, и при перезапуске удерживайте нажатой клавишу cmd + R
, чтобы включить режим восстановления. Затем найдите терминал в режиме восстановления и введите:
csrutil disable
Затем перезагрузите компьютер и запустите automate-eGPU.sh
script
2: Загрузка и установка CUDA
Запустите файл cuda_8.0.61_mac.dmg
и выполните этап установки. Затем вам нужно будет установить пути.
Перейдите к своему терминалу и введите:
vim ~/.bash_profile
Или вы сохранили свои переменные окружения, а затем добавили эти три строки:
export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$CUDA_HOME/lib:$CUDA_HOME:$CUDA_HOME/extras/CUPTI/lib"
export LD_LIBRARY_PATH=$DYLD_LIBRARY_PATH
3. Загрузка и установка cuDNN
Чтобы скачать cuDNN немного сложнее, вам нужно зарегистрироваться, чтобы быть разработчиком Nvidia, а затем вы можете скачать его. Обязательно загрузите cuDNN v5.1 Library for OSX
, как и тот, который ожидает Tensorflow v1.1. Обратите внимание: мы не можем использовать Tensorflow v1.2, поскольку для Mac нет поддержки графического процессора: ((
[! [введите описание изображения здесь] [1]] [1]
Теперь вы загрузите zip файл с именем cudnn-8.0-osx-x64-v5.1.tgz
, unzip и, который создаст файл с именем cuda
и cd, используя терминал. Предполагая, что папка находится в разделе "Загрузки"
Откройте терминал и введите:
cd ~/Downloads/cuda
Теперь нам нужно скопировать файлы cuDNN
туда, где cuda
хранится так:
sudo cp include/* /usr/local/cuda/include/
sudo cp lib/* /usr/local/cuda/lib/
4. Теперь установите Tensorflow-GPU v1.1 в свою консоль /virtualenv
Для меня, поскольку я использую conda
, я создал новую среду, использующую Terminal:
conda create -n egpu python=3
source activate egpu
pip install tensorflow-gpu # should install version 1.1
5. Убедитесь, что он работает
Сначала вам нужно перезагрузить компьютер, а затем:
В терминальном типе python
и введите:
import tensorflow as tf
with tf.device('/gpu:0'):
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
with tf.Session() as sess:
print (sess.run(c))
Если у вас есть GPU, это должно запускаться без проблем, если это так, вы должны получить трассировку стека (просто кучу сообщений об ошибках), и она должна включать
Невозможно назначить устройство node "MatMul": не удалось удовлетворить явную спецификацию устройства/устройство: GPU: 0, потому что в этом процессе не регистрируются устройства, соответствующие этой спецификации.
Если нет, тогда все готово! Я только что создал мой компьютер, и он отлично работает:)
Ответ 3
Я мог бы, наконец, заставить его работать со следующей настройкой
Оборудование
Версии программного обеспечения
- macOS Sierra Version 10.12.6
- Версия драйвера GPU: 10.18.5 (378.05.05.25f01)
- Версия драйвера CUDA: 8.0.61
- cuDNN v5.1 (20 января 2017 г.), для CUDA 8.0: необходимо зарегистрироваться и скачать
- tensorflow-gpu 1.0.0
- Keras 2.0.8
Я написал суть с помощью процедуры:
https://gist.github.com/jganzabal/8e59e3b0f59642dd0b5f2e4de03c7687
Ответ 4
Вот мое решение:
Просто следуйте советам в этой ссылке, вы можете получить поддержку shadoworflow-gpu на macOS.
Или напрямую используйте *.whl файлы, прикрепленные в следующем репо
https://github.com/xlvecle/tensorflow-macOS-gpu
Ответ 5
Вот мое решение установить e-gpu на mac. Tensorflow больше не поддерживает tenorflow-gpu, поэтому есть определенно лучшие подходы к его работе:
Моя конфигурация:
- IMac 27 'конец 2012 года.
- Aktio Node
- GTX 1080 ti
- 3 Экраны: один из них подключен к GTX 1080, а другие напрямую подключены к Mac.
Преимущества установки bootcamp для Windows:
- Вы можете использовать pip для установки tenorflow-gpu.
- Хорошая поддержка GPU 1080 ti (Загружаемый драйвер дисплея)
Howto:
- Установите Windows 10 с помощью bootcamp. Не подключайте Akito node на данный момент.
- Загрузите и установите драйвер дисплея для своего gpu из страница загрузки NVIDIA
- Установить Visual Studio
- Если вы хотите использовать CUDA 9.x, вы можете установить Visual Studio 2017
- В противном случае установите Visual Studio 2015
- Установите CUDA и CuDNN
- Обратите внимание, что версия tensorflow-gpu должна соответствовать вашей Cuda и вашей версии CudNN. См. Доступные выпуски tenorflow здесь.
- После установки CUDA вы можете переместить распакованные файлы CuDNN в папку CUDA по адресу: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0. Переместите файлы lib в папку lib, файлы bin в папку bin и включенные файлы в папку include.
- Установите Python 3.5+
- Вам нужна 64-разрядная версия для установки tensorflow-gpu с pip
- Python 2.7 не будет работать.
- Установка тензорного потока с помощью pip:
Команда:
pip install tensorflow-gpu==1.5.0rc0
Проверьте свою установку
Драйвер дисплея был установлен правильно, когда вы можете подключить экран к карте GTX 1080.
Вызов C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe, чтобы проверить, доступна ли ваша видеокарта для CUDA.
Выполните следующую команду tensorflow, чтобы увидеть доступные устройства:
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
Устранение неполадок и подсказки:
- Windows хочет обновить драйвер GTX 1080. Никогда не позволяйте этому, потому что вы
не сможет снова запустить ваш компьютер. Перед входом в Windows появится черный экран с движущимися точками. Игра закончена! Используйте только драйвер дисплея из страницу загрузки NVIDIA.
- Когда вы играете, нажмите клавишу alt при запуске, чтобы переустановить окна из USB-диска bootcamp.
- Я не нашел способ загрузить режим спасения Windows из bootcamp.
Решение Ubuntu:
Я не нашел рабочего решения, но вот несколько подходов:
Кажется, что мой GTX 680 (iMac) и мой GTX 1080 ti не будут работать вместе. Ubuntu не может быть запущен после установки драйвера дисплея с помощью apt-get: Ubuntu не запускается больше. Попробуйте загрузить официальный драйвер дисплея из страница загрузки NVIDIA.
Решение OSX:
Графический процессор Tensorflow поддерживается только с использованием тензорного потока 1.1. Я попытался установить более новую версию, но не смог построить tenorflow-gpu с поддержкой cuda. Вот несколько подходов:
- Установите OSX Sierra, чтобы использовать e-gpu script. High Sierra не будет работать (13 января 2018 года). Перейдите на sierra, удалив все ваши разделы. Затем нажмите Command + R при загрузке, чтобы загрузить восстановление в Интернете. Не забудьте сначала сделать резервную копию своих данных.
- Установите e-gpu script.
- Если вам достаточно tenorflow-gpu 1.1, вы можете просто установить его через pip, иначе вам нужно построить свой пипс с помощью bazel.
Вывод:
Установка Windows проще, чем установка OSX или Ubuntu, потому что драйверы дисплея работают правильно и имеют тензорный поток и не должны строиться самостоятельно. Всегда проверяйте версию программного обеспечения, которое вы используете. Должно соответствовать точно.
Я надеюсь, что это поможет вам!
Ответ 6
От официального tensorflow веб-сайта.
Примечание. Начиная с версии 1.2, TensorFlow больше не поддерживает GPU MacOS.
Похоже, что они не будут предоставлять поддержку gpu для macOS.