lunes, 3 de febrero de 2014

NVIDIA publica código fuente para sus Tegra K1

El matemático Kepler
Huh oh. En lo que parece un movimiento de acercamiento a la posibilidad de terminar haciendo todos sus drivers libres, NVIDIA ha añadido al driver libre Noveau el código necesario para hacer funcionar sus Tegra K1 bajo el núcleo Linux. La K1 es una GPU para dispositivos móviles de próxima generación, basada en la arquitectura Kepler empleada actualmente en las tarjetas gráficas de sobremesa. La K1 es básicamente una GPU Kepler compuesta de un único SMX.
Dado que la K1 es idéntica a una GPU de sobremesa con menos SMX (sólo uno), puede ejecutar todo el código que las Kepler de sobremesa ejecutan, claro está, correctamente disminuido en cuanto a requisitos de potencia por la menor cantidad de SMX de que dispone la K1. Así, en una K1 pueden funcionar juegos hechos con Unreal Engine 4, CryEngine 3, etcétera pero con el aspecto gráfico que esperaríamos de un juego para Android o iOS adecuado a la potencia de una nueva GPU móvil más potente, ya que la K1  a pesar de disponer un único SMX sigue siendo un avance en portento gráfico con respecto a los chips móviles actuales.

Este ofrecimiento o entrega de código se une a un correo electrónico enviado anteriormente por ingenieros del equipo Linux de NVIDIA a la lista de correo del proyecto Nouveau. En dicho correo electrónico se ofrecía la posibilidad de pedir toda la documentación necesaria, y se enviarían las peticiones que actual y legalmente pudieran satisfacer.
El caso es, dado que la K1 es una Kepler disminuida, es posible que en dicho aporte de código se pueda reciclar bastante funcionalidad para los drivers Nouveau de las tarjetas gráficas grandes. En fin, parece que NVIDIA poco a poco está abriendo sus drivers. Esto no deja de ser buenas noticias, ya que aunque los driver de NVIDIA privativos funcionan muy bien, andan faltos de correcta integración con el kernel Linux por la falta de KMS (Kernel Mode Setting) entre otras cosas. Es por eso que los que usen tarjetas gráficas con drivers privativos no verán, por ejemplo, el splash de Ubuntu a resolución nativa del monitor salvo que la configuren manualmente. Ídem con los terminales. Prueben a usar Nouveau y verán que aparecen a más resolución. También fue motivo de bajo rendimiento en los principios de KDE 4.
Otras cosas que se pierden son la facilidad de compartición de memoria y buffers, algo que puede penalizar el rendimiento en aplicaciones GPGPU, gestores de ventanas que usen aceleración 3D o incluso con el SLI, según como se desee implementar.
Si además NVIDIA decidiera añadir OpenGL 4.x a la pila gráfica libre, sería un paso adelante aún mayor.

AMD por otra parte lleva ofreciendo documentación completa varios años y dispone de varios desarrolladores trabajando a tiempo completo sobre los drivers libres de sus Radeon. Lástima que no dediquen los suficientes recursos ya que de forma incomprensible siguen manteniendo un equipo más grande manteniendo los Catalyst (fglrx) privativos, además de los que trabajan sobre el driver libre. Si es por los clientes empresariales, podrían hacer un fork del driver libre y mantener su propia rama, o ni tan siquiera haría falta hacer eso, podrían hacer un «fglrx-libre» de forma que se pueda discernir claramente cual es el driver libre estable y cuál es el más experimental (el radeon).

Sea como sea, parece que el último que faltaba en unirse a esto de hacer drivers libres va dando el paso. Intel ya tiene sus drivers libres de igual modo que AMD. De los chips móviles no hablaremos porque sus drivers son bastante malos, repletos de bugs que obligan a realizar rodeos (workarounds) en las implementaciones.

1 comentario:

  1. NVIDIA sí tiene KMS, lo que no está disponible es una funcionalidad completa para el framebuffer de los terminales.

    ResponderEliminar