Andrés Torrubia llama a su maquinón "Osado". El nombre no le va mal, porque esta bestia cuenta con nada menos que seis tarjetas gráficas NVIDIA GeForce RTX 3090, algo que convierte el equipo en pequeño supercomputador con una capacidad de cálculo brutal.
Lo primero que uno podría pensar es que usa esas seis gráficas para minar criptodivisas, pero en realidad aprovecha ese PC para un ámbito muy especial: la investigación en inteligencia artificial y en aprendizaje profundo. Esta es la historia de la creación de ese "monstruo".
El aprendizaje profundo es muy glotón
Andrés Torrubia (@antor) es un viejo conocido de esta casa: le hemos entrevistado y ha colaborado en varios temas relacionados con el ámbito de la inteligencia artificial. Fue ademáss invitado especial de dos de los episodios de Captcha (1x03 y 2x04), el vídeo/podcast que creamos en Xataka en 2018.
Andrés, ingeniero de telecomunicaciones de formación, se autodefine como "Bruce Wayne de día (cofundador del Instituto de Inteligencia Artificial (IIA) y de Medbravo) y Batman del aprendizaje profundo de noche".
No es mala descripción: lleva años participando en competiciones de inteligencia artificial en las que lucha contra grandes gigantes tecnológicos, y a menudo les supera, como ocurrió en una competición organizada por Alibaba en 2019 que ganó con su equipo, llamado "sanchinarro" (un área residencial del distrito de Hortaleza, en Madrid).
Ese trabajo hace necesario contar con recursos de cálculo importantes, y aquí Andrés decidió montárselo por su cuenta. Este emprendedor nos contaba en una entrevista telefónica cómo "salvo mi MSX, mi Atari y los portátiles que he usado, me manejo a la hora de ensamblar equipos, y me he montado todos mis PCs".
Eso hizo que cuando comenzó a trabajar en el campo del aprendizaje profundo (Deep Learning o DL a secas), se montase un equipo destinado a este tipo de tareas. "A raíz de las competiciones de inteligencia artificial y de otros temas de trabajo acabé creando equipos para entrenar DL, y es que el DL es glotón e insaciable en recursos. Cuanto más, mejor".
Comenzó creando un equipo con una GTX 1080, que luego fue ampliando. Primero sustituyó esa gráfica por una 1080 Ti, luego añadió una segunda 1080 Ti y más tarde acabaría sustituyendo esas dos gráficas por las posteriores RTX 2080 Ti. Ese equipo, que también usaba para su sistema de cine en casa, se llamaba "Cinebuntu".
Como nos explicaba, "Hasta hace poco tenía tres RTX 2080 Ti acompañando a un AMD Ryzen Theadripper 1950x que tiene 16 cores y 32 hilos, además de usar 128 GB de RAM".
En su día los Threadripper (especialmente en la primera generación) daban problemas de compatibilidad si pinchabas 8 módulos, pero hoy en día ya no e incluso los Threadripper PRO además con 8 módulos el acceso a la memoria es más rápido porque usa 8 canales.
Acompañar esas gráficas de un procesador más adecuado tenía cierto truco: los EPYC y los Threadripper PRO no se podían comprar de forma habitual, solo solían estar disponibles en máquinas de IBM. Afortunadamente, los Threadripper PRO ya están disponibles para el mercado entusiasta.
Mientras que para el consumidor final lo normal es poder acceder a micros que soportan cuatro módulos ("palos", como él decía) de memoria RAM, lo ideal sería acceder a los Threadripper más modernos, que soportan ocho "palos" y tienen menos limitaciones, e incluso dar el salto a los EPYC o los Threadripper PRO que tienen "cero limitaciones".
Esas limitaciones de los Threadripper más modernos, nos contaba, se centran sobre todo en la forma en la que gestionan las pistas PCIe: a los Threadripper domésticos "les caen menos pistas", pero como destacaba "si quieres poner dos o incluso tres tarjetas gráficas te has de ir a un Threadripper por las pistas PCIe". ¿Cuál es la configuración final?
- CPU: AMD Threadripper 1950X
- Gráficas: 6 x NVIDIA GeForce RTX 3090
- Memoria: 256 GB de RAM
- Almacenamiento: 10 TB en unidades SSD M.2 NVMe
No te olvides del extintor
La elección de las RTX 3090 no era trivial, y de hecho el interés de Andrés no se centraba tanto en la potencia de las gráficas (que también) sino en el hecho de que cada una de estas tarjetas cuenta con 24 GB de memoria GDDR6.
Él lo tenía claro, y sobre todo destacaba que aunque inicialmente los drivers aún estaban algo verdes, a día de hoy ya se puede disfrutar de esos "buenos" controladores para aprovechar la 3090 en DL. En juegos sí es rápida de narices, pero es que la mejora en DL es del 50% e incluso del 100% en ciertos procesos al compararla con las 2080 Ti".
Para él, nos insistía, "el motivo de elegir las 3090 es la memoria, que es clave para DL. Podría hacer lo que estoy haciendo con las 3080 y esperaría más tiempo, pero el problema era la memoria. En la 2080 Ti tenía 11 GB, y ahora doy un salto brutal a los 24 GB".
"Tenía un extintor y lo puse al lado por si acaso"
El montaje de esa bestia tiene muchas anécdotas simpáticas, pero hay una curiosa: cuando inició el montaje empezó colocando tres de esas tarjetas, y sabiendo el calor que disipan nos contaba cómo "tenía un extintor y lo puse al lado por si acaso".
Un equipo como este impone otras dificultades: "no hay cajas en las que puedas montar seis gráficas, pero lo que si que vi es todo lo que estaban haciendo los que montan rigs de minado de criptodivisas".
Los mineros independientes montan esos equipos en chasis abiertos con una estructura básica en la que se apoyan las gráficas y el resto de componentes.
Fue ahí cuando llegó la fase "bricomanía": "descubrí el concepto de perfil 20x20. Es como lo de las ventanas, si quieres puedes comprar perfiles de 20x20, que te los corten y te los manden por segmentos" para luego ir ensamblándolos y crear así un "armario" para que toda la máquina quede perfectamente montada allí.
Andrés tuvo que fabricarse los soportes para las fuentes de alimentación (a partir de ficheros STL, muy populares en el ámbito de la impresión 3D) y las gráficas . "Me quité de enmedio el 'rascacielos' de Noctua que usaba para refrigerar el procesador y puse un sistema de refrigeración líquida, no porque hiciera falta térmicamente, sino porque encima de donde estaba el rascacielos no podía poner ninguna tarjeta y ahora sí".
Montarse una máquina así no tiene nada que ver con montarse un PC
La idea era buena, pero eso no le libró de problemas. Hay, como nos explicaba, "una diferencia fundamental con las criptos. En ese ámbito la gente conecta las gráficas con risers USB, pero en mi caso necesitaba usar risers que son 'cablacos' (similares a los viejos cables IDE de los discos duros) que van a todo el ancho de la ranura PCIe".
"Para sostener la placa físicamente crean una obstrucción, y colocarlas todas es una historia", proseguía. El cable ancho que le vendían no le cabía en el armario, lo que le dejó claro que tenía que tener cuidado con las medidas de ese chasis-armario.
Otro de los elementos clave es el consumo: "cada una de estas gráficas consume de pico 350 W, si pones cuatro —siguió con ese número— son 1.400 W, y si además sumas el Threadripper y alguna cosa más le sumas otros 200.
"El bus PCI es muy sofisticado, pero en el PC se usa de forma limitada."
"Una fuente solo de 1.600 W va a ir un poco pillada". Qué hizo: colocar dos fuentes en lugar de una sola para ir sobrado y así "poder colocar dos gráficas más".
Ahí se encontró con el siguiente obstáculo: no conocía placas base "de consumidor y no tan de consumidor que tengan seis slots PCI. De Threadripper no hay, y la que él tenía admitía solo cuatro".
Fue en ese momento cuando "descubrí que hay un loco en Alemania, un ingeniero electrónico. Yo sé del tema, conozco el bus PCI, es muy sofisticado pero en un PC se usan de forma limitada. Tienen un montón de funciones, entre ellas la multiplexación". Por ahí llegó la solución a su problema.
Buscando con ese término acabé encontrando "un tipo que vendía divisores PCIe: te vendía placas que dividen una PCIe x16 en cuatro PCIe x4. Tu placa y tu BIOS ni siquiera tienen que soportarlo" La suya es ASRock y lo soporta, tiene BIOS AMI y está preparada para los AMD Threadripper.
Ahí apareció un nuevo problema: "pinché las tarjetas pero pillaba solo cinco, no las seis, al pinchar la sexta no arrancaba". Siguió trabajando con esas cinco gráficas hasta que resolvió el problema, que era un conflicto de la BIOS.
"Esto consume un huevo, pero claro, no te puedes quejar"
Otro de los retos de tener funcionando un equipo así es el del consumo energético. "Esto consume un huevo, pero claro, no te puedes quejar". Para aliviar esa carga ya ha encargado un estudio del consumo dirigido a la instalación de unas placas solares: quienes hacen el estudio dimensionan el proyecto según el consumo, y eso le permitirá que esa parte quede también solucionada.
Fabricarse su propio supercomputador doméstico sale a cuenta: la versión gráfica de la DGX100 con 384 GB de vídeo vale unos 200.000 euros, nos contaba: su equipo no es tan distinto, ciertamente es inferior en rendimiento y quizás llegue a un 40% de lo que da ese DGX100, pero él ha invertido 15.000 euros, no 200.000.
El resultado final es, asegura, espectacular. Hizo alguna prueba ligera con juegos. "Con Windows las detecta y funciona por ejemplo para jugar al Cyberpunk 2077, pero no aprovecha las seis tarjetas porque no tiene soporte multiGPU, pero con la 3090 no hace falta en realidad: con ella puedes jugar a tope en 4K, algo que con la 2080 Ti no se podía hacer".
Sin embargo para su trabajo con aprendizaje profundo las usa con Linux. "Con cinco echa fuego", explicaba, y destacaba cómo NVIDIA está claramente por delante de AMD en este terreno. "Para juegos habrá discrepancias, en raytracing parece mejor NVIDIA, pero en DL no hay color, NVIDIA está muy por delante en tema de software. En AMD es experimental, y eso hablando de forma generosa. En las RTX puedes incluso modular el consumo para que no consuman más de 200 W".
Él de hecho ha tenido que limitar ese consumo "porque estaba cuando estaba cargando el coche eléctrico e iba a poner la lavadora me saltó el aviso de la potencia tiene 5 kW". Como curiosidad, nos contaba, "la función que tienen las placas solares aparte de gastar menos es lograr aumentar la potencia disponible durante las horas de sol, o sea, tengo 5,5 kW + lo que me estén generando".
De hecho él quiso ir más allá. "con el inversor quiero usar una API y le preguntarle en tiempo real cuánto está consumiendo, de forma que mida cuánta potencia disponible tengo y si ve que voy demasiado justo avise al ordenador para que reduzca el consumo".
Al final, nos explicaba, la mejora en la velocidad a la que se realizan esas tareas es importante, pero "lo importante es que ahora también puedo hacer seis experimentos a la vez o hacer algo llamado validación cruzada: hay que entrenar la misma red típicamente cinco veces; y de este modo lo puedo hacer concurrentemente (y queda una libre por si quisiera hacer algo)".
Un buen ejemplo están en los modelos de lenguaje basados en transformadores, que como él explicaba "son muy glotones en memoria. No puedes meter modelos grandes, no los puedes ni cargar", pero este tipo de máquina le permite trabajar con modelos bastante grandes sin problemas. Ahora, a seguir ganando competiciones de aprendizaje profundo.
Ver 47 comentarios