Поддержка 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.