NVIDIA anunció la transferencia de sus controladores de Linux a módulos abiertos
En el pasado mes de Mayo, compartimos aquí en el blog la noticia sobre los cambios que tenía preparados NVIDIA para Linux, ya que como mencionamos en la nota, en el próximo lanzamiento de sus controladores propietarios «NVIDIA 560», se utilizará de forma predeterminada los módulos abiertos del kernel de Linux.
Y bien, ahora NVIDIA ha anunciado sus planes para hacer la transición de sus controladores propietarios a módulos predeterminados del kernel de Linux, empezando con la microarquitectura Turing (GeForce GTX 1600 y RTX 2000).
Cabe mencionar que los módulos para Linux fueron abiertos en la primavera de 2022 bajo las licencias MIT y GPLv2, y el plan para utilizarlos como predeterminados se reveló hace dos meses. Este cambio implica que el paquete de controladores predeterminado utilizará módulos abiertos existentes, previamente ofrecidos como opción. Sin embargo, la funcionalidad central del firmware y los componentes del espacio de usuario, como las bibliotecas para CUDA, OpenGL y Vulkan, seguirán siendo propietarios.
Dos años después, hemos logrado un rendimiento de aplicaciones equivalente o mejor con nuestros módulos de kernel de GPU de código abierto y hemos agregado nuevas capacidades sustanciales:
-Compatibilidad con gestión de memoria heterogénea (HMM)
-Computación confidencial
-Las arquitecturas de memoria coherentes de nuestras plataformas Grace
-Y más
Ahora estamos en un punto en el que realizar la transición completa a los módulos de kernel de GPU de código abierto es la decisión correcta, y estamos realizando ese cambio en el próximo lanzamiento del controlador R560.
Hasta ahora, los controladores propietarios incluían variantes de módulos tanto propietarios como de código abierto, actualizados sincrónicamente, pero se usaban los módulos propietarios por defecto.
La principal diferencia entre las opciones disponibles es que los módulos abiertos solo pueden utilizarse con GPU equipadas con un microcontrolador GSP (GPU System Processor) separado. Este microcontrolador permite trasladar las operaciones de inicialización y control de la GPU desde el controlador al firmware propietario. GSP se encuentra en tarjetas de video basadas en microarquitecturas como Turing, Ampere, Ada y Hopper.
Además de las nuevas GPU, los módulos propietarios siguen admitiendo GPU más antiguas que no están equipadas con GSP, como las basadas en las microarquitecturas Maxwell, Pascal y Volta. NVIDIA tiene la intención de dejar de implementar soporte para nuevas GPU en módulos propietarios y centrarse únicamente en el desarrollo de módulos abiertos. Por ejemplo, la compatibilidad con las nuevas plataformas NVIDIA Grace Hopper y NVIDIA Blackwell ya está disponible en módulos abiertos, que no son compatibles con los módulos propietarios.
No todas las GPU son compatibles con los módulos de kernel de GPU de código abierto.
Para plataformas de última generación como NVIDIA Grace Hopper o NVIDIA Blackwell, debes utilizar los módulos de núcleo de GPU de código abierto. Los controladores propietarios no son compatibles con estas plataformas.
Para las GPU más nuevas de las arquitecturas Turing, Ampere, Ada Lovelace o Hopper, NVIDIA recomienda cambiar a los módulos de kernel de GPU de código abierto. En el caso de las GPU más antiguas de las arquitecturas Maxwell, Pascal o Volta, los módulos de núcleo de GPU de código abierto no son compatibles con su plataforma. Siga utilizando el controlador propietario de NVIDIA.
Para implementaciones mixtas con GPU más antiguas y más nuevas en el mismo sistema, continúe usando el controlador propietario.
Con el lanzamiento de los controladores NVIDIA 560 para GPU a partir de la microarquitectura Turing y para la virtualización de GPU a partir de Ada, se lanzarán versiones abiertas de los módulos del kernel instalados por defecto y nvidia-peermem.ko en situaciones donde su uso sea posible. En las distribuciones Ubuntu, Debian, SUSE y openSUSE, se recomienda utilizar el paquete «nvidia-open» para instalar la versión de módulo abierto de los controladores NVIDIA. En distribuciones basadas en RHEL, se recomienda utilizar el paquete «nvidia-driver«.
Cabe mencionar que NVIDIA ofrece un nuevo script «nvidia-driver-assistant» de ayuda para la detección, que simplifica la selección de la versión óptima de los módulos del kernel. Aunque, por otro lado, para usuarios que prefieren hacerlo con comandos, si se desean instalar módulos de kernel propietarios en el sistema, deberán especificar la opción «–kernel-module-type=proprietary» al ejecutar el archivo de instalación con los controladores NVIDIA.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.