новое (программное обеспечение)
Первоначальный выпуск | 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 и «стека графических драйверов с открытым исходным кодом» на Tegra K1 . [ 39 ]
В октябре 2016 года NetBSD добавила экспериментальную поддержку nouveau в NetBSD 7. [ 40 ]
См. также
[ редактировать ]- Бесплатный драйвер графического устройства с открытым исходным кодом
- Сравнение графических процессоров Nvidia
- Быстрее II
- VESA BIOS Extensions
Ссылки
[ редактировать ]- ^ фон Эйтцен, Крис (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 г.