En un movimiento significativo, NVIDIA ha anunciado la transición de sus controladores propietarios a módulos abiertos del kernel de Linux. Este cambio comenzará con la microarquitectura Turing (GeForce GTX 1600 y RTX 2000). Los módulos para Linux se abrieron en la primavera de 2022 bajo las licencias MIT y GPLv2, y el plan para utilizarlos como predeterminados se reveló hace dos meses.
Transición a Módulos Abiertos
Detalles del Cambio
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. NVIDIA ha logrado un rendimiento de aplicaciones equivalente o mejor con sus módulos de kernel de GPU de código abierto y ha agregado nuevas capacidades significativas, tales como:
- Compatibilidad con gestión de memoria heterogénea (HMM)
- Computación confidencial
- Arquitecturas de memoria coherentes de las plataformas Grace
Compatibilidad y Soporte
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, las nuevas GPU serán soportadas únicamente por módulos abiertos, mientras que las GPU más antiguas de las arquitecturas Maxwell, Pascal y Volta seguirán utilizando los módulos propietarios. NVIDIA planea dejar de implementar soporte para nuevas GPU en módulos propietarios y enfocarse en el desarrollo de módulos abiertos.
Recomendaciones para los Usuarios
Para plataformas de última generación como NVIDIA Grace Hopper o NVIDIA Blackwell, se deben utilizar los módulos de núcleo de GPU de código abierto, ya que 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, por lo que se debe seguir utilizando el controlador propietario de NVIDIA.
En implementaciones mixtas con GPU más antiguas y más nuevas en el mismo sistema, se debe continuar usando el controlador propietario.
Lanzamiento de los Controladores NVIDIA 560
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 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.
Script de Asistencia
NVIDIA ofrece un nuevo script nvidia-driver-assistant que simplifica la selección de la versión óptima de los módulos del kernel. Para los 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.
Este cambio hacia módulos de código abierto representa un paso importante para NVIDIA y la comunidad de Linux. Más información en el siguiente enlace.
Fuente: somoslibres