¿Qué componentes de hardware (CPU, RAM, GC, etc.) se necesitan para que una PC / computadora doméstica de aprendizaje automático / aprendizaje profundo funcione rápidamente?

Si está haciendo algo que no sea aprendizaje profundo, cualquier computadora normal estará bien y es posible que ni siquiera necesite una GPU.

De lo contrario, para una tarea estándar como entrenar una red neuronal profunda (por ejemplo, Inception-Resnet-v2), estas son las piezas más importantes. Supongo que estás construyendo una PC desde cero.

  1. GPU con mucha memoria. P100 si tiene un centro de datos o la serie GeForce 10 (por ejemplo, GTX 1080 Ti, GTX1080). La serie GeForce 900 (por ejemplo, GTX 970) también es bastante adecuada para casos de uso razonable.
  2. Una CPU rápida, por ejemplo, Intel i7
  3. Cantidad razonable de RAM. Aproximadamente 8 GB deberían ser suficientes, siempre puede agregar más fácilmente a una placa base.
  4. Si overclockea su GPU para obtener un rendimiento adicional, no escatime en refrigeración y fuente de alimentación. Es posible que desee considerar un chasis al aire libre o una configuración más elegante refrigerada por líquido.
  5. Mucha gente dice que tener un SSD es importante, para una E / S rápida con sus grandes conjuntos de datos, pero no es realmente necesario si tiene datos almacenados de manera eficiente (por ejemplo, leer archivos TFRecord en TensorFlow, que están optimizados para secuencial acceso de lectura). Si está utilizando TensorFlow, también puede utilizar colas de captación previa para almacenar sus datos en la RAM con un hilo de CPU antes de que necesite alimentar la GPU. Esto debería lograr el mismo costo amortizado (¡tal vez más rápido!) Que leer directamente desde SSD con Python.

Esto equivale aproximadamente a un costo de ~ $ 1300, que es bastante considerable si solo está entrando en Deep Learning. Considere hacer su investigación inicial completamente en la CPU (más que adecuada para pequeños conjuntos de datos y tareas simples de RL), o alquilar algunas instancias de GPU AWS / Google Cloud para ver si es algo en lo que realmente quiera invertir a largo plazo.

Esto es lo que preferiría:

1. Placa base: obtenga una placa base (compatible con PCIe 3.0) que admita conectores de alimentación PCIe (8 + 6 pines) con un solo cable. Esto le permitirá agregar más GPU (4).

2. GPU: depende de cuántas GPU realmente necesites según el tipo de proyecto en el que estés trabajando. Yo diría que cuatro GPU es el máximo que uno necesitará. Cualquier cosa sobre eso es solo por rendimiento. Cada GPU agrega una cierta sobrecarga y su sistema tiene que decidir qué GPU usar para cada tarea.

3. RAM: el doble de la cantidad total de memoria de la GPU.

4. Almacenamiento: SSD es una buena opción, pero no un requisito absoluto. Obtenga algo más grande para almacenar su conjunto de datos. Si usa HDD (mecánico), asegúrese de mantener mucho espacio vacío. RAID5 será bueno si tiene 3 HDD del mismo tamaño.

5. Chasis: cuanto más grande, mejor. Asegúrese de que tenga suficientes ranuras PCIe para admitir las GPU y otras tarjetas que pueda instalar. 1 GPU = 2 ranuras PCIe.

6. CPU: debe tener al menos tantos núcleos como sus GPU. No es necesario ser superrápido. Las CPU Intel tienen 2 subprocesos para cada núcleo normalmente.

7. Enfriamiento: importante ya que afecta el rendimiento de la máquina. El calor y el ruido afectan mucho. No desea que sus GPU se quemen. Puede optar por la refrigeración por aire, que es agradable y fácil de instalar pero ruidosa. O elija el enfriado por agua, que es costoso y requiere un trabajo duro para instalarlo. El sistema refrigerado por agua es mejor ya que mantendrá todos los componentes fríos y hará menos ruido.

8. Fuente de alimentación: alta eficiencia. Para un sistema de 4 GPU, necesitará entre 1400 y 1600 vatios.

Una CPU i7–6850K recién abierta con los 40 carriles PCI-e que necesita para una configuración de GPU 4x.

Primero, aquí está mi respuesta a ¿Qué computadora portátil / computadora debo comprar para el aprendizaje profundo? eso describe algunas de las consideraciones para una configuración de GPU 4x. Si está buscando componentes, estos son los que utilizamos en nuestro DevBox de aprendizaje profundo de Lambda:

  1. CPU: Intel 3.8 GHz Core i7-6850K
  2. GPU: 4 x NVIDIA PASCAL GTX 1080Tis 11 GB
  3. Memoria del sistema – 64 GB de memoria del sistema DDR4-2666
  4. Almacenamiento: 1 TB SATA SSD para OS + 3 TB 7200 rpm HDD para almacenamiento de datos a largo plazo

Tenga en cuenta que el i7–6850K tiene 40 carriles PCI-e, a diferencia de los 28 carriles PCI-e en el 6800K que algunas personas han recomendado. Si le importa el ancho de banda de datos y tiene 4 GPU, querrá asegurarse de tener una CPU de 40 líneas PCI-e. De lo contrario, una de sus GPU terminará teniendo que funcionar a solo 4x en lugar de 16x en el bus PCI-e.

Ahora, en su situación, podría estar bien con una o dos configuraciones de GPU. En ese caso, una CPU de 28 carriles le permitirá ejecutar una GPU @ 16x y una GPU @ 8x. Si desea ejecutar ambos a 16x, necesitará una CPU de 40 carriles como la i7–6850K que se muestra arriba.

Lambda Quad

Ankit dio una descripción bastante buena de una configuración de hardware de alta gama que puede implementar. Si no tiene el dinero y el hardware para todo eso, al menos lo que quiere hacer es obtener una buena tarjeta de video. Las buenas tarjetas de video tienen docenas, o incluso cientos, de Unidades Lógicas Airthméticas (núcleos “ALU”, NVidia llama a estas CUDA) que usan para el sombreado de píxeles / vértices y varias aritméticas 3D. Sucede que estas ALU son bastante buenas para manejar tareas de aprendizaje profundo que requieren mucha matemática de punto flotante y vectorial.

En segundo lugar, desea asegurarse de que las bibliotecas NN reales que está utilizando aprovechen la GPU. La mayoría de las bibliotecas de aprendizaje profundo ya están creadas para hacer esto, pero debe verificar la documentación antes de comenzar. Es posible que estén configurados para ejecutarse en la CPU de manera predeterminada, o puede que necesite personalizar la configuración de su GPU. Algunas bibliotecas están diseñadas específicamente para CUDA y podrían no funcionar bien, o no funcionar en absoluto, en proveedores que no sean NVidia. Antorcha, por ejemplo, tiene optimizaciones CUDA integradas y activadas de forma predeterminada.

En realidad, nuestra empresa está trabajando en una arquitectura de hardware neuromórfico que sería más adecuada para el aprendizaje profundo que las GPU o FPGA, y también sería capaz de computación de uso general. Sin embargo, esta tecnología todavía está a varios años de distancia del comercio minorista.

Core i5-6600K 3.5GHz Quad-Core, GeForce GTX 1070 8GB Founders Edition, S340 (Negro) ATX Mid Tower

Rango medio

Core i7-6950X 3.0GHz 10-Core, GeForce GTX 1080 8GB Founders Edition, 900D ATX Full Tower

Mejor

Tener una GPU es bueno. Aunque esto no es necesario y el aprendizaje profundo se puede hacer en una CPU, se quedará esperando un tiempo.

El siguiente enlace está un poco anticuado, sin embargo, se recomiendan las tarjetas nvidia 1080, si puede pagarlas, y el número a buscar es el ancho de banda de la memoria.

¿Cuál es la mejor GPU para el aprendizaje profundo?

Personalmente, estoy usando una MacBookPro 2012 con una GPU nvidia (geforce 650M). Esto funciona lo suficientemente bien como para probar y construir software básico. Puedo procesar un algoritmo MNIST básico en minutos. Si alguna vez necesito algo mucho más rápido, externalizaría a Amazon antes de construir mi propia máquina en casa.

More Interesting

¿El aprendizaje automático está reemplazando la teoría de control tradicional?

¿Qué es una capa de disminución de resolución en la red neuronal convolucional (CNN)?

Estoy tratando de evaluar el rendimiento del modelo (regresión). En la literatura, algunos usan RMSE y otros usan correlación. ¿Hay alguna diferencia entre ambos enfoques?

¿Qué significa que las funciones de activación (como ReLU) en NN inducen la escasez en las unidades ocultas?

¿Cuáles son algunas técnicas de compresión que usan redes neuronales recurrentes?

¿Cuál es su proceso para diseñar funciones de pérdida para problemas de Machine Learning?

¿Tiene sentido emplear Bayes ingenuos multinomiales con n-gramos? Pregunto porque supone que cada posición está ocupada por un término, por lo que los n-gramos no parecen encajar naturalmente en el modelo.

Cómo implementar la detección y clasificación de frutas de manzana usando MATLAB en una aplicación antroidea

¿El análisis de sentimientos basado en léxico se considera un método no supervisado?

¿Hay alguna API o aplicaciones web como Watson?

Yoshua Bengio: ¿Será el aprendizaje profundo un paso hacia la IA consciente?

¿Cuál es una buena manera de entender las dos fórmulas con respecto a este modelo gráfico de probabilidad dado?

¿Qué tipos de imágenes se usan generalmente para la clasificación del uso del suelo?

Como cuerpo técnico, ¿cómo se concilia el hecho de estar basado en datos, abrazar la diversidad de la fuerza laboral y contratar a los mejores?

¿Cómo difiere un sistema de clasificación artificial de una clasificación de sistema natural?