Las GPUs compartidas impulsan una nueva ola de desarrollo de software acelerado

0
57

No se puede negar que las GPU tienen un potencial increíble para acelerar cargas de trabajo de todo tipo, pero el desarrollo de aplicaciones que puedan escalar a través de dos, cuatro o incluso más GPU sigue siendo una propuesta prohibitiva.

Sin duda, la nube ha hecho más accesible el alquiler de muchos recursos informáticos. Es posible obtener unos cuantos núcleos de CPU y algo de memoria por unos pocos dólares al mes. Sin embargo, el alquiler de recursos de la GPU es una cuestión totalmente distinta.

A diferencia de los núcleos de la CPU, que pueden dividirse e incluso compartirse entre varios usuarios, este tipo de virtualización es relativamente nuevo para las GPU. Tradicionalmente, las GPU sólo han sido accesibles para un único inquilino en un momento dado. Como resultado, los clientes se han visto obligados a pagar miles de dólares cada mes por una única GPU dedicada, cuando pueden necesitar sólo una fracción de su rendimiento.

Para los grandes equipos de desarrollo que crean marcos de IA/ML, esto puede no ser un gran problema, pero limita la capacidad de los desarrolladores más pequeños para crear aplicaciones aceleradas, especialmente aquellas diseñadas para escalar en múltiples GPU.

Sus opciones han sido gastar mucho dinero por adelantado para comprar y gestionar su propia infraestructura, o gastar aún más para alquilar la computación por minutos. Sin embargo, gracias a la mejora de la tecnología de virtualización, esto está empezando a cambiar.

En mayo, Vultr se convirtió en uno de los primeros proveedores de cloud computing en trocear una A100 de Nvidia en instancias de GPU fraccionadas con el lanzamiento de sus instancias de máquina virtual Talon. Ahora los clientes pueden alquilar 1/20 de una A100 por tan sólo 0,13 dólares la hora o 90 dólares al mes. Para ponerlo en perspectiva, una máquina virtual con una sola A100 costaría 2,60 dólares por hora o 1.750 dólares al mes en Vultr.

«Para algunas de las cargas de trabajo menos intensivas en computación, como la inferencia de IA o la IA de borde, a menudo no necesitan toda la potencia de una GPU completa y pueden ejecutarse en planes de GPU más pequeños», explica el director ejecutivo de Vultr, JJ Kardwell, a The Next Platform.

Cortar una GPU en trozos
En la actualidad, la mayoría de las instancias de nube acelerada cuentan con una o varias GPU que se han pasado físicamente a la máquina virtual. Si bien esto significa que el cliente tiene acceso a todo el rendimiento de la GPU, también significa que los proveedores de la nube no son capaces de lograr la misma eficiencia de la que disfrutan las CPU.

Para sortear esta limitación, Vultr utilizó una combinación del gestor de vGPU de Nvidia y la funcionalidad de GPU multiinstancia, que permite que una sola GPU se comporte como varias menos potentes.

Las vGPUs utilizan una técnica llamada «temporal slicing», a veces llamada «time slicing». Consiste en cargar varias cargas de trabajo en la memoria de la GPU y alternarlas rápidamente hasta que se completan. Técnicamente, cada carga de trabajo tiene acceso a todos los recursos computacionales de la GPU -aparte de la memoria-, pero el rendimiento está limitado por el tiempo de ejecución asignado. Cuantas más instancias de vGPU, menos tiempo tiene cada una de ellas para realizar el trabajo.

Estas vGPU no están exentas de problemas. La principal preocupación es la sobrecarga de cambio de contexto, ya que la GPU detiene e inicia cada carga de trabajo en rápida sucesión. Si una vGPU es como una gran máquina que es realmente buena en la multitarea, MIG -introducida en 2020 dentro de la GPU GA100 de Nvidia- adopta el enfoque de divide y vencerás. (O quizás más exactamente, es una GPU multinúcleo en un troquel monolítico que puede fingir ser un gran núcleo cuando sea necesario. . . .) MIG permite dividir una única A100 en ocho GPU distintas, cada una con 10 GB de memoria de vídeo. Pero a diferencia de vGPU, MIG no se define en el hipervisor.

«Se trata de una verdadera partición de hardware, en la que el propio hardware de la memoria se mapea con las vGPU y tiene una asignación directa de esos recursos», explica David Gucker, director de operaciones de Vultr, a The Next Platform. «Esto significa que no hay posibilidad de vecinos ruidosos y es lo más cerca que vas a llegar a una tarjeta física literal por instancia virtual».

En otras palabras, mientras que vGPU utiliza software para hacer que una sola GPU potente se comporte como muchas otras menos potentes, MIG en realidad la divide en varias más pequeñas.

Vultr es uno de los primeros en emplear cualquiera de estas tecnologías en la nube para servir a las cargas de trabajo de múltiples inquilinos. Por ejemplo, sus instancias de GPU más económicas utilizan el gestor Nvidia vGPU para dividir cada tarjeta en 10 o 20 instancias direccionables individualmente.

Mientras tanto, sus instancias fraccionarias más grandes aprovechan MIG, que según Vultr ofrece un mayor aislamiento de memoria y calidad de servicio. Esto se debe probablemente a que, a diferencia de las vGPU, las instancias MIG no se consiguen mediante trucos de software y son efectivamente GPUs dedicadas por derecho propio.

Virtualización del desarrollo de software múltiple
Por el momento, las instancias Vultr Talon están limitadas a una sola GPU fraccionada por instancia, pero según Kardwell no hay nada que impida al proveedor de la nube desplegar máquinas virtuales con múltiples instancias vGPU o MIG conectadas.

«Es una extensión natural de lo que estamos haciendo en la beta», dijo. «A medida que vayamos desplegando la siguiente oleada de capacidad física, esperamos ofrecer también esa capacidad».

La capacidad de aprovisionar una máquina virtual con dos o más instancias vGPU o MIG reduciría drásticamente la barrera de entrada para los desarrolladores que trabajan con software diseñado para escalar en grandes clusters de computación acelerada.

Y, al menos, según las investigaciones publicadas recientemente por VMware, no parece que la virtualización de las GPU suponga una penalización significativa del rendimiento. El gigante de la virtualización ha demostrado recientemente un rendimiento «cercano o mejor que el de un sistema básico» utilizando vGPUs en vSphere. Las pruebas demostraron que este rendimiento se podía conseguir al escalar las cargas de trabajo de las vGPU en varias GPU físicas conectadas a través de la interconexión NVLink de Nvidia. Esto significa que una gran carga de trabajo podría escalarse para ejecutarse en 1,5 GPUs o 10,5 GPUs o 100,5 GPUs, por ejemplo, sin dejar media GPU inactiva.

Así pues, aunque Vultr sea uno de los primeros en desplegar esta tecnología en un entorno de nube pública, el hecho de que esté construida sobre la suite AI Enterprise de Nvidia significa que no será el último proveedor en hacerlo.

CambioDigital OnLine | Fuente WEB

Custom Text
Artículo anteriorAvaya anuncia expansión de Avaya OneCloud en la Nube Privada para el Mercado Empresarial en México
Artículo siguienteProcesos informáticos más rápidos sin miedo a los errores