Я хотел бы знать, какие параметры внешнего графического процессора (eGPU) доступны для macOS в 2017 году с MacBook Pro конца 2016 года.
Я провел свое исследование, однако в Интернете я нашел много запутанной информации. Некоторые говорят, что это может работать, но для этого требуется Windows (двойная загрузка). Другие говорят, что это может работать только для старых видеокарт, поскольку CUDA не поддерживается для новых видеокарт (GTX 1080). В идеале я хотел бы запустить 1080 GTX от NVIDIA. Моя единственная цель — использовать с ним Keras и TensorFlow. Тем не менее, я не знаю всех вещей, которые важны для того, чтобы заставить его работать. Поэтому мой вопрос: возможно ли использовать TensorFlow с CUDA и eGPU на позднем MacBook Pro 2016 (15 дюймов)? Я хочу использовать графическую карту в macOS (с поздним MacBook Pro 15 дюймов) в качестве eGPU (нет раздел boot/Windows/Linux).
Примечание: я видел, как пользователи раньше использовали eGPU на MacBook (Razor Core, AKiTiO Node), но никогда в сочетании с CUDA и машинным обучением (или 1080 GTX, если уж на то пошло). Вместо этого люди предлагали арендовать место на сервере или использовать Windows (улучшенная поддержка видеокарты) или даже собрать новый ПК по той же цене, которая позволяет использовать eGPU на Mac. (Я не предпочитаю этот вариант.)
Наконец-то я смог установить Nvidia Titan XP + MacBook Pro + Akitio Node + Tensorflow + Keras
Я написал суть процедуры, надеюсь, это поможет
https://gist.github.com/jganzabal/8e59e3b0f59642dd0b5f2e4de03c7687
Вот что я сделал:
Эта конфигурация работала для меня, надеюсь, что это поможет
Он основан на: https://becominghuman.ai/deep-learning-gaming-build-with-nvidia-titan-xp-and-macbook-pro-with-thunderbolt2-5ceee7167f8b
и далее: https://stackoverflow.com/questions/44744737/tensorflow-mac-os-gpu-support
Когда ваш Mac перезагрузится, запустите эту команду в Терминале:
cd ~/Desktop; git clone https://github.com/goalque/automate-eGPU.git
chmod +x ~/Desktop/automate-eGPU/automate-eGPU.sh
sudo ~/Desktop/automate-eGPU/./automate-eGPU.sh
Отключите eGPU от Mac и перезапустите. Это важно, если вы не отключили eGPU, после перезапуска у вас может появиться черный экран.
Когда ваш Mac перезагрузится, откройте терминал и выполните эту команду:
sudo ~/Desktop/automate-eGPU/./automate-eGPU.sh -a
На данный момент Keras 2.08 нуждается в tensorflow 1.0.0. Tensorflow-gpu 1.0.0 нуждается в CUDA 8.0, а cuDNN v5.1 — это то, что мне помогло. Я пробовал другие комбинации, но, похоже, они не работают
Установить переменные окружения
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
(Если ваш bash_profile не существует, создайте его. Это выполняется каждый раз, когда вы открываете окно терминала)
Скопируйте файлы cuDNN в CUDA
cd ~/Downloads/cuda
sudo cp include/* /usr/local/cuda/include/
sudo cp lib/* /usr/local/cuda/lib/
Создайте среду и установите тензорный поток
conda create -n egpu python=3
source activate egpu
pip install tensorflow-gpu==1.0.0
Убедитесь, что это работает
Запустите следующий скрипт:
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))
Установите Keras в среду и установите тензорный поток в качестве бэкэнда:
pip install --upgrade --no-deps keras # Need no-deps flag to prevent from installing tensorflow dependency
KERAS_BACKEND=tensorflow python -c "from keras import backend"
Вывод:
Using TensorFlow backend.
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.8.0.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.5.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.8.0.dylib locally
I tensorflow/stream_executor/dso_loader.cc:126] Couldn't open CUDA library libcuda.1.dylib. LD_LIBRARY_PATH: /usr/local/cuda/lib:/usr/local/cuda:/usr/local/cuda/extras/CUPTI/lib
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.8.0.dylib locally
Мне удалось заставить NVIDIA GTX 1080 Ti работать с Akitio Node на моем iMac (конец 2013 г.). Я использую адаптер Thunderbolt 2> 3, хотя на новых компьютерах Mac вы можете напрямую использовать более быстрый TB3.
Существуют различные настройки eGPU, описанные на eGPU.io, и вы можете найти ту, которая точно описывает ваш компьютер/корпус/карту. Эти учебные пособия в основном предназначены для ускорения отображения с помощью eGPU, хотя для обучения NN вам, очевидно, не нужно выполнять все шаги.
Вот примерно что я сделал:
/usr/local/cuda
включены вместе с остальными вашими библиотеками CUDA.pip install tensorflow-gpu
, у меня не было ошибок установки, но я получил segfault при запросе TensorFlow в Python. Оказывается, есть некоторые переменные среды, которые необходимо установить (немного иначе, чем предлагает установщик CUDA), которые были описаны в комментарии к проблеме GitHub .Из меню iStat я могу убедиться, что мой внешний графический процессор действительно используется во время обучения. Однако эта установка TensorFlow не работала с Jupyter, но, надеюсь, для этого есть обходной путь.
Я мало использовал эту настройку, поэтому не уверен в повышении производительности (или ограничениях пропускной способности), но eGPU + TensorFlow/CUDA, безусловно, теперь возможны, поскольку NVIDIA начала выпускать соответствующие драйверы для macOS.
Поддержка eGPU в macOS — сложная тема, но я сделаю все возможное, чтобы ответить на ваш вопрос.
Начнем с видеокарт! Ради экономии времени и поскольку мы говорим о CUDA, мы остановимся на картах Nvidia. Любая видеокарта будет работать с соответствующими драйверами в Windows. Однако Apple официально поддерживает только несколько видеокарт Nvidia, в основном очень старые. Однако графические драйверы Nvidia на самом деле работают почти со всеми картами Nvidia GeForce и Quadro, за одним большим исключением. Карты GTX 10xx НЕ РАБОТАЮТ. В любой операционной системе Mac. Период. Драйверы Nvidia не поддерживают эту карту. Если вам нужна мощность, обратите внимание на GTX 980Ti или Titan X (многие хорошие карты Quadro также подойдут).
Теперь, когда мы это рассмотрели, давайте перейдем к корпусам eGPU. Я собираюсь предположить, поскольку вы упомянули конкретно eGPU, что вы заложили в бюджет фактический корпус eGPU (давайте использовать узел AKiTiO в качестве примера) вместо шасси расширения PCIe с внешним источником питания, поскольку это не так. отличная идея.
Итак, теперь у нас есть видеокарта (GTX 980Ti) в корпусе eGPU (узел AKiTiO), и мы хотим заставить ее работать. Что ж, это легче сказать, чем сделать. К концу 2016 года я немного изучил eGPU, и полученная информация была относительно запутанной, поэтому, если у кого-то есть какие-либо комментарии или исправления, пожалуйста, дайте мне знать. Насколько я понимаю, чтобы использовать мощность eGPU, вам нужно подключить внешний монитор к eGPU. Я не верю, что вы можете запустить eGPU без внешнего монитора в macOS. Вы также не увидите загрузочный экран Apple на мониторе, подключенном к eGPU (если только вы не купите флэш-карту у MacVidCards), но тогда вы сможете использовать eGPU для управления графикой.
Предполагая, что вы сделаете все это успешно, у вас должна быть очень мощная графическая система с поддержкой CUDA.
Недавно я сделал это с OSX 10.13.6 для pytorch и fastai. Смотрите мою суть здесь: https://gist.github.com/dandanwei/18708e7bd5fd2b227f86bca668343093
Если вы используете macOS 10.13.3, перейдите по этой ссылке . Он охватывает все, от настройки eGPU до компиляции TensorFlow.
брендон-ай