новое (программное обеспечение)
Первоначальный выпуск | 1.0 / 18 июня 2012 г [1] |
---|---|
Репозиторий | |
Написано в | С |
Операционная система | Линукс , НетБСД |
Платформа | x86 , x86-64 , ARM , PowerPC |
Тип | Драйвер устройства |
Лицензия | МОЯ лицензия |
Веб-сайт | новый |

nouveau ( / n uː ˈ v oʊ / ) — это бесплатный драйвер графического устройства с открытым исходным кодом для Nvidia видеокарт и Tegra семейства SoC , написанный независимыми разработчиками программного обеспечения при незначительной помощи сотрудников Nvidia.
Целью проекта является создание драйвера с открытым исходным кодом путем обратного проектирования от Nvidia собственных драйверов Linux . Он управляется X.Org Foundation , размещен на сайте freedesktop.org и распространяется как часть Mesa 3D . Первоначально проект был основан на 2D бесплатном драйвере nv с открытым исходным кодом, предназначенном только для Red Hat , который, как утверждают разработчик Мэтью Гарретт и другие, был запутан. [2] nouveau лицензируется по лицензии MIT .
Название проекта происходит от французского слова nouveau , что означает новый . [3] Это было предложено первоначальным автором, Стефаном Маршезеном, после того, как IRC его клиента франкоязычная система автозамены предложила слово « nouveau » в качестве исправления для букв «nv». [4]
Архитектура программного обеспечения
[ редактировать ]
nouveau — это драйвер устройства в стиле Gallium3D , работающий поверх инфраструктуры прямого рендеринга (DRI). Он состоит из двух ядра компонентов — драйвера DRM и KMS , а также компонентов пользовательского пространства libDRM и Mesa 3D .
nouveau намерен поддерживать все микроархитектуры Nvidia: Tesla , Fermi , Kepler , Maxwell , в версии 1.0.13 поддержку Pascal и в версии 1.0.15 поддержку Volta . В версии 1.0.16 добавлена поддержка Тьюринга .
Повторная синхронизация
[ редактировать ]По техническим причинам все графические процессоры Nvidia загружаются с низкой частотой (так называемой «тактовой частотой»). Драйвер устройства должен установить более высокую частоту после загрузки. Из-за отсутствия документации по графическому процессору в Nouveau с самого начала не было этой возможности. Результатом стала/является серьезная потеря производительности, о чем свидетельствуют тесты, в которых сравнивалась производительность проприетарного драйвера устройства Nvidia с драйвером nouveau. [5] В июне 2014 года наконец был достигнут прорыв: в nouveau была добавлена первоначальная поддержка повторной тактовой частоты. [6] [7] [8] В версии 1.0.14 поддержка Pascal находится на уровне Maxwell 2. [9] С версией 1.0.15 есть патч для GTX 970 с 4ГБ и ускорениями Паскаля до Максвелла 2 Уровня.
Инструменты
[ редактировать ]
В отличие от AMD , Nvidia не предоставляет документации о своих графических процессорах. Разработчики нуво были вынуждены использовать реверс-инжиниринг в «чистой комнате» , чтобы получить необходимые данные, которые позволили бы им написать нуво. В проекте используется несколько специально разработанных программ для обратного проектирования, таких как MmioTrace (трассировка ввода-вывода с отображением в памяти), [10] REnouveau и Valgrind MMT. [11]
Обновление
[ редактировать ]REnouveau (обратное проектирование для модерна) [12] — это программа, лицензируемая под лицензией GNU GPL (с использованием SDL ), которая собирает данные для большей части работ по обратному проектированию в стиле nouveau. Пользователи с проприетарными драйверами NVIDIA могут помочь в разработке Nouveau, предоставив информацию об оборудовании своих карт NVIDIA через REnouveau. видеокарты REnouveau работает путем копирования текущего регистрового пространства MMIO , рисования некоторой графики, получения еще одной копии MMIO и вывода разницы в текстовый файл. Он запускает около шести десятков различных тестов, которые пользователь компьютера затем записывает в tar . bz2 и отправляется по электронной почте , после чего автоматически передается на FTP-серверы проекта для анализа разработчиками.В настоящее время REnouveau в основном заменен Valgrind-MMT. [ нужна ссылка ]
Поддерживаемые интерфейсы
[ редактировать ]Только ядро имеет прямой доступ к оборудованию, включая видеокарту. Программное обеспечение конечного пользователя получает доступ к нему через различные интерфейсы , специфичные для конкретной задачи. nouveau пишется как драйвер устройства типа Gallium3D , а это означает, что он использует большой объем кода совместно с другими драйверами Gallium3D. Большая часть этого общего ядра встроена в Mesa 3D , а затем распространяется как таковая в различных дистрибутивах Linux .
API рендеринга
[ редактировать ]Mesa 3D и включенные в нее драйверы поддерживают несколько интерфейсов рендеринга , каждый из которых предназначен для предоставления программам пользовательского пространства, таким как, например, видеоигры или программное обеспечение САПР , доступ к соответствующим блокам SIP .
Директ3D
[ редактировать ]Бесплатная реализация Direct3D версии 9 с открытым исходным кодом была встроена в Mesa 3D. Его можно использовать с модерном; [ нужна ссылка ] однако, поскольку любое программное обеспечение, использующее Direct3D, запрограммировано для Windows, это программное обеспечение можно использовать только вместе с Wine в Linux.
OpenGL
[ редактировать ]
Интерфейс рендеринга OpenGL разрабатывается компанией Khronos Group . Реализации этого API являются частью драйверов Nvidia и собственной разработки AMD Catalyst . Другая реализация пишется энтузиастами свободного программного обеспечения, такими как Брайан Пол или Intel, и координируется в Mesa 3D. Будучи драйвером типа Gallium3D, Nouveau нуждается лишь в незначительной адаптации для работы с этой реализацией.
Вулкан
[ редактировать ]По состоянию на декабрь 2023 г. [update], Nouveau имеет некоторую поддержку Vulkan API через экспериментальный драйвер NVK. [13]
Видео ускорение
[ редактировать ]Mesa 3D поддерживает несколько интерфейсов, каждый из которых предназначен для предоставления программам пользовательского пространства, таким как, например, GStreamer или HandBrake , доступ к соответствующим блокам SIP. Для этой цели также можно использовать микросхему, предназначенную для рендеринга вычислений, хотя этот подход потребляет гораздо больше электроэнергии по сравнению с использованием SIP-блока PureVideo .
nouveau поддерживает PureVideo и предоставляет доступ к нему через VDPAU и частично через XvMC . [14]
Nouveau не поддерживает Nvidia NVENC .
Вычислительные API
[ редактировать ]OpenCL
[ редактировать ]В Mesa GalliumCompute также является основным проектом Nvidia, но только часть AMD находится на стадии бета-тестирования для OpenCL 1.0, 1.1 и 1.2. [15]
ДРУГОЙ
[ редактировать ]nouveau не поддерживает CUDA .
С помощью проекта Coriander возможно преобразование кода CUDA в OpenCL 1.2. [16]
Системный процессор графического процессора
[ редактировать ]Нвидиа ФАЛКОН
[ редактировать ]Примерно в 2006 году Nvidia представила FALCON (FAst Logic CONtroller) для своих графических процессоров.
НВ-RISCV
[ редактировать ]На 4-м семинаре RISC-V в июле 2016 года сотрудники Nvidia представили свои планы по замене FALCON новой собственной разработкой, основанной на наборе инструкций RISC-V. [17]
История
[ редактировать ]
Nouveau был запущен в 2005 году Стефаном Маршезеном как серия патчей для драйвера «nv». [18] и официально объявлено в феврале 2006 года на мероприятии FOSDEM. [19] Первая живая демонстрация nouveau состоялась на Linux.conf.au в 2007 году. [19] В 2010 году nouveau был принят в версию ядра Linux 2.6.33 в качестве экспериментального драйвера. [18] [20] 26 марта 2012 года драйвер nouveau был помечен как стабильный и переведен из промежуточной среды Linux 3.4. [21] [22] Nouveau претерпел серьезные изменения внутренней архитектуры в Linux 3.7. [22]
Nouveau изначально использовал инфраструктуру прямого рендеринга (DRI) Mesa 3D для рендеринга 3D-компьютерной графики , которая позволяет ускорять 3D-рисование с помощью графического процессора (GPU) непосредственно из 3D-приложения; но в феврале 2008 года работа над поддержкой DRI прекратилась и перешла к новому Gallium3D . [23] [24]
23 сентября 2013 г. [25] Nvidia публично объявила, что выпустит некоторую документацию о своих графических процессорах с намерением решить области, влияющие на удобство использования графических процессоров NVIDIA с нуво «из коробки».
По состоянию на 31 января 2014 года Александр Курбо из Nvidia выпустил обширный набор патчей, которые добавляют первоначальную поддержку GK20A ( Tegra K1 ) в Nouveau. [26]
По состоянию на 9 июля 2016 года сотрудник Red Hat Бен Скеггс выпустил патч, который добавляет в ядро Linux поддержку чипа GP104 на базе Pascal, установленного на видеокартах GeForce GTX 1070 и GeForce GTX 1080. [27]
Статус 2016 года и будущая работа были представлены в XDC2016. [28] Статус новых разработок в OpenCL показан на FOSDEM. [29]
В 2019 году NVidia опубликовала некоторую документацию о своих чипсетах Kepler, Maxwell, Pascal и Volta. [30] [31]
Принятие
[ редактировать ]
Драйвер nouveau и его 3D-аналог в Mesa использовались в качестве драйвера с открытым исходным кодом по умолчанию для карт Nvidia во многих дистрибутивах Linux , включая Fedora 11, [32] [33] openSUSE 11.3, [34] Убунту 10.04, [35] [36] и Дебиан . [37]
Compiz рекомендовался в 2010 году вместо проприетарного драйвера Nvidia. [38]
В июне 2014 года компания Codethink сообщила о запуске Wayland на базе Weston компоновщика с ядром Linux 3.15 с использованием EGL и «стека графических драйверов со 100% открытым исходным кодом» на Tegra K1 . [39]
В октябре 2016 года NetBSD добавила экспериментальную поддержку nouveau в NetBSD 7. [40]
См. также
[ редактировать ]- Бесплатный драйвер графического устройства с открытым исходным кодом
- Сравнение графических процессоров Nvidia
- Быстрее II
- Расширения VESA BIOS
Ссылки
[ редактировать ]- ^ фон Эйтцен, Крис (18 июня 2012 г.). «Бесплатный графический драйвер NVIDIA достиг версии 1.0» . H-Открыть . Хайнц Хайзе . Проверено 13 июня 2013 г.
- ^ «Отслеживание ошибок Debian» . 17 августа 2006 г. Проверено 7 апреля 2013 г.
- ^ «Новая Вики» . 7 июля 2009 года . Проверено 23 сентября 2009 г.
- ^ «Государство Нуво, часть I» . LWN.net . 15 февраля 2008 года . Проверено 24 ноября 2009 г.
- ^ «Нуво против проприетарного Linux NVIDIA против NVIDIA Windows 8.1» . Фороникс . 31 октября 2013 г.
- ^ «Детали повторного тактирования в стиле модерн обсуждаются далее» . Фороникс . 17 мая 2014 г.
- ^ «Повторная синхронизация в стиле модерн намного быстрее» . Фороникс . 20 июня 2014 г.
- ^ «Документация Nouveau PowerManagement» . сайт freedesktop.org .
- ^ «new/xf86-video-new — Новый драйвер Xorg для чипов NVIDIA» . cgit.freedesktop.org . Проверено 6 мая 2017 г.
- ^ «MmioTrace (трассировка ввода-вывода с отображением в памяти)» . нуво вики.
- ^ «Вальгринд-ммт» . нуво вики.
- ^ «REnouveau (Реверс-инжиниринг для модерна)» . новая Вики.
- ^ «Коллабора – НВК приземлился» .
- ^ «Новое видеоускорение» . сайт freedesktop.org .
- ^ «ГаллийКомпьютер» . Dri.freedesktop.org . Проверено 6 мая 2017 г.
- ^ «Кориандр» . Гитхаб . 15 ноября 2021 г.
- ^ «История NVIDIA RISC-V» (PDF) . Июль 2016.
- ^ Перейти обратно: а б Перес, Мартин; Стах, Лукас. «Новый обзор, текущая и будущая работа» (PDF) . Проверено 1 сентября 2014 г.
- ^ Перейти обратно: а б «Государство Нуво, часть I» . LWN.net . Проверено 1 сентября 2014 г.
- ^ «Nouveau переходит в ядро Linux 2.6.33!» . Фороникс . 11 декабря 2009 г.
- ^ Джонатан Корбет (23 марта 2012 г.). «Водитель-нувоист заканчивает постановку» . LWN.net .
- ^ Перейти обратно: а б Перес, Мартин. «Слайды Nouveau XDC 2013» (PDF) . X.Орг . Проверено 1 сентября 2014 г.
- ^ «Государство Нуво, часть 2» . LWN.net . 26 февраля 2008 года . Проверено 7 марта 2008 г.
- ^ «Nouveau Companion 36 — необычный спутник Nouveau-Development» . 7 марта 2008 г. Архивировано из оригинала 8 февраля 2012 г. . Проверено 7 марта 2008 г.
- ^ «Nvidia предлагает опубликовать общедоступную документацию по некоторым аспектам своих графических процессоров» . 23 сентября 2013 г. Проверено 24 сентября 2013 г.
- ^ «drm/nouveau: начальная поддержка GK20A (Tegra K1)» . 31 января 2014 г.
- ^ «drm/nouveau: начальная поддержка GP104 (Pascal)» . Гитхаб . 09.07.2016.
- ^ «Отчет о состоянии» (PDF) . х.орг. Сентябрь 2016 года . Проверено 6 мая 2017 г.
- ^ «Вычислительная поддержка для Nouveau, создание LLVM для TGSI и SPIR-V для IR-сервера NV50» (PDF) . 2016 . Проверено 6 мая 2017 г.
- ^ https://github.com/nvidia/open-gpu-doc Репозиторий NVIDIA open-gpu-doc
- ^ https://nvidia.github.io/open-gpu-doc/ Веб-страница NVidia open-gpu-doc
- ^ Майкл Ларабель (29 марта 2009 г.). «Тестирование драйвера Nouveau в Fedora 11» . Фороникс .
- ^ «Пакет Меса» . Apps.fedoraproject.org. Архивировано из оригинала 27 февраля 2020 г. Проверено 6 мая 2017 г.
- ^ «Основные продукты для версии openSUSE 11.3» . openSUSE . Проверено 29 декабря 2010 г.
- ^ «Ошибка № 454821: Ошибки: пакет «xserver-xorg-video-nv»: Ubuntu».
{{cite web}}
: Отсутствует или пусто|url=
( помощь ) - ^ "Результаты поиска для "libgl1-mesa-dri" " . Пакеты Ubuntu . Проверено 6 мая 2017 г.
- ^ Debian (11 февраля 2011 г.). «Драйверы Nouveau nVidia теперь доступны в экспериментальной версии Debian» .
- ^ Сэм Спилсбери, главный специалист по поддержке Compiz (21 мая 2010 г.). «Остерегайтесь эталонов» .
Наша рекомендация: используйте nouveau.
- ^ «Codethink запускает NVIDIA Jetson TK1 под управлением Linux 3.15, Wayland» . Фороникс . 12 июня 2014 г.
- ^ «нуво/NetBSD» . freedesktop.org. 17 октября 2016 г. Проверено 30 января 2016 г.