Open source: разработчик видеокарт раскрыл документацию для драйверов под Linux

    Этот разработчик — Nvidia. Рассказываем, что было передано в open source, и обсуждаем мнения.


    Фото — Caspar Camille Rubin — Unsplash

    Что за документация


    В каком-то смысле событие можно назвать знаковым. Это первый раз, когда Nvidia выкладывает документацию в большом объеме. Компания публикует спецификации с 2012 года, но до сегодняшнего дня открывали только относительно небольшие их фрагменты. Например, несколько лет назад инженеры предоставили доступ к техническим документам по графическому ядру ARM-платформы Tegra, схеме размещения Device Control Block (DCB) в VBIOS с описанием топологии платы и коннекторов и списку заголовков для GV100 Volta.

    Новые спецификации выложили под лицензией MIT — найти их можно в официальном репозитории на GitHub (то же самое, но в HTML). Там есть информация о графических картах Maxwell, Pascal, Volta и Kepler: сведения о таблицах BIOS, управлении частотами, инициализации, режимах энергопотребления, обеспечении защиты в движке Falcon и заголовочных файлах для шейдеров.

    По словам представителей Nvidia, новая документация тоже не полная, но репозиторий будет регулярно обновляться. Например, в будущем туда планируют добавить данные по Turing.

    Мнения сообщества


    Автор блога Tom's Hardware отмечает, что развитие проектов вроде nouveau, которые создают свободные драйверы для видеокарт Nvidia, тормозило как раз отсутствие документации. Большое количество спецификаций упростит написание драйверов под Linux, и для этого не придется производить реверс-инжиниринг. Можно ожидать, что в ближайшее время практически все актуальные видеокарты начиная с 2012 года смогут получить улучшенные драйверы.

    Этот факт положительно отразится на игровой индустрии, которая начинает проявлять больший интерес к открытой операционной системе. Например, буквально в конце июля Valve (разработчики магазина Steam) внесли ряд изменений в проект Proton для запуска Windows-игр под Linux. Изменения связаны с оптимизацией работы многопоточных игр.


    Фото — CMDR Shane — Unsplash

    Здесь стоит отметить, что в Nvidia пока не раскрыли данные, которые помогли бы реализовать поддержку реклокинга (reclocking) — автоматического управления частотой — в картах серии GTX 9xx. Этот факт не позволит новым открытым драйверам работать «на полную мощность».

    Из-за отсутствия реклокинга, драйверы nouveau могут работать на 20–30% медленнее проприетарных. Хотя в будущем ситуация может измениться, когда Nvidia предоставит больше информации. Например, для архитектуры Maxwell 2 (представленной в 2014 году) патчи с функцией reclocking вышли в 2017 году.

    Один из резидентов Hacker News высказал мнение, что открытые драйверы в любом случае будут обладать меньшей производительностью, чем проприетарные. В Nvidia регулярно оптимизируют драйверы под отдельные игры — для этого они плотно взаимодействуют с их разработчиками. Такой возможности у программистов из проекта nouveau может не быть.

    Также в ИТ-сообществе есть мнение, что Nvidia сделали спецификацию открытой не только из-за любви к open source. В начале августа AMD реализовали поддержку своего графического процессора Navi 12 для Linux. Возможно, действия Nvidia — это попытка не отстать от конкурентов и не потерять влияние на активно развивающемся рынке.

    О других графических open source решениях


    В прошлом году в Nvidia представили открытую платформу Rapids. Её цель — упростить разработку алгоритмов МО на GPU. Специалисты по обработке данных пишут код на Python, а система автоматически оптимизирует его для запуска на графической карте с архитектурой CUDA.

    Тогда в поддержку нового решения высказались представители таких крупных компаний, как Cisco, Dell, NetApp и Lenovo. В IBM даже провели первые тесты и отметили, что платформа позволит ускорить работу машинных алгоритмов в 50 раз (по сравнению с CPU). Но Rapids и покритиковали — за то, что система работает только с картами от Nvidia.

    Свою платформу для HPC на графических картах разрабатывают и в AMD — она называется ROCm (Radeon Open Compute). В отличие от конкурентов, эта система умеет работать практически со всеми GPU. Также разработчики ROCm выбрали C++ вместо Python.

    Можно предположить, что эти решения, вкупе с новыми драйверами под Linux (которые непременно появятся), позволят извлечь еще большую производительность из имеющегося в распоряжении пользователей железа.

    О чем мы пишем в наших блогах и социальных сетях:

    Новые лицензии для открытого ПО, кто ими занимается
    Бенчмарки для Linux-серверов: 5 открытых инструментов

    Как обезопасить Linux-систему: 10 советов
    Big Data: большие возможности или большой обман

    7 сервисов для создания видео и анимации
    Как работает техподдержка 1cloud



    Мы в 1cloud.ru предлагаем услугу «SSL-сертификаты». Если нужно подтвердить владение доменом или защитить свое авторское право на программу.


    1cloud.ru
    290,54
    IaaS, VPS, VDS, Частное и публичное облако, SSL
    Поделиться публикацией

    Комментарии 13

      +16
      развитие проектов вроде nouveau, которые создают свободные драйверы для видеокарт Nvidia, тормозило как раз отсутствие документации
      Отсутствие документации по реклокингу, а её как раз и не открыли.

      GPU и видеопамять стартуют на очень низких частотах, которые в разы ниже максимальных, а при появлении нагрузки драйвер повышает частоту. Без реклокинга железо так и работает на этой низкой частоте, поэтому на современных видеокартах (Maxwell, Pascal, Turing) свободный драйвер показывает лишь 20-30% от производительности проприетарного. Реклокинг GPU, в настоящий момент, реализован лишь для видеокарт 7-летней давности (600-я серия готова и кто-то работает на 700-й). Реклокинг памяти отстаёт ещё на одно поколение.
        0
        А у свободного драйвера АМД такой проблемы нет?
          +10
          свободный драйвер амд разрабатывается самой амд и является рекомендованным драйвером от амд. у несвободного производительность хуже. свободный драйвер интела разрабатывается интелом и является единственным драйвером интела. и только нвидия вся в белом. в армах свободный драйвер броадкома (рпай) разрабатывается броадкомом. то, что щас сделала нвидия, может быть только первым шагом в очень длинной дороге. а может оказаться просто пусканием пыли в глаза и перекладываением на кого-то другого ответственности за поддержку легаси железа. но может ей гугл сказал, что в стадии таким не место
          0

          А что именно означает фраза про подписанные firmware https://nouveau.freedesktop.org/wiki/


          Little hope of reclocking becoming available for GM20x and newer GPUs as firmware now needs to be signed by NVIDIA to have the necessary access.
            0
            они практиковали генерацию и загрузку своей прошивки при реверсинжиниринге. теперь так нельзя и реверсинжиниринг сильно ослаб.
              +1
              Частотами и питанием управляет отдельный блок, для корректной работы которого необходимо загрузить правильно подписанный нвидией блоб с фирмварью. Проблема в том, что в «чистом» виде этого блоба в открытых источниках нигде нет, а выковырять его из закрытых дров достаточно сложная задача — нвидия очень постаралась дабы этого не произошло.
              Итого, все маквеллы и более современные карты остались без возможности управления питанием/частотами под открытыми дровами.
            +2
            Объясните чайнику, а в чем смысл скрывать документацию? Чтобы злобные конкуренты в лице АМД чего такого эдакого не вычитали?
              +3
              Есть почти 100% уверенность, что документации для разработчиков (в том виде, в каком nVidia её сейчас опубликовала) у них просто не было. А была внутренняя документация где вперемешку были как достаточно безобидная информация о том, как это железо использовать, так и разные детали реализации, про которые nVidia не хотело бы, чтобы кто-то знал (в частности AMD).

              Соответственно чтобы опубликовать документацию — её нужно просто сделать. А это — много типа не очень нужной работы.

              А вот почему решили вдруг её таки проделать и опубликовать… Не знаю.
                0
                Понятно, спасибо!
                  –1
                  Думаю тот факт, что Apple выкинула все Nvidia карты из своего железа (предположительно, потому что Nvidia не хотела переносить свои драйвера на Metal), а также неплохие анонсы от AMD, плюс тот факт, что новые консоли снова будут только на AMD, наконец-то хоть как-то отразились на Nvidia и они решили начать делать хоть что-то полезное.
                  В этом году и поддержку Freesync добавили для 10xx и 20xx карт, а теперь и драйвера наконец-то открытыми делают. Так, глядишь, и под MacOS наконец-то появятся нормальные дрова, и макинтошем можно будет нормально пользоваться на новых версиях ОС.
                  0

                  К верхнему комментарию есть ещё 2 фактора:
                  1.й гарантия, если полностью всё открыть, вы можете галочкой в ПО выжечь чип на 11 месяце гарантии, при этом доказать что это злой умысел не будет возможности (сейчас тоже можно но нужно приложить сильно больше усилий).
                  2-й все карты получат pro функционал, при этом продать про карты в 2-5 раз дороже станет сильно сложнее...


                  p.s. в последнее время данные вопросы менее актуальны ввиду подписи прошивок, но что будет если ключ утечёт?

                  0
                  Это хорошие новости, поддерживаю.
                    0
                    В прошлом волшебный «Fu*K» от Линуса на них подействовал, интересно, неужели действия АМД их подтолкнули к данному шагу в этот раз?

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое