Графический драйвер ядра AMD превысил 5,9 млн строк в Linux 6.16

Современный графический драйвер ядра AMD, состоящий из AMDGPU, вычислительного кода AMDKFD и сопутствующей инфраструктуры, продолжает оставаться самым большим магистральным драйвером с открытым исходным кодом. С учетом того, что ядро Linux 6.16 дебютирует как стабильное уже сегодня, графический драйвер ядра AMD преодолеет порог в 5,9 миллиона строк. Для сравнения, все дерево исходных текстов ядра Linux находится на уровне 5,9 миллионов строк в области drivers/gpu/drm/amd в состоянии Git Linux 6.16 на сегодняшний день. Это около 5,08 миллионов строк кода, 613 тысяч строк комментариев к коду и 204 тысячи пустых строк, как измеряет утилита cloc. Хотя, как давно замечено, драйвер AMDGPU особенно тяжел из-за наличия большого количества автоматически генерируемых заголовочных файлов для каждого поколения/цели GPU… Из 5 миллионов строк кода около 4,4 миллионов строк cloc определил как заголовочные файлы на языке C. Но даже 666 тысяч строк кода, не считая пустых строк и комментариев, все равно ставят его в один ряд с самыми большими драйверами ядра Linux с открытым исходным кодом.

Для сравнения, графический драйвер ядра AMD в Linux 6.15 занимал 5 897 360 строк по сравнению с 5 904 055 строками, на которых он находится сегодня.

Графический драйвер ядра AMD с каждым выпуском становится все больше и больше. Для текущего состояния в DRM-Next на сегодняшний день перед окном слияния Linux 6.17, размер графического драйвера ядра AMD составляет 5 907 326, или увеличение всего на 3k строк кода для следующего ядра, учитывая отсутствие новых крупных аппаратных возможностей GPU в следующем цикле.

Для тех, кто интересуется общим размером ядра Linux 6.16 Git перед его вероятным выпуском позже сегодня, как измерено той же утилитой cloc, он составляет около 38 417 651 строки… Это 28,9 миллиона строк обнаруженного кода, 4,58 миллиона строк комментариев к коду и еще 4,8 миллиона пустых строк.

Или графический драйвер ядра AMD, занимающий примерно 15% дерева исходных текстов ядра Linux. Опять же, много заголовочных файлов и т.п. и никаких реальных достоинств в размере исходного кода, но некоторые интересные метрики для этих цифр и растущего размера дерева исходного кода ядра Linux.Для некоторой дополнительной перспективы, графические драйверы ядра Intel i915 и Xe вместе взятые составляют 509k строк кода в Linux 6.16 с примерно 352k строк обнаруженного кода (48.5k строк заголовков), 74k строк комментариев и 83k пустых строк. А драйвер NVIDIA с открытым исходным кодом Nouveau занимает 224 тыс. строк.