NPU: Nvidia-Treiber bekommt Probleme mit dem Linux-Kernel
Die Linux-Community hat Code aus dem Kernel entfernt, der nur von Nvidias proprietärem Treiber genutzt wird. Das könnte Probleme für Nvidia in der Supercomputing-Sparte bringen. Neu sind die zugrundeliegenden Differenzen zwischen Entwicklern und Nvidia nicht.

Mit den Änderungen am Code für die Power-Architektur für die kommende Linux-Version 5.3 hat Chefentwickler Linus Torvalds auch Code in den Hauptzweig des Kernels eingepflegt, der Nvidia einige Probleme bereiten könnte. Denn die Patches von Entwickler Christoph Hellwig entfernen Code-Pfade, die bisher nur von Nvidias proprietärem Treiber genutzt werden.
Bei dem Code selbst handelt es sich um die Unterstützung des Speicherdirektzugriffs für die sogenannten NPUs, also Deep-Learning-Beschleuniger. Hinzu kommen noch einige weitere kleinere Bestandteile in dem Architektur-Code. Hellwig selbst begründet das Entfernen des Codes damit, dass dieser von keinem anderen Teil des Hauptzweigs des Linux-Kernels genutzt wird.
Dieser Entscheidung liegt ein prinzipielles Problem der Kernel-Entwicklung zugrunde. Die Linux-Community verzichtet absichtlich auf stabile interne Kernel-Schnittstellen, um auch große Veränderungen relativ einfach umsetzen zu können. Ebenso sollte für Kernel-Schnittstellen immer auch Code bereitstehen, der diesen nutzt, um die Schnittstellen selbst besser pflegen und vor allem verstehen zu können. Außerhalb des Hauptzweigs gepflegte Treiber, wie eben der Treiber von Nvidia, stehen diesen Konzepten aus Sicht der Kernel-Entwickler aber im Weg und werden dafür immer wieder kritisiert.
Hürden für den Nvidia-Treiber
Wie zu erwarten, ist das Entfernen des Codes aber auch nicht ohne Widerspruch geschehen. Der IBM-Entwickler Alexey Kardashevskiy beschwert sich etwa darüber, dass seine Kritik an den Plänen ignoriert worden sei. Ebenso werde so getan, als ob der Nvidia-Treiber schlicht nicht existiere. Aus Sicht von Hellwig ist aber genau das der Fall, da der Treiber eben nicht Teil des Hauptzweigs von Linux ist.
Auch Greg Kroah-Hartman, der nach Linus Torvalds wichtigste Kernel-Entwickler, unterstützt diese Sichtweise. Über das Vorgehen habe sich die Community sogar im vergangenen Jahr abgestimmt. Trotz Kritik ist der Code nun also in der kommenden Linux-Kernel-Version nicht mehr vorhanden. Für Nvidia heißt das schlicht Mehrarbeit. Denn einerseits läuft der Treiber dann nicht mehr ohne weiteres mit Linux 5.3 und andererseits muss Nvidia wohl die entfernten Teile künftig selbst nachbauen und pflegen.
Einen ähnlichen Schritt hat die Linux-Community bereits Ende vergangenen Jahres umgesetzt. Dort hatten Entwickler wichtige Schnittstellen für das sogenannte Heterogeneous Memory Management (HMM) als GPL-Symbole markiert. Das führt dazu, dass ebenfalls nur noch zu der GPL kompatible Treiber und Module diesen Code nutzen können, was wiederum Nvidia teilweise behindern könnte. Auch der HMM-Code ist über Jahre hinweg nur von externen Treibern genutzt worden.
Sowohl der HMM-Code als auch der nun entfernte NPU-Code betreffen den für Nvidia sehr lukrativen und auch prestigeträchtigen Unternehmensbereich des Supercomputings. Hier kooperiert Nvidia sehr stark mit IBM.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Mach doch.
Oder die CUDA mit einer ebenso kostenfreien BSD Lösung glücklich machen...
Jein. Wahrscheinlich hast du für das einfache Modul dann auch keine Schnittstelle. Bei...
Und wenn die Schnittstellen sich ändern, sogt man dafür das alle die von ihre Abhängen...