Me gustaría saber cuáles son las opciones de GPU externa (eGPU) para macOS en 2017 con la MacBook Pro de finales de 2016.
Investigué, sin embargo, en Internet encuentro mucha información confusa. Algunos dicen que puede funcionar, pero requiere Windows (arranque dual). Otros dicen que solo puede funcionar para las tarjetas gráficas más antiguas ya que CUDA no es compatible con las tarjetas gráficas más nuevas (GTX 1080). Idealmente, me gustaría ejecutar el 1080 GTX de NVIDIA. Mi único propósito es usar Keras y TensorFlow con él. Sin embargo, no sé todas las cosas importantes para que funcione. Por lo tanto, mi pregunta es, ¿es posible usar TensorFlow con CUDA y eGPU en la última MacBook Pro 2016 (15 ")? Quiero usar la tarjeta gráfica en macOS (con la última MacBook Pro 15") como una eGPU (no dual- partición de arranque / Windows / Linux).
Nota al margen: he visto a usuarios que utilizan eGPU en macbook's antes (Razor Core, AKiTiO Node), pero nunca en combinación con CUDA y Machine Learning (o el 1080 GTX para el caso). La gente sugirió alquilar espacio en el servidor, o usar Windows (mejor soporte de tarjeta gráfica) o incluso construir una nueva PC por el mismo precio que le permite usar una eGPU en Mac. (No prefiero esa opción).
Respuestas:
Finalmente pude instalar Nvidia Titan XP + MacBook Pro + Akitio Node + Tensorflow + Keras
Escribí una idea general del procedimiento, espero que ayude
https://gist.github.com/jganzabal/8e59e3b0f59642dd0b5f2e4de03c7687
Aquí esta lo que hice:
Esta configuración funcionó para mí, espero que ayude
Se basa en: https://becominghuman.ai/deep-learning-gaming-build-with-nvidia-titan-xp-and-macbook-pro-with-thunderbolt2-5ceee7167f8b
y en: https://stackoverflow.com/questions/44744737/tensorflow-mac-os-gpu-support
Hardware
Versiones de software
Procedimiento:
Instalar controlador de GPU
Cuando reinicie su Mac, ejecute este comando en la Terminal:
Desenchufe su eGPU de su Mac y reinicie. Esto es importante si no desconectó su eGPU, puede terminar con una pantalla en negro después de reiniciar.
Cuando reinicie su Mac, abra la Terminal y ejecute este comando:
Instale CUDA, cuDNN, Tensorflow y Keras
En este momento, Keras 2.08 necesita tensorflow 1.0.0. Tensorflow-gpu 1.0.0 necesita CUDA 8.0 y cuDNN v5.1 es el que me funcionó. Intenté otras combinaciones pero no parece funcionar.
Establecer variables env
(Si su bash_profile no existe, créelo. Esto se ejecuta cada vez que abre una ventana de terminal)
Copiar archivos cuDNN a CUDA
Crear entorno e instalar tensorflow
Verifica que funciona
Ejecute el siguiente script:
Instale Keras en el entorno y configure el flujo de tensor como backend:
Salida:
fuente
Pude obtener una NVIDIA GTX 1080 Ti trabajando en el Nodo Akitio en mi iMac (finales de 2013). Estoy usando un adaptador Thunderbolt 2> 3, aunque en Macs más nuevos puedes usar el TB3 más rápido directamente.
Hay varias configuraciones de eGPU descritas en eGPU.io, y puede encontrar una que describa su computadora / gabinete / tarjeta con precisión. Estos tutoriales son principalmente para acelerar una pantalla con una eGPU, aunque para entrenar NNs obviamente no necesitas seguir todos los pasos.
Esto es más o menos lo que hice:
/usr/local/cuda
con el resto de sus bibliotecas CUDA e incluirlos.pip install tensorflow-gpu
, no tuve errores de instalación, pero obtuve un defecto cuando requiero TensorFlow en Python. Resulta que hay algunas variables de entorno que deben establecerse (un poco diferente a lo que sugiere el instalador de CUDA), que se describieron en un comentario de problema de GitHub .Desde los menús de iStat puedo verificar que mi GPU externa se usa durante el entrenamiento. Sin embargo, esta instalación de TensorFlow no funcionó con Jupyter, pero espero que haya una solución alternativa para eso.
No he usado mucho esta configuración, así que no estoy seguro sobre el aumento del rendimiento (o las limitaciones de ancho de banda), pero eGPU + TensorFlow / CUDA ciertamente es posible ahora, ya que NVIDIA comenzó a lanzar los controladores adecuados para macOS.
fuente
El soporte de eGPU en macOS es un tema difícil, pero haré todo lo posible para responder a su pregunta.
¡Comencemos con las tarjetas gráficas! Por el bien del tiempo, y porque estamos hablando de CUDA, nos quedaremos con las tarjetas de Nvidia. Cualquier tarjeta gráfica funcionará con los controladores adecuados en Windows. Sin embargo, Apple solo admite oficialmente algunas tarjetas gráficas Nvidia, principalmente las muy antiguas. Sin embargo, los controladores gráficos de Nvidia realmente funcionan en casi todas las tarjetas GeForce y Quadro de Nvidia, con una gran excepción. Las tarjetas GTX 10xx NO FUNCIONARÁN. En cualquier sistema operativo Mac. Período. Los controladores de Nvidia no son compatibles con esta tarjeta. Si buscas potencia, querrás mirar la GTX 980Ti o Titan X (muchas buenas tarjetas Quadro también funcionarían bien).
Ahora que tenemos eso cubierto, pasemos a los gabinetes de eGPU. Asumiré, porque mencionó específicamente eGPUs, que ha presupuestado para un gabinete de eGPU real (usemos el Nodo AKiTiO como ejemplo), en lugar de un chasis de expansión PCIe con una fuente de alimentación externa, ya que esto no es Una gran idea.
Así que ahora tenemos una tarjeta gráfica (GTX 980Ti) en un gabinete eGPU (Nodo AKiTiO) y queremos que funcione. Bueno, eso es más fácil decirlo que hacerlo. Investigué un poco sobre eGPU hacia fines de 2016, y la información que obtuve fue relativamente confusa, así que si alguien tiene algún comentario o corrección, por favor hágamelo saber. Por lo que entiendo, para utilizar la potencia de la eGPU, debe conectar un monitor externo a la eGPU. No creo que pueda ejecutar eGPU sin un monitor externo en macOS. Tampoco verá la pantalla de inicio de Apple en el monitor conectado a eGPU (a menos que compre una tarjeta flasheada de MacVidCards), pero debería poder usar la eGPU para controlar sus gráficos.
Suponiendo que hace todo esto con éxito, debe tener una potencia de gráficos habilitada para CUDA de muy alta potencia.
fuente
Recientemente lo hice con OSX 10.13.6 para pytorch y fastai. Vea mi esencia aquí: https://gist.github.com/dandanwei/18708e7bd5fd2b227f86bca668343093
fuente
Si está utilizando macOS 10.13.3, consulte este enlace . Cubre todo, desde la configuración de eGPU hasta la compilación de TensorFlow.
fuente