Lo nunca visto: un ingeniero de Nvidia arregla un bug que hacía que las tarjetas AMD funcionen más lento

Date:

Un bug corregido en el kernel de Linux, ha dado mucho que hablar estos días. Un ingeniero de Nvidia ha arreglado un fallo que hacía que las tarjetas AMD funcionasen más lentas.

A priori, no tiene ninguna lógica que un desarrollador de una compañía solucione un problema de su gran rival, para que sus tarjetas gráficas funcionen más rápido. Incluso podrías ser motivo de despido. Pero todo tiene su explicación.

En el código de conducta de Linux, hay algo más sagrado que la fidelidad a tu empresa: arreglar aquello que previamente has estropeado.

La historia del ingeniero de Nvidia que ayudó a AMD

Todo comenzó la semana pasada, cuando el desarrollador de Nvidia Balbir Singh hizo un cambio en el kernel de Linux. Su objetivo era incrementar el BAR del puerto PCIe más allá de los 10 TiB, supuestamente para optimizar el uso de memoria gráfica en tarjetas gráficas con mucha VRAM.

Este cambio provocó un “efecto secundario” no esperado: otro ingeniero reportó qué las GPU de AMD, tanto las tarjetas dedicadas como las integradas, habían sufrido lo que técnicamente se llama una “regresión de rendimiento”, es decir, funcionaban hasta un 10% más lento que antes.

En juegos concretos como Stellaris, incluso producía fallos en el control con teclado y ratón.

Pasarse de Windows a Linux

El ingeniero de Nvidia se dio cuenta inmediatamente, de que era culpa suya: al alterar el BAR de PCIe, el registro de dirección base que da acceso a la memoria gráfica gestionada por Linux, provocaba que una variable del sistema se desbordase en las GPU Radeon de AMD, haciendo que funcionen con solo 4 GB de memoria VRAM, aunque tengan más.

Esta memoria, hoy en día, es insuficiente para la mayoría de los juegos, de ahí la caída del rendimiento.

El kernel de Linux es el núcleo del sistema, y aunque es un sistema operativo de código abierto, el kernel solo lo pueden tocar unos pocos desarrolladores. Cualquiera puede enviar una petición para cambiar o añadir algo, pero antes de aceptarla es revisada por la gente de confianza de Linus Torvalds. Pese a ello, el bug se coló en Linux.

El código ético del software libre es sagrado

Quizá un desarrollador con mala ética se lo habría callado, ya que afecta a su rival: que lo arregle otro, y diré que no me había dado cuenta.

Pero en el código libre, en Linux, hay una serie de normas sagradas no escritas, que todo el mundo respeta. Es un trabajo colaborativo, en donde participan ingenieros de muchas compañías, y freelances. Si metes la pata e introduces un bug en el sistema, tu obligación es no parar hasta arreglarlo. No importa que el fallo beneficie a tu empresa.

Balbir Singh avisó inmediatamente de que el bug era suyo, y se comprometió arreglarlo. Ya lo ha hecho, y se incluirá en la próxima actualización del kernel de Linux, la 6.15-rc1, que saldrá en un par de semanas.

Se han echado unas risas en la comunidad de desarrolladores a costa de este ingeniero de Nvidia que ayudó a AMD a mejorar su rendimiento. Algunos compañeros de trabajo le han señalado, amistosamente, como “el traidor” que ayudó a AMD.

Pero en el fondo, tanto sus colegas como sus jefes saben que hizo lo correcto: respetar el código sagrado del software libre, y están orgullosos de él. Así debe ser.

Conoce cómo trabajamos en ComputerHoy.

Etiquetas: NVIDIA, AMD, Sistemas operativos, Tarjetas graficas, Programación, Linux

Share post:

Subscribe

spot_imgspot_img

Popular

Relacionados
Relacionados