Русский
Русский
English
Статистика
Реклама

Видеокарты

Перевод Интеграция собственных шрифтов в ПЗУ VGA-карты

27.05.2021 22:07:59 | Автор: admin

История об изысканиях возможных путей использования в видеокарте собственных шрифтов, которая увенчалась их полной интеграцией в ПЗУ VGA. На этом пути рассматривались различные варианты, возникали определенные сложности, но в конечном итоге старое доброе отображение шрифта было получено!

Предыстория


Когда-то давно у меня была видеокарта ISA VGA Chips and Technologies, в которой использовался приятный шрифт. Позднее мне довелось владеть еще одной интересной картой ATI EGA с красивым шрифтом. И сейчас у меня установлена ATI VGA Wonder 16 тоже с весьма привлекательным шрифтом. Суть в том, что все названные ISA-видеокарты очень медленные.

Первые две я продал, а последнюю все же решил оставить. Время от времени я ностальгирую по экземпляру от Chips and Technologies. Я так и не понял, почему ПК всякий раз выдавал звуковой сигнал ошибки VGA, хотя работала карта при этом отлично.

Ну да ладно, вернемся к современности. Для моих изысканий в области разработки самодельных систем необходима быстрая ISA-видеокарта. Исходя из этих соображений, я купил новую (!) залежавшуюся (и при том дорогую) Tseng Labs ET4000/W32i с 2Мб ОЗУ у парня по имени Тед Аллен, владельца Micro-Labs Inc. в США. Работает эта карточка идеально. Я без проблем могу запускать игры под MS-DOS, включая Quake в разрешении 320х200.

И все же, поскольку я до сих пор много программирую в MS-DOS, мне зачастую недостает шрифтов тех видеокарт, на которых я учился писать код. В купленной же мной карте Tseng Labs используется монотонный (считай квази-скучный) современный типовой шрифт из ПЗУ. Он не столь плох, как шрифты PCI-видеокарт, но все же.

Вступление


Шрифты в ПЗУ VGA не так уж легко заменить. Однако есть быстрый способ, который позволяет загружать собственный шрифт в ОЗУ VGA. Это делается с помощью небольшой резидентной программы, которая обеспечивает использование видеокартой заданного шрифта. Но по какой-то причине после запуска нескольких программ MS-DOS, устанавливающих собственные шрифты (например, HWiNFO, NSSI, NU), или программ графического режима резидентная утилита дает сбой, и карта возвращается к исходному шрифту из ПЗУ. Кроме того, она занимает 4096 байтов ОЗУ под данные шрифта и еще 368 байтов под программный код.

Чтобы решить эту условную проблему с памятью, я поместил резидентную программу в AUTOEXEC.BAT. Теперь эти 4.3Кб загружаются в свободный блок верхней области памяти (UMA). Для этого также должен быть загружен EMM386.EXE или аналогичный драйвер расширенной памяти.

Программное обеспечение


Но как же я создал свой собственный шрифт? Что ж, сначала я использовал FONTEDIT.COM. К сожалению, эта программа может генерировать лишь .COM файлы без возможностей резидентной программы. Может, я просто не знаю, как это делается? Еще одна проблема в том, что размер исполняемой программы получается около 8Кб.

Тогда-то я и нашел в интернете новую интересную утилиту Fontraption, написанную VileR. Он создал настолько грамотный продукт, что я оценил его уже сразу после загрузки.

Плохо лишь то, что Fontraption при отрисовке моей Tseng Labs ET4000/w32i выглядит как-то странновато. Окно редактирования шрифта вроде в порядке, но было бы лучше, если бы весь интерфейс прорисовывался также четко.



Очевидно, что VileR создавал эту программу с удовольствием. Он даже внедрил в нее техники управления палитрой, добавив таким образом комбинации цветов, которые по умолчанию на VGA-картах недоступны. Лично у меня с этой темой ассоциируются далекие воспоминания. Это был где-то 1997 год, когда я работал на 80286 ПК, подключенном к янтарно-монохромному ЭЛТ-монитору Tandon. Он был очень похож на газоразрядный дисплей, который, в свою очередь, походил на созданную VileR палитру Plasmatics.



Дополнено позднее: VileR нашел способ исправить баг и отправил мне обновленную версию Fontraption. Теперь она работает прекрасно, верно загружая шрифты из ПЗУ VGA. Исправление оказалось простым, но сама суть проблемы весьма интересна. Как сказал VileR:

[...] при обращении к VideoBIOS для загрузки встроенных шрифтов BL устанавливает целевой блок в карте 2 ОЗУ VGA (от 0 до 7), а для шрифта 8 х 16 у меня по случайности было установлено значение BL=8. Невалидно, но работает с большинством BIOS, поскольку они выполняют для этого значения операцию AND с 7. Тем не менее Tseng этого не делает, и шрифт не применяется, в результате чего программа при считывании из ожидаемого блока (0) получает мусор []

И вот теперь я думаю, что именно хотели преодолеть те программисты BIOS с помощью этой странной операции AND в нижней части регистра BX. Должна быть какая-то причина, но вскроется она наверняка нескоро.



Ну да хватит лишних слов, продолжим.



Таким образом, я приступил к разработке шрифта моей мечты. Кому-то он покажется красивым, кому-то, наоборот, страшным. Но мне он очень нравится. Это первый вариант шрифта, и я доволен. Еще многое предстоит проделать. Я проделал над этими шрифтами много работы, и теперь они вполне готовы к использованию. В основу моего дизайна лег оригинальный шрифт, который я извлек из ПЗУ ET4000/W32i. После я усердно старался вспомнить, как же именно выглядели старые шрифты, и опирался при этом на образец из ПЗУ ATI VGA Wonder 16.

Я экспортировал этот шрифт в виде исполняемой резидентной программы и радостно использовал его около года. Несколько же дней назад, работая над собственной реализацией ПЗУ BIOS для интерфейса ввода/вывода ISA, я подумал о включении этого шрифта в реальный код VGA BIOS. Это, конечно, может быть опасной и безумной затеей, но вполне выполнимой.

Для ее реализации я экспортировал сырой шрифт в двоичный файл с помощью команды Fontraption [^S]ave... F2. Отлично, наличие Fontraption фактически избавило меня от необходимости писать собственный инструмент для извлечения и управления шрифтом из ПЗУ.

Итак, я начал анализировать VGA BIOS своей Tseng Labs, для чего мне понадобился дамп ПЗУ-памяти. Не так давно я написал небольшую утилиту, способную считывать содержимое ПЗУ, код которой вместе с двоичным файлом загрузил на GitHub.

Изначально я создавал эту программу под использование с EEPROM 28C64B на моем интерфейсе ISA, но единственное существенное отличие здесь в наличии кода защиты от записи (SDP). Используется же он только для задач, связанных с записью EEPROM. В реальности эта программа может считывать любую ПЗУ, отображенную в ПК, при условии, что известен адрес отображения, и ее размер не превышает 32768 байтов.

GitHub Репозиторий: https://github.com/agroza/eepromrw
Основная программа: eepromrw.pas

Для получения ПЗУ VGA BIOS я использовал эту команду:

eepromrw.exe -read -addr=C000:0000 -size=8000 -file=vgarom.bin

Она считывает 32768 байтов (8000 в hex-системе) из адреса, обозначенного сегментом C000: 0000, в двоичный файл VGAROM.BIN.

После я написал еще один быстрый и грубоватый инструмент, сканирующий файл VGAROM.BIN в поиске стартовой точки размещения шрифта 8 x 16 в ПЗУ. В памяти Tseng Labs этот шрифт начинается в смещении 17984 (461C в hex-системе). На данный момент я не знаю, является ли это смещение стандартным для шрифта 8 х 16, хотя, меня это не особо волнует, так как моя цель заменить исходный шрифт из ПЗУ на собственный.

Итак, пришло время писать еще один инструмент, который эту замену реализует. Изначально его код получился страшноватым с большим количеством жестко прописанных констант. В итоге мне потребовалось кое-какое время на доработку в соответствии с собственными стандартами, после чего я уже смог выгрузить приемлемую версию на GitHub.

GitHub Репозиторий: https://github.com/agroza/romfontr
Основная программа: romfontr.pas

Новый шрифт в ПЗУ VGA BIOS я вшил с помощью этой команды:

romfontr.exe -offset=461C -romfile=vgarom.bin -fontfile=ag868x16.bin

Она записывает 4096 байтов (1000 в hex-системе) данных шрифта из AG868X16.BIN в заданное смещение (461С в hex-системе) файла VGAROM.BIN.

Аналогичные операции я проделал для всех размеров шрифтов и всех смещений, где эти шрифты могут находиться:

  • [12015 (2EEF)] данные шрифта 8 x 14 размером 3584 байтов;
  • [15900 (3E1C)] данные шрифта 8 x 8 размером 2048 байтов;
  • [17948 (461C)] данные шрифта 8 x 16 размером 4096 байтов.

Пока все хорошо, но есть еще один нюанс. ПЗУ VGA BIOS это дополнительная ПЗУ, и у нее есть контрольные суммы. Если System BIOS не находит действительную контрольную сумму в конце ПЗУ, то отказывается ее инициализировать. В результате никакого вывода видео, несмотря на нетронутость кода VGA BIOS и наличие шрифтов 8 x 16.

Теперь пора писать еще одну программу. Так, стоп У меня уже есть такая, которая генерирует 8-битные контрольные суммы ПЗУ. Писал я ее для Windows, но она вполне подойдет, так как для программирования микросхем я все равно использую именно эту ОС. Данная программа также загружена на GitHub.

GitHub Репозиторий: https://github.com/agroza/romcksum
Основная программа: romcksum.dpr

Вычисление и обновление ПЗУ VGA BIOS я делал с помощью этой команды:

romcksum.exe -o -vgarom.bin

Она вычисляет 8-битную контрольную сумму всех данных ПЗУ и соответствующим образом обновляет последний байт. Более того, дополнительный параметр -O сообщает программе, что файл нужно проверять как дополнительную ПЗУ.

Дополнено позднее: я добавил функции вычисления контрольной суммы и обновления непосредственно в программу ROM Font Replacer.

Это означает, что теперь команда, которую я мог использовать для вложения нового шрифта в ПЗУ VGA BIOS и вычисления -> обновления 8-битной контрольной суммы, выглядит так:

romfontr.exe -u -romfile=vgarom.bin -fontfile=ag868x16.bin

Такая возможность все ускоряет и позволяет пропускать промежуточный шаг использования программы ROM Checksum Calculator.

Теперь файл ПЗУ BIOS видеокарты Tseng Labs ET4000/W32i содержит мой собственный излюбленный шрифт 8 х 16 в качестве основного для всех текстовых режимов. На этом программная часть заканчивается и можно переходить к аппаратной.

Реверс инжиниринг ПЗУ VGA BIOS


В первую очередь мы займемся реверс-инжинирингом. Но почему? Потому что, если карта установлена в режим 03h, то она автоматически заменяет несколько выбранных глифов на кастомные, которые расположены после 4096 байтов данных шрифта 8 х 16. Не уверен, какая логика стоит за этим, но решение это очень интересно. Странность в том, что если переключить карту в режим 11h или 12h, то шрифт 8 х 16 используется корректно, и никакие глифы не заменяются.

Эту тайну быстро раскрыл мистер VileR. Я начал с ним беседу по поводу проблемы с отрисовкой Fontraption и попутно рассказал о глифах. Он сказал, что это альтернативные глифы шрифта для режимов 9 х 16. Я знал о них еще в 90-х, но мне было неизвестно, где и как они хранятся в ПЗУ.

Очевидно, что есть таблицы шрифтов 9 х 14 и 9 х 16, расположенные сразу после стандартных таблиц 8 х 14 и 8 х 16. В частности, каждому типу глифа предшествует байт, обозначающий код символа ASCII. В процессе обратного инжиниринга вскрылся еще один интересный факт, а именно то, что эти альтернативные таблицы шрифтов завершаются нулевым байтом.

Поэтому я дополнительно создал расширенные варианты шрифтов 9 х 14 и 9 х 16, после чего написал еще одну программу, которая выделяет эти расширенные глифы из массива данных шрифтов и записывает их в отдельные файлы в формате, ожидаемом процедурами отрисовки ПЗУ VGA ROM. Затем я совместил эти файлы с измененной ПЗУ VGA ROM и повторно вычислил байт контрольной суммы.

Структура всей области данных шрифтов ПЗУ VGA видеокарты Tseng Labs ET4000/W32i такова:

  • [12015 (2EEF)] данные шрифта 8 x 14 размером 3584 байтов;
  • [15599 (3CEF)] альтернативные данные шрифта 9 x 14 (19 глифов) размером 300 байтов;
  • [15899 (3E1B)] нулевой байт (0);
  • [15900 (3E1C)] данные шрифта 8 x 8 размером 2048 байтов;
  • [17948 (461C)] данные шрифта 8 x 16 размером 4096 байтов;
  • [22044 (561C)] альтернативные данные шрифта 8 x 16 (18 глифов) размером 323 байта;
  • [22367 (575F)] нулевой байт (0).

Общий размер данных шрифтов ПЗУ VGA составил 10353 байта.

Я закончил изменение обоих пакетных файлов MS-DOS, которые использовал для тестирования, и теперь они записывают все данные шрифтов последовательно в файл VGAROM.BIN. Ниже приведено исполняемое содержимое этого файла, который также вычисляет и обновляет 8-битную контрольную сумму.

romfontr.exe -u -offset=2EEF -romfile=vga.bin -fontfile=ag868x14.binromfontr.exe -u -offset=3CEF -romfile=vga.bin -fontfile=ag869x14.binromfontr.exe -u -offset=3E1C -romfile=vga.bin -fontfile=ag868x8.binromfontr.exe -u -offset=461C -romfile=vga.bin -fontfile=ag868x16.binromfontr.exe -u -offset=561C -romfile=vga.bin -fontfile=ag869x16.bin

Теперь у меня есть полноценный файл ПЗУ VGA BIOS со всеми новыми шрифтами и их альтернативными представлениями.

Работа с платой


Ниже вы видите мою Tseng Labs ET4000/W32i от Micro Labs. Мне очень нравится ее компоновка. Помню, что спрашивал Теда, какую программу CAD он использовал, но его ответ уже позабыл. Было бы здорово задокументировать и это тоже для истории.

В данной видеокарте использован неизвестный тип EEPROM. Неизвестный, потому что на ней наклеен красивый фиолетовый лейбл с надписью Made in America, который я не хочу ни сдирать, ни портить. В итоге узнать тип установленной EEPROM не получается. Однако шелкография на печатной плате гласит, что это 27C256. Вообще-то, я бы итак мог поспорить, что установлена именно 27C256 (или совместимая), потому что большинство, если не все, VGA-карты оснащались ПЗУ на 32Кбит.



Время знакомиться с видеокартой подробнее. Кроватка ПЗУ здесь одна из самых дешевых. Так как произведена карта в США, я бы ожидал, что Micro Labs используют Mill-Max или нечто подобное. Но они все же пошли по пути снижения стоимости, как это было свойственно производственным компаниям в то время. Тем не менее под кроваткой мы видим надпись: PCB MADE IN HONG KONG.

Ага! У США были (и еще есть) отличные предприятия по производству печатных плат. Но их услуги выливаются в приличную копеечку, которая в итоге отражается на стоимости конечного продукта. Как ни крути, а в конце-концов все производственные расходы оплачивает именно покупатель. Плата сделана добротно не лучше и не хуже большинства компьютерных плат начала 90-х. Однако она явно не сравнится по качеству с платой моей ATI VGA Wonder 16.



За генерацию тактовых частот карты отвечает интегральная схема CHRONTEL CH9294. Такие до сих пор можно приобрести на различных сайтах. В качестве RAMDAC* использована AT&T ATT20C490-80. Эта деталь тоже вполне доступна онлайн, как и микросхема ET4000/W32i. Тут я даже призадумался: А не собрать ли мне собственную VGA-карту? У меня все еще имеется каталог спецификаций Tseng Labs, и этот VGA-контроллер вместе с образцом схемы подробно в нем описан. Я бы даже мог улучшить дизайн, использовав современную более дешевую и доступную память. Но это уже отдельная тема, и пока она остается лишь пищей для размышлений.

*RAMDAC (сокр. от Random Access Memory Digital-to-Analog Converter) это часть компьютерной видеокарты, которая преобразует цифровые данные в аналоговый сигнал, отображаемый на мониторе компьютера.



Память представлена 16 микросхемами NN51425P производства NPNX, Япония. Честно, я ранее не слышал ни об этой компании, ни о подобных микросхемах памяти. В моем экземпляре карты один из модулей, а именно U12, не соответствует остальным и рассчитан не на 45 нс, а на 50.

Далее я демонтирую кроваткумикросхемы ПЗУ VGA BIOS. Эта операция не для трепетных сердец, но мне уже доводилось проделывать такую на других компьютерных платах. Я планирую использовать качественную кроватку Mill-Max класса AUGAT. Это упростит дальнейшее экспериментирование с различными микросхемами ПЗУ VGA BIOS.







После вмешательства сторона пайки смотрится вполне себе неплохо, и сама видеокарта будто только сошла с заводского конвейера.



Далее я запрограммирую микросхему EPROM 27C256-15 от Texas Instruments, допускающую стирание с помощью УФ. Для этих целей я использую универсальный программатор TL866II Plus, который мне очень полюбился. По началу после его покупки меня терзали некоторые сомнения, но после они полностью развеялись. Единственная сложность теперь это стирание EPROM. УФ-лампы у меня под рукой нет, но можно сымпровизировать, разбив стекло ртутной газоразрядной лампы на 250Вт.


Старая ПЗУ и новая EPROM

Эта ртутная лампа является мощным источником УФ-излучения. И поскольку у меня нет электронного балласта 250Вт, то в качестве его альтернативы я использую три вольфрамовых лампы накаливания (две по 75Вт и одну на 100Вт), соединив их последовательно с ртутной.



Очевидные рекомендации:

  • Никогда не смотреть на источник УФ-излучения, так как это может вызвать необратимую слепоту.
  • Разбивание стеклянной колбы также очень опасно, поскольку пары ртути чрезвычайно вредны для дыхательной системы.
  • Работа с оголенными внутренностями ртутной лампы представляет высокий риск поражения током и тем самым угрозу для жизни.

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

С этим импровизированным устройством я оперирую вне дома, так как УФ-излучение ионизирует воздух, производя озон. На улице я размещаю схему EPROM под ртутной лампой при отключенном питании. После этого удаленно подаю напряжение, находясь в нескольких метрах от места. Никогда нельзя исключать возможный риск взрыва ртутной лампы. С момента подачи питания я отсчитываю пять минут и выключаю устройство. Затем тестирую EPROM, определяя, все ли байты перешли в состояние FF. Если стирание произошло не полностью, я облучаю ее еще минуту и повторяю тест. Подобные одноминутные циклы я повторяю до тех пор, пока память не будет полностью стерта. Обычно мне удается добиться этого за 7-8 минут.

Дополнение: ночное сжигание битов с байтами. На меня нахлынула волна энтузиазма, и я увлекся стиранием еще нескольких EPROM, подготовив их к новому микрокоду. Все фото, где наблюдается УФ-излучение, сделаны удаленно при помощи автосъемки.





Отлично, EPROM очищена. Все биты установлены на 1 (иначе говоря, все байты в hex-системе сейчас выражены как FF). Микросхему я запрограммировал обновленным файлом ПЗУ. Кроватка на месте, и EPROM встает в него впритирку.



Время проверять карту. Ниже вы видите полученный результат. Большую часть времени я провожу в DOS-навигаторе и IDE Pascal, поэтому вполне естественно, что мне нравится, когда экран выглядит именно так.





Я уже и забыл, какая это морока фотографировать ЭЛТ-дисплеи Очень уж сложно не поймать линию развертки электронного луча где-нибудь в середине экрана.

Теперь все работает отлично. Никаких больше сбросов шрифтов после запуска HWiNFO. Да и вообще изображение мне очень нравится, так что на этом данный опыт можно завершать.

Надеюсь, что для вас он оказался интересен.


Подробнее..

Как мы спасали видео одной вебкам-модели нейросетями

24.05.2021 12:21:25 | Автор: admin

Недавно нам понадобилось чистить звук на рекламном ролике: во время записи шумел кулер. Обычно, в таких ситуациях дергается звукорежиссер, который долго и мучительно вычищает звуковую дорожку руками.

Но мы решили пойти новым путем и прогнали звуковую дорожку через нейросети плагина Nvidia RTX voice, всего за 6 минут мы получили настолько впечатляющий результат, что мы не смогли бы спокойно спать, пока не:

  • разобрались, как работает эта нейросеть
  • проверили, как плагин работает на ASMR теряется ли эффект или становится лучшие


Что за видео мы чистили


У Macloud появился амбассадор девушка Анна. Она ничего не знала об администрировании серверов до знакомства с нами, но ей оказалось интересно учиться.

У Ани довольно пикантная работа в 18+ стримингах и она решила объединить два хобби: во время стримов настраивать серверы по подсказкам зрителей.

Мы познакомились с Nvidia RTX voice, когда помогали ей чистить звук на первом ролике, где она поднимает VPN.

Но теперь давайте вернемся к нейросетям и ASMR может ли нейросетка уничтожить тот самый эффект?

Человеческое сознание еще не раскрыло нам всех своих тайн, люди почти досконально исследовали строение мозга, работу мембран в нейронах, механизм деполяризации и функции медиаторов, но само сознание все еще ускользает от исследователей и до сих пор нет четкого понимания о том что же оно такое. С момента поэтического определения, данного академиком Павловым, который сравнил его с солнечными зайчиками, скользящим по коре головного мозга, прошло очень много лет, но, с тех пор, ученые так и не могут определенно сказать что оно такое.

Что такое ASMR и откуда берутся мурашки?


Несколько лет назад был открыт забавный эффект, который, у некоторых людей, вызывает очень своеобразные ощущения, при прослушивании записей, где намеренно преувеличены шуршащие и шипящие звуки. Его назвали: ASMR (Autonomous sensory meridian response или Автономная сенсорная меридиональная реакция). Сложное определение не облегчает понимание его природы, которое выражается в мурашках возникающих где-то в затылке и спускающихся по шее к спине. Ощущения, чаще всего, приятные и очень залипательные, больше всего они похожи на мурашки, которые вызывает массажер мозга с пружинками.


Этому эффекту подвержены не все, он возникает примерно у трети людей, которые прослушивают ASMR-записи и сильно отличается по степени воздействия, тем не менее это не самовнушение и не коллективная галлюцинация, ощущения мурашек возникают совершенно однозначно и ярко.

Сама природа дрожи и озноба очень древняя, доставшаяся нам в наследство от далеких диких предков, живших в условиях постоянной угрозы жизни и здоровью. Все помнят теорию о происхождении видов и то, что нашими предками были приматы, той или иной степени волосатости. Шерсть это не пассивная ткань, состоящая из одних только омертвевших клеток, содержащих роговые пластинки и несет не чисто декоративную функцию. Одно из ее назначений, это защита от холода, с помощью создания воздушной теплоизолирующей прослойки, между кожей и окружающей средой. Изменение температуры воздуха, заставляет волосяной покров менять свою толщину. От холода сокращаются специальные мышцы, расположенные в толще кожи и поднимающие или опускающие волоски. Когда животному холодно, то волоски приподнимаются и шерсть становится более пышной, увеличивая толщину воздушной прослойки. Наверняка, все замечали, какими круглыми бывают снегири и синицы зимой, когда они нахохливаются от холода, это следствие работы пиломоторного (буквально: волоско-двигательного) рефлекса.


Другая причина изменения тонуса мускулатуры у волосяных фолликулов угроза. Древний рефлекс поднимает волоски дыбом, увеличивая контуры тела, иногда довольно значительно, чтобы произвести на потенциального врага впечатление того, что животное больше, чем есть на самом деле.


Все эти реакции остались и у человека, несмотря на то, что его волосяной покров практически утратил свое первоначальное значение. Внезапный порыв холодного ветра, попытка зайти в холодную воду, острый момент в фильме ужасов, нежное прикосновение близкого человека, особый аккорд в музыкальном произведении или даже одно только яркое воспоминание о подобном переживании и у человека начинают бегать мурашки по коже, а сама она покрывается характерными бугорками.


Так уж получилось, что мягкие шуршащие и шипящие звуки, вызывают у многих людей подобное ощущение, заставляя подниматься мельчайшие волоски и стимулируя рецепторы давления нервных клеток кожи, создавая иллюзию легчайшего прикосновения.

Как звукорежиссеры борятся с шепотом и шумом


Ученые так и не разобрались с причинами этого эффекта, видимо, пока находятся более увлекательные задачи, чем разбираться в мурашках от шипящих звуков. На обычных видео они почти всегда считаются дефектом записи и звукорежиссеры борются с ними самыми разными способами.

Первый круг обороны звукорежиссера от помех это фильтры микрофона, они часто попадают в кадр при съемках и любой может вспомнить как они выглядят. При студийной записи, перед микрофоном ставят так называемый поп-фильтр в виде очень тонкой сетки или мембраны, которая снижает помехи от дыхания человека. Когда съемка идет на открытом воздухе, то на микрофоны надевают меховые чехлы с очень длинными ворсинками и они становятся похожими на ангорских котов, это снижает турбулентные завихрения от ветра обтекающего микрофон.


Следующий этап борьбы с подобным шумом электронный. Чтобы понять, как он работает, разберемся в частотном составе человеческой речи.

Больше всего энергии человеческого голоса (около 60%) лежит в диапазоне от 63 Гц до 500 Гц, но информационное наполнение этого интервала всего 5%. Больше всего информации несет диапазон от 500 Гц до 1 кГц, ее в нем примерно 35%. Оставшиеся 60% информации приходится на шипящие звуки в диапазоне от 1 кГц до 8 кГц, но они несут всего всего 5% энергии. Хотя такие звуки самые слабые, от них сильно зависит разборчивость человеческой речи. Для удаления их из записи используется эквалайзер, при его правильной настройке, речь становится более четкой.


Хотя, микшерный пульт с огромным количеством настроек в разных частотных диапазонах, все еще является одним из главных атрибутов звукозаписывающей студии, в обработке используется и более современная технология: цифровой сигнальный процессор (digital signal processor, DSP). Комплекс, состоящий из узкоспециализированного микропроцессора и программ, который занимается автоматической обработкой аудиосигнала, сочетая в себе множество функций, которые раньше выполнялись с помощью ручной настройки или электронных схем. Помимо продвинутого эквалайзера, процессор может имитировать задержку сигнала для построения сцены в определенном участке помещения и многие другие функции обработки звука. DSP используются как в музыкальных плеерах, так и в системах распознавания речи, выделяя из сигнала наиболее информативные диапазоны частот.

Нейросети на тензорных ядрах: Nvidia RTX



Технология не стоит на месте, на смену ручному микшерному пульту и ограниченному набору обычных программ пришли нейронные сети. В 2017 году разработчики Nvidia опубликовали статью Interactive Reconstruction of Monte Carlo Image Sequences using a Recurrent Denoising Autoencoder, в которой описали метод машинного обучения для восстановления последовательностей изображений, полученных с помощью методов Монте-Карло, на его основе была создана программа NVIDIA OptiX AI-Accelerated Denoiser, которая занимается удалением шума с 3D-рендеров.

Если кто-то подзабыл суть метода Монте-Карло, мы напоминаем его в этой ASMR-записи:


На этом исследования не остановились: весной прошлого года, компания Nvidia представила продукт, который использует мощь современных видеокарт не только для взлома хэшей, майнинга крипты или банальных видеоигр, но и для улучшения качества видео-стриминга. Кроме вычитания фона из видеотрансляции, числомолотилка RTX используется в программе NVIDIA RTX Voice для интеллектуального шумоподавления в режиме реального времени. Теперь, владельцы дорогущих видеокарт могут значительно улучшить качество своих стримов.

Как же это работает? Изначально такая технология не предназначалась для работы со звуком, а стала продолжением развития нейросети для улучшения качества изображения. Давайте вспомним историю ее развития.

Началось все с того, что Nvidia разработала графические процессоры содержащие тензорные ядра. Раньше в графике использовались процессоры с шейдерными ядрами, они отличаются от обычных настольных процессоров тем, что могут производить более простые вычислительные операции, но зато во множестве параллельных конвейеров. Узкая специализация позволила сильно увеличить скорость обработки графики и такие процессоры стали называться GPU.

Много лет этой архитектуры хватало для расчетов трехмерных сцен, пока инженерам не пришла в голову идея, использовать видеокарты для работы другими вычислениями, где их архитектура была более оптимальной, чем у классических CPU, в том числе и в работе с нейронными сетями. Традиционные процессоры тоже подходят для этой цели, но они слишком универсальны и опять проигрывают многопоточным графическим процессорам в задаче, близкой, по сути, к обработке трехмерной сцены: огромное количество простых вычислений, на уровне простейших арифметических действий, выполняемых параллельно.

Слой сверхточной нейросети можно представить как матрицу, а операции с матрицами это тензорная математика, значит, для ускорения вычислений, надо воспользоваться процессорами, архитектура которых оптимизирована для работы с тензорами. В конце 2017 года была выпущена первая видеокарта с процессором содержащим тензорные ядра. Это был продукт для профессионалов, хотя игрушки на нем тоже можно было запускать, но основным ее предназначением были тензорные вычисления, которые она производила на порядок быстрее, чем процессоры на шейдерной архитектуре.

В конце 2018 года, фирма NVIDIA представила новую возможность в своих видеокартах улучшение качества изображения с помощью нейросети под названием DLSS (Deep Learning Super Sampling), суперсемплинг с помощью глубокого обучения. Традиционный ресемплинг и сглаживание требуют огромного количества вычислений и являются причиной высокой стоимости видеокарт, увеличение разрешения изображения происходит с помощью тупых числомолотилок, которые, по сути своей, производят предельно простые математические операции, но в огромном количестве. DLSS работает по другому, чтобы избежать масштабных вычислений, картинка считается для сравнительно небольшого разрешения, а зачем растягивается с помощью искусственного интеллекта. Это требует намного меньше ресурсов, чем прямой пересчет, при сравнимом качестве изображения и позволяет получать хорошую картинку на не очень дорогих видеокартах, а на мощных существенно повысить частоту кадров.

Первые версии нейросети DLSS работали используя тензорные ядра процессоров RTX Turing. Но получилось совсем не так, как в радужных обещаниях разработчиков NVIDIA, картинка выглядела мутной и с большим количеством артефактов, будто нарисованная грубыми мазками масляных красок:


Картинка кликабельная при клике она откроется в более высоком разрешении

Игроки без восторга встретили новую технологию, тем более, что она была привязана к определенным разрешениям и качеству, а поддерживалась только в небольшом количестве игр.

В итоге, Nvidia отказалась от DLSS первой версии и продолжала работу над усовершенствованием алгоритма. Следующий шаг был сделан для игры под названием Control, в ней использовалась работа нейросети на обычных шейдерных ядрах, но уже показывающая неплохие результаты, которые получились благодаря обучению нейросети на семплах рендеринга в высокое разрешение, взятых из этой самой игры.

Отличия разглядеть можно, но они не бросаются в глаза, как в первой версии, а затраты по мощности заметно меньше, что позволяет увеличить частоту кадров до комфортной. Если первая версия алгоритма, работавшая на тензорных ядрах, не давала существенного прироста качества, по сравнению с рендерингом в 1440 и апскейлом до 4К, но еще и работала почти с той-же скоростью. То последняя версия, на шейдерных ядрах, работает быстрее апскейла и со сравнимым качеством.

В конце 2019 года была завершена разработка новой версии DLSS. В ней были сняты все ограничения на разрешение и качество, алгоритм снова стал стал работать на тензорных ядрах видеокарт семейства RTX и перестал требовать предварительного обучения на сэмплах из каждой конкретной игры.

У алгоритма есть проблемы, он пока не очень хорошо работает на сетках и тонких линиях, но уже вполне оправдывает себя. Версия, работающая на тензорных ядрах примерно на 30-40% быстрее, чем шейдерная.

Как NVIDIA RTX Voice автоматически подрезает шум



После успешного запуска DLSS для графики, разработчики Nvidia не остановились на достигнутом и расширили примирение нейросети до обработки звука, плагин NVIDIA RTX Voice построен на ее основе, но алгоритм немного отличается. Нейросеть используемая в этом случае, относится к вариационным автоэнкодерам или автокодировщикам.


В отличии от традиционных нейросетей, у которых в промежуточных слоях очень много нейронов, у автоэнкодера количество нейронов уменьшается в каждом последующем слое. Его задачей является не распознавание объекта, а наоборот отбрасывание всех данных, не являющихся ключевыми для него. Другими словами он удаляет шум, сначала кодируя объект с помощью аппроксимации, а потом декодируя его обратно. Нейросеть для RTX Voice обучалась на сэмплах человеческого голоса, тренируясь отсекать все посторонние звуки, которые не относятся к речи. Если ее запустить наоборот, то она отфильтрует из звуковой дорожки все посторонние шумы, оставив только чистый голос. (Что-то похожее делали ретушеры при обработке фотографий, до того, как для этого были выпущены многочисленные плагины-шумодавы. Фотография уменьшалась в полтора-два раза, а потом увеличивалась обратно, в результате этой операции качество страдало не очень сильно, но зато заметно сглаживались шумы характерные для джпеговской компрессии ли скана с журнального оттиска.)

Поскольку для подобной операции используются тензорные ядра видеокарт и потому, технология работает только на графических адаптерах серии RTX.

Нейросетка в действии: как сработало на обычном стриме и ASMR


Пришло время рассказать о том, как мы попробовали применить видеокарту RTX для очистки нашей записи от шумов и к чему это привело. На видео ниже фрагмент стрима, на котором выключено шумоподавление:


Полное видео, как Аня настраивает VPN можно посмотреть на Vimeo. Версия для смелых без цензуры на onlyfans.

Видео записывалось смартфоном iPhone 11. На этом ролике последовательно демонстрируется запись звука с разных источников

  • встроенные микрофоны iPhone, все шумодавы выключены;
  • встроенные микрофоны iPhone, включен шумодав Nvidia RTX Voice;
  • микрофоны гарнитуры из ценового диапазона $100-$120, шумодавы выключены;
  • микрофоны гарнитуры из ценового диапазона $100-$120, включен шумодав Nvidia RTX Voice;
  • USB-микрофон, все шумодавы выключены;
  • USB-микрофон, включен шумодав Nvidia RTX Voice;

Побочные шумы выключаются практически полностью и становится очень наглядна разница между микрофонами разного качества. В одних речь звучит отчетливее.

В следующем ролике видны слабые места алгоритма RTX Voice. У нейросети явные проблемы с шепотом, она проглатывает первые и последние звуки, принимая их за паразитный шум. Справедливости ради стоит сказать, что вряд ли можно выделать речь традиционными способами из такого шума.

Зато, некоторые шумы очень напоминают курьезы, когда нейросети обманывали с помощью особым образом искаженных фотографий и компьютер путался, пытаясь определить совершенно очевидные, для человека, объекты.

При царапании открытки, алгоритм распознает издаваемые звуки как речь и пытается ее восстановить. Получается забавно и немного пугающий эффект когда вместо скрипа мы слышим рваную и нечленораздельную речь (0:24 сек). Приходят мысли о бунте машин и зарождающемся нечеловеческом разуме.


Спектограммы из видео-ролика с ASMR


На спектрограммах наглядно видна работа TRX Voice звуковая дорожка из ролика, где девушка шептала и шуршала в микрофон.


Исходный звук, без вмешательство искусственного интеллекта


Звук, обработанный нейросетью

А всплеск на пустом участке справа это та самая говорящая открытка!

Для мурашек нейросети еще придется постараться


Nvidia RTX voice отлично справляется с обработкой шумов, если бюджет ограничен, а видео нужно спасать. Но для записи и обработки ASMR он не подходит.



VPS серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Своими руками Компьютер в столе с жидкостным охлаждением

06.09.2020 10:13:38 | Автор: admin
image

Друзья всех приветствую!

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

Изготовление начинается с рамы: это столешница, ножки, перекладина жесткости и кронштейн.

Размеры товарищ захотел 122 на 65 см.

image

Товарищ захотел сочетание черного и белого цвета, в матовом исполнении.

image

Изготовление кастом СВО:

Отдельный контур под процессор
Отдельный контур под видеокарту

Два радиатора по 420 мм от EK
Две колбы HEATKILLER
Моноблок на процессор EK
Водоблок на видеокарте EK
Кулеры по 140 мм от Thermaltake

image

Контур под процессор, здесь используется i9-9900K
Товарищу хватает его за глаза.

image

Моноблок от EK отлично охлаждает i9 и цепи питания на материнской плате.

image

Много подсветки, но она легко выключается одной кнопкой.

Столешница поднимается, и ты можешь полюбоваться своим компьютером.

image

Стекло и часть столешницы фиксируется в верхнем положении при помощи двух газлифтов.

image

Толщина такого ПК в столе приятно удивляет, им удобно пользоваться.

image

Вид сверху

image

Конфигурация ПК

Процессор: i9-9900K
Мать: ASUS ROG Maximus XI Hero
ОЗУ: G.SKILL Trident Z Royal (32 GB)
Видеокарта: EVGA RTX 2080 SUPER
SSD: Samsung 970 Pro (1024 GB)
HDD: WD Black (2 Tb)

Тест на нагрев в AIDA64 и FurMark

Процессор прогревался до 50 градусов
Видеокарта прогревалась до 55 градусов
Уровень шума (при пиковой нагрузке) около 36 db.

image

Что особенно радует, стекло, даже при пиковой нагрузке, остается комнатной температуры, на улице в момент теста было около 30 градусов.

image

Вся подсветка RGB и делится на несколько зон.

Можно отдельно включать подсветку в ножках, отдельно в столешнице. Любые цвета, и выключается она одной кнопочкой.

image

Кабель питания от монитора и ПК соединяется внутри столешницы и через кабель канал в ножке выходит с правой стороны.

На выходе ты получаешь всего лишь один кабель питания, что вставляется в розетку. Гигабитный Wi-Fi уже тоже установлен внутри.

image

Вставка в ножке на магнитах и легко снимается.

Можно легко обновить дизайн своего ПК в столе, просто поменяв эту вставку. Я их делаю из карбона, стекла и даже дерева.

image

Подставка от монитора не занимает место на столешнице и при этом его можно двигать во всех плоскостях.

image

Стекло использую закаленное, толщина 6 мм, по краю есть фаска, чтобы не было углов в 90 градусов.

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

image

Верхушка естественно герметичная, если пролить чай, внутрь жидкость никак не попадет.

image

Стол легко разбирается и удобно транспортируется в деревянном ящике.

Именно в такой упаковке, этот ПК В СТОЛЕ и отправился к моему товарищу.

image

На изготовление такого проекта с нуля, у меня ушло 30 дней.

Спасибо за внимание! :)

image
image
Подробнее..

OpenGL на AppleM1

14.12.2020 18:12:07 | Автор: admin

Apple ведёт активную борьбу с открытыми стандартами и некоторое время назад объявила OpenGL "устаревшим" на своей платформе macOS Mojave 10.14, двигая разработчиков в сторону проприетарного графического API Metal. Анонсы Mac mini на чипсете Apple M1 (ARM) и macOS 11 Big Sur были восприняты с тревогой за судьбу OpenGL на этой платформе, однако различные источники успокаивали - OpenGL всё ещё поддерживается macOS Big Sur.

Оставался один вопрос - какую версию OpenGL может предложить графический процессор "новичка" Apple M1? Официальная документация Apple не обновлялась с 2017го года, и в ней, разумеется, нет упоминаний M1, а доступные на момент написания статьи не освещают данный момент.

Наконец, одним вопросом стало меньше! Как оказалось, macOS заявляет о поддержке OpenGL 4.1 для данного чипа, реализованного поверх Metal - то есть достигает верхней планки OpenGL, доступной на данной платформе для других GPUs, даже GeForce и Radeon.

Для сравнения - сверху скриншот CAD Assistant, запущенного на M1 (Mac mini '2020), а снизу на Intel UHD Graphics 630 (Mac mini '2018). Скриншот демонстрирует работу трассировки путей (Path Tracing) на GPU реализованного открытым графическим движком Open CASCADE Technology. Path Tracing требует OpenGL 4+ и представляется собой достаточно сложную GLSL программу - так что это неплохой способ проверить работоспособность GPU и реализации OpenGL.

К сведению, самая распространённые реализации OpenGL на Windows давно поддерживают версию OpenGL 4.5 ('2014) и выше, спецификации которой вышли без малого шесть лет назад, тогда как OpenGL 4.1 ('2010) уже исполнилось 10 лет! Но удивляться "отсталости" Apple тут нет смысла - компания нигде не объявляла войну OpenGL, но план вытеснения его с платформы macOS прослеживался уже давно, даже до представления общественности проприетарного графического API Metal в 2014ом году - сначала для iOS, а затем и для macOS. И, к сожалению, в отличие от других платформ, производители видеокарт не могут обновить версию OpenGL независимо от Apple.

Счётчик кадров в секунду в простой тестовой сцене со стеклянным шариком демонстрирует преимущество до двух раз M1 над Intel HD 630: 48 FPS против 25 FPS для маленького окошка и 14.8 FPS против 6.5 FPS для разрешения 1080p. Конечно, тут M1 выглядит достойно только по сравнению со слабым GPU процессора Intel i5 - цифры не идут ни в какое сравнение со 100+ FPS для 1080p на мобильных видеокартах среднего сегмента, таких как четырёхлетний GeForce 1060 GTX.

Для простоты эксперимента, CAD Assistant запускался через Rosetta - программное решение Apple для запуска x86-64 приложений на ARM64 процессоре (коим является новый M1). Важность такого инструмента трудно недооценить, ведь на момент анонса 99.9% программного обеспечения, доступного для macOS, рассчитано на процессоры Intel.

И тем удивительнее, как смело Apple играет своими мускулами, ведь Rosetta даже не предустановлена на macOS Big Sur! Приложения .app для Intel в Finder просто не запускаются на свежей системе, при этом система не показывает ни единого сообщения об ошибке. А вот запуск инсталлционного пакета .pkg сразу предложила установить Rosetta, после чего запуск старых приложений стал возможен.

Проблема совместимости со старыми приложениями при появлении новых платформ была актуальна не один раз. IA-64 (64битная архитектура процессоров Intel Itanium) не поддерживала запуск x86 приложений, а вот x86_64 (или AMD64, 64-битная архитектура современных процессоров Intel и AMD) была изначально рассчитана на совместимость с существующими x86 платформами и приложениями. Более того, 64-битная версия Windows XP для процессоров AMD вышла только в 2005 году - то есть спустя два года после выпуска первых процессоров AMD Athlon 64 / Opteron с этой архитектурой. Благодаря обратной совместимости (в том числе реализации WoW64 для прозрачного запуска 32битных приложений на 64битной Windows), 32битные x86 приложения и операционные системы оставались популярными ещё долгие годы.

Процессоры ARM физически не поддерживют инструкции x86 (как и наоборот), поэтому реализация запуска и эффективной работы приложений, написанных для другой архитектуры процессоров, представляет собой определённые сложности. Для Apple этот опыт был уже не первым в истории - первая версия Rosetta использовалась для запуска PowerPC приложений на процессорах Intel в 2006 году.

Подобные решения можно было наблюдать и на других платформах, таких как Android - когда аутсайдер мобильного рынка Intel пытался конкурировать с ARM. Такие версии Android на процессорах Intel позволяли запускать приложения собранные для архитектуры ARM. По моему опыту, работала такая комбинация не очень стабильно - многие приложения падали и работали некорректно. Тем интереснее понаблюдать за работой приложений через Rosetta 2:

  • Видеоплеер sView заработал без видимых проблем, но наблюдаются падения приложения при изменении размера окна.

  • CAD Assistant запускается и в целом работает, однако вскоре возникают артефакты отображения текста через рендер QtQuick.

  • Telegram запустился и вроде бы работает.

  • Edge также заработал на паре сайтов.

  • Firefox запустился, но работает некорректно (зависает открытие сайтов, падения).

Не могу сказать, связаны ли наблюдаемые проблемы именно с Rosetta, или с самой системой macOS Big Sur, или даже с графическими драйверами Apple M1. В будущем с появлением нативных ARM приложений для macOS этот вопрос может прояснится.

Intel версия sView на macOS Big Sur (ARM)Intel версия sView на macOS Big Sur (ARM)Битый текст в Intel версии CAD Assistant на macOS Big Sur (ARM)Битый текст в Intel версии CAD Assistant на macOS Big Sur (ARM)

Английская версия публикации может быть найдена по следующей ссылке.

Подробнее..

Краткая история 3D в видео-играх

03.06.2021 10:20:31 | Автор: admin

В 80-ые интернет и цифровые миры были чем-то загадочным и мистическим, а техно-энтузиасты уже задумывались о трехмерности видеоигровых миров.

Я большой фанат видеоигр, работаю в 3D уже 15 лет, но ни разу не встречал последовательно написанной истории развития 3D-графики в гейм-индустрии и решил написать ее сам. Копнув в историю, я нашел много забавных вещей: например, что первую 3D-игру создали, пользуясь служебным положением, ученые NASA на лучших компьютерах своего времени; как пришли и ушли аркадные автоматы, как эллипсоидный движок Ecstatica позволял делать идеально круглые ягодицы персонажей 94 году и многое другое.

За 40 лет индустрия прошла все этапы взросления начиная в юности с голого 3D-каркаса (когда рисуются только ребра модели, а грани остаются прозрачными), сегодня в своей зрелости она дала нам микрополигоны, рейтрейсинг и графику уровня кино.

Если вам интересно, как развивались технологии, а с ними и 3D-графика мира фантазий наяву, добро пожаловать под кат. Осторожно, если вы экономите трафик чтобы наглядно показать развитие графики, я срендерил гифку для каждой новой технологии и они довольно тяжелые.

Пролог. Лаборатории NASA


Забавный факт, что первыми создателями и геймерами в 3D-видеоигры были программисты и ученые NASA.


Maze War шутер, где игроки перемещаются по лабиринту, другие участники игры представлены на экране в виде глазных яблок

Первой трехмерной игрой был Maze War (1973) многопользовательский шутер, где игроки в виде глазных яблок перемещаются по лабиринту и убивают друг-друга. Ее создали на лучших компьютерах того времени Imlac PDS-1 ценой в 8 тысяч долларов (4 недорогих автомобиля) в свободное время два программиста, работавших в Исследовательском центре Эймса NASA. Движения игроков были дискретными а камера могла поворачиваться ровно на 90 градусов по горизонтальной оси.


Imlac PDS-1. 16 bit. 8 16 Kb RAM с магнитным сердечником

А в 1975 году появилась Spasim трехмерный многопользовательский космический симулятор на 32 игрока.


Spasim в нее также играли с помощью оборудования ценой в несколько миллионов долларов

Игра также запускалась с помощью устройств недоступным обычному человеку на компьютерной системе PLATO. Изначально PLATO была разработана для удаленного обучения, но со временем переросла в сетевое сообщество с почтой, чатами, форумами, поисковиками и т.д.

Система состояла из сотни терминалов расположенных в учебных заведениях и была построена вокруг суперкомпьютера CDC Cyber 73, ценой в несколько миллионов долларов. При этом игра работала со скоростью 1 кадр в секунду (1 fps). Создать игру удалось благодаря использованию системы передового программного языка TUTOR.



Компьютерный зал CDC Cyber 170, 1986. 25 Mhz и 8 Mb RAM

Затем 3D игры перестали быть эксклюзивом секретных лабораторий NASA и началась эпоха коммерческих и доступных широкой аудитории трехмерных видеоигр.

Предтечи


1980 Wirframe-каркасы / векторные контуры


Пока понятие домашний компьютер лишь зарождалось, а видеоускорители не существовали, передовые игровые технологии разрабатывались для аркадных автоматов. Выход трехмерной игры стал возможным благодаря процессору MOS Technology M6502 (1.512 Mhz), и использованию сопроцессора Math Box. Их производительность позволила рендерить простейший вид трехмерной графики wireframe.



Wireframe. Отображение только ребер, грани же остаются прозрачными

В 1980 году на аркадном автомате выходит игра Battlezone от Atari. От первого лица игрок управляет танком и перемещаясь по трехмерному полю боя стреляет в другие танки.

Благодаря новизне игрового процесса и трехмерной графике игра долго была популярна и позже в 1983 году была портирована на Atari 2600, а позже и на другие домашние игровые консоли, а также получила ремейк в 1998 году. Игра выглядела как цифровой интернет мир будущего в фантастике XX века (сейчас такой визуальный стиль называют ретро-вейв).

Так было положено начало зарождению видео игровой трехмерной графики.


1983 Закрашенные полигоны


Следующим шагом естественного развития стало отойти от абстрактной полигональной сетки, и сделать полигоны похожими на поверхность.



Закрашенные полигоны. Полигоны залиты цветом и применяется плоская модель теней

Первой такой игрой стала игра в жанре shootem up I, Robot от Atari. Цель игры пройти 126 уровней, перекрасив красные квадраты в синий цвет, уничтожив щит и глаз Старшего брата. После выпуска игры I, Robot получила негативные отзывы критиков и не окупила затрат на разработку. Было произведено примерно 7501500 автоматов, некоторые из которых сохранились до сих пор. В настоящее время игровые автоматы для этой игры являются редким предметом коллекционирования, а игра получила запоздалое признание за инновационную трехмерную графику.

В аркадном автомате для I, Robot, использовался 8-разрядный процессор Motorola 6809, мощностью 1,5 Mhz.


1985 Масштабируемые спрайты




Масштабируемые спрайты. 2D спрайт увеличивается или уменьшался в зависимости от удаления объекта от камеры

Масштабируемые спрайты использовались на аркадном автомате в игре Space Harrier (1985) от SEGA динамичноом 3D шутере Shoot 'em up от третьего лица в сюрреалистичном мире, наполненном яркими цветами.

Хорошо видно насколько недоставало детализации трехмерным играм тех лет, потому часть разработчиков пользовались поддельным 3D, используя масштабируемые спрайты.

Чтобы создать ощущение 3D-глубины масштаб спрайта увеличивался или уменьшался в зависимости от удаления объекта от камеры. Хотя это было и не в полной мере 3D, это была уже 16-битная картинка требующая хорошей производительности. В сердце автомата было установлено два 32-битных процессора Motorola 680x0 мощностью в 10 Mhz, а за звук отвечал Yamaha YM2203 (4 Mhz).

Как и предыдущие игры со временем Space Harrier была портирована на домашние игровые системы Sega 32X, Sega Saturn, Sharp X68000, а позже и поставлялась в составе Shenmue для Dreamcast и Xbox.


Space Harrier (1985) сияет своей детализацией на фоне 3D игр того времени

1994 Великий год в становлении видеоигровой 3D графики


1994 был годом, когда домашние игровые системы стали достаточно мощными, чтобы двигать прогресс игрового 3D. Видеоигровая графика начинает свое шествие навстречу фотореализму.

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

Появляется метод затенения по Гуро, который сглаживает цветовые переходы между гранями полигонов. Цвет каждого полигона интерполируется между вершинами, благодаря чему объект выглядит гладким даже при малом количестве граней.



Затенение по Гуро. Сглаживание цветовых переходов между гранями полигонов

Это позволило объектам без жестких граней реалистично реагировать на свет. Star Wars: Tie Fighter (1994) была первой игрой где использовался данный метод. Она вышла на домашнем компьютере под управлением MS-DOS 4.0 и требовала процессор intel i386 и частотой 12-40 Mhz и 2 Mb RAM.


Star Wars: Tie Fighter (1994)

В этом же году выходит первое поколение консолей, способных рендерить 3D: Nintendo 64 и Playstation.

Nintendo 64 центральный процессор NEC VR4300 (93, 75 Mhz), вспомогательный процессор для обработки графики и звука Reality Co-Processor (RCP) частотой в 62,5 Mhz, разделенный внутри на два основных компонента Reality Drawing Processor (RDP) и Reality Signal Processor (RSP). Друг с другом компоненты обмениваются данными через 128-разрядную шину с пропускной способностью в 1,0 ГБ/с. RSP это 8-разрядный целочисленный векторный процессор на основе MIPS R4000. Он программируется микрокодом, что позволяет значительно изменять функциональность процессора, если потребуется, для различных видов работ, точности и загрузки. RSP выполняет геометрические преобразования, обрезку, вычисления связанные с освещением, обработку треугольников, и обладает производительностью примерно в 100 000 полигонов в секунду.

Playstation центральный процессор MIPS R3000A-совместимый (R3051) 32-разрядный RISC-микропроцессор, работающий на частоте 33,8688 Mhz, ОЗУ 2 Мб + видео ОЗУ 1 Мб + аудио ОЗУ 512 Кб. Что позволяло получить реальную производительность: 360 000 полигонов в секунду/ 180 000 текстурированных и освещенных полигонов в секунду.

В громких промо-материалах того времени маркетологи обещали графику уровня Истории игрушек в реальном времени. На деле же из за ограничений мощности консолей пятого поколения 3D имело постоянный эффект подергивания. Консоли не хватало ресурсов чтобы свободно перемещать полигоны в пространстве, и существовала виртуальная 3D сетка-таблица, к ячейкам которой привязывались полигоны. При движении объекта или камеры вершины перескакивали и примагничивались к ближайшей от предпологаемой геометрией ячейке виртуальной таблицы.



Существовала виртуальная 3D сетка-таблица, к ячейкам которой привязывались полигоны. Поэтому создавалось ощущение подергивания поверхностей.

Тем не менее консоли пятого поколения подняли планку графики в домашних видеоиграх и запустил тренд на использование 3D вышли Need For Speed, Tekken, Super Mario 64.

Все еще 1994. Ecstatica эллипсоидный движок


В то время, как все практиковали ставшей сегодня традиционным метод полигонального 3D, Эндрю Спенсер пишет движок в котором все состоит из эллипсоидов. Так появляется survival horror игра Ecstatica.

Эллипсоидный подход позволил избавиться от и угловатости низкого полигонажа. Но породило обратную проблему жесткие грани теперь создавались огромным количеством плотно расположенных друг к другу эллипсоидов. Но тем не менее такая округлая картинка удивляла своей детализацией и воспринималась как самостоятельный визуальный стиль.



Эллипсоидный движок. Экзотический подход к созданию 3D из сфер, а не полигонов.

Ecstatica работала на MS-DOS и требовала процессора intel pentium (60 Mhz).



Зрелость. Эпоха шейдеров и видеоускорителей


Производительность устройств росла и развитие технологий рендера продолжилось в нескольких направлениях:

  • Увеличение количества полигонов и разрешения текстур: в 1998 году в Tomb Raider III использовались текстуры 64x64 px, а в 2016 в Uncharted 4 4096x4096 px.
    Если в 2001 году у Мастера Чифа в Halo модель имели 2000 полигонов, то в 2017 в Mass Effect Andromeda около 60000 полигонов. Но не только количество полигонов и разрешение текстур влияет на финальную картинку.


Разница в разрешении текстур в 1998 и 2016 годах. Справа видно что для одного шейдера стали использоваться несколько разных карт.

  • Из кино пришли пост-эффекты (эффекты которые накладываются на изображение уже поверх отрендеренного кадра): такие как наложение бликов-флееров, виньетки, инверсии, tone mapping, color grading и прочих эффектов. Также из кино приходит рендер по слоям/каналам с сохранением кадров с информацией о глубине, движении, тенях в буфере. Отличная статья о том как это устроено в GTA V: http://personeltest.ru/aways/habr.com/ru/company/ua-hosting/blog/271931/

  • Совершенствовались шейдеры мини программы, определяющие характеристики поверхностей. Сначала вся информация о материале была в одной текстуре-картинке: тени, блики и микродетали сохранялись в одно изображение. Поэтому на перемещения источников света или же движение камеры поверхность не реагировала.


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



Шейдер 2000 г. (простая текстура цвета), и шейдер 2006 г. (детали на камне реагирующие на угол падения света, поддельные отражения на сферах, мягкие тени)

Далее несколько лет совершенствований уже существующих технологий: Появляются альтернативы Normal Map в виде Parallax map, которые делают объемные элементы текстур еще более реалистичными, совершенствуется screen space reflection, появляется AO, Physically Based Rendering, и т.д. А затем случается следующий эволюционный шаг рейтрейсинг.



Рейтрейсинг. Метод рендера при котором просчитывается настоящее поведение света и отражений.

Трассировка лучей (Ray tracing; рейтрейсинг) в компьютерных играх это решение для создания реалистичного освещения, отражений и теней, обеспечивающее более высокий уровень реализма по сравнению с традиционными способами рендеринга. Nvidia Turing, и ATI 6000 стали первыми GPU, позволяющими проводить трассировку лучей в реальном времени. В этом им помогают нейросети и искусственный интеллект, т.к. чистой производительности, к сожалению, все еще не хватает чтобы рендер происходил в достаточном разрешении.

Вскоре выходит демо Unreal Engine 5 запущенное на Playstation 5 и демонстрирует что в реальном времени можно просчитывать не только свет, тени, но и proxy-геометрию, это такой уровень детализации который используется в кино (полигоны настолько маленькие и их настолько много что они выглядят как шум). Раньше же как правило сначала создавалась высокополигональная модель, затем часть деталей сохранялась только в текстурах а количество полигонов максимально сокращалось на благо оптимизации.

Чуть больше чем за 40 лет от голой полигональной сетки видеоигровая индустрия пришла к настоящему видеореализму.


Демо Unreal Engine 5.

Особенно впечатляет когда включается полигональная сетка. Сравните её с сеткой в Battlezone 1980

Эпилог


Что нового ожидать в видеоигровой графике? Индустрия созрела и, к сожалению, технологии потеряли в своей загадочности. Игровая графика в течение последних 20 лет гналась за кинографикой. Постепенно в рендер в реальном времени приходили технологии из кино. Рендер кадра занимал часы теперь занимает 1/60 секунды. Видеоигровые технологии догнали кинотехнологии и в чем-то можно сказать перегнали. Хорошо известен пример сериала Мандалорец, где использовался видеоигровой движок Unreal 4. Круг замкнулся.

Технологии стали доступны дома теперь каждый может делать видеоигры и спецэффекты Голливудского уровня. И не это ли фантастика.





Облачные серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Включение гибридной графики в Ubuntu на ноутбуках Nvidia Intel (OpenGL, Vulkan)

07.05.2021 00:04:44 | Автор: admin

Введение

Это простая инструкция как включить гибридную графику intel-nvidia на ноутбуке. Чтобы определенные приложения запускались на дискретном чипе, а другие на встроенном. На свое удивление в интернете не нашел простую инструкцию того, как запускать определенные приложения, используя дискретную графику. Так что напишу так просто, на сколько считаю нужным

У меня система KDE Neon 5.21 - по большому счету - Ubuntu LTS с окружением рабочего стола KDE Plasma 5.21, видеочип GeForce MX150

1. Устанавливаем драйвер

a) Если у вас система на Qt (Как правило окружение KDE или LXQt), то с помощью данной команды через терминал загрузим программу для установки драйверов:

sudo apt install software-properties-qt

Если у вас система на GTK то с помощью это команды:

sudo apt install software-properties-gtk

Хотя разницы принципиальной нет

b) Затем запускаем ее с правами root

sudo software-properties-qt
Можно так же добавить ярлык для запуска в меню приложений

Инструкция для KDE

В папке ~/.local/share/applications/ создадим файл software properties qt.desktop с таким содержанием

[Desktop Entry]Categories=System;Settings;Comment[ru_RU]=driversComment=driversExec=konsole -e "~/.local/share/applications/software-properties-qt.sh"GenericName[ru_RU]=Установка драйверов\sGenericName=Установка драйверов\sIcon=systemsettingsMimeType=Name[ru_RU]=software properties qt\nName=software properties qt\nPath=StartupNotify=trueTerminal=falseTerminalOptions=Type=ApplicationX-DBUS-ServiceName=X-DBUS-StartupType=X-KDE-SubstituteUID=falseX-KDE-Username=

И файл software properties qt.sh в той же папке:

#! /bin/bashecho software-properties-qtsudo /usr/bin/software-properties-qt

После перезагрузки ярлык появится в меню

Но это далеко не обязательно, вполне достаточно запустить из консоли для наших целей настройки гибридной графики

c) Переходим на последнюю вкладку Additional drivers и устанавливаем нужный драйвер. Я выбрал самой последней версии, который не tested и не server

d) После установки перезагружаем устройство

2. Настраиваем видеокарту

a) Загружаем следующую программу:

sudo apt install nvidia-settings

И запускаем

b) Переходим в PRIME Profiles Здесь мы видим три пункта:

  1. NVIDIA (Performance Mode) - работать только на дискретной графике. Сильно потребляет батарею в несложных задачах, а так же ноутбук начинает греться. Зато система работает намного быстрее, но это того не стоит. У меня после установки драйвера этот пункт включился автоматически

  2. NVIDIA On-Demand - некоторые приложения будут использовать дискретную графику nvidia, но по-умолчанию встроенная intel. Как запустить конкретное приложение с дискретной графикой напишу дальше

  3. NVIDIA (Power Saving Mode) - отключение дискретной графики

Выбираем второй вариант - NVIDIA On-Demand, и перезагружаем систему

3. Запуск приложения с использованием дискретной графикой

Это то, что сложнее всего гуглилось...

Для запуска приложения с использованием графики nvidia нужно задать для OpenGL две переменные среды:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia

для Vulkan только:

__NV_PRIME_RENDER_OFFLOAD=1

Делать это надо перед командой для запуска приложения. Например, нам нужно запустить из терминала приложение program с использованием дискретной графики. Нужно вызвать его так:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia program

Соответственно, если у приложения есть ярлык (.desktop) в меню приложений, то надо изменить команду запуска в ярлыке. В KDE Plasma нужно нажать на него ПКМ, открыть свойства (или "изменить приложение..."), перейти во вкладку "приложение" и перед командой приписать данную приставку. В других средах похожего стола примерно так же

Пример: ярлык игры Wolfenstein - Blade of AgonyПример: ярлык игры Wolfenstein - Blade of Agony

Можно сделать это же действие через текстовый редактор. Открываем ярлык, находим Exec=, и приписываем перед коммандой данную приставку __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia

Например, Minecraft
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia minecraft-launcher __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia minecraft-launcher

Заключение

Данный метод, как я понял, точно работают для програм, использующих библиотеки OpenGL и Vulkan. У меня, к сожалению, не получилось запустить так Windows приложение через Wine, которое использует DirectX, но это уже совсем другая история.

Подробнее..

Свобода для видео представлен открытый GPU на базе RISC-V

01.02.2021 22:18:17 | Автор: admin

Свободный GPU, для которого не требуется отчислений и отсутствуют условия на использование голубая мечта многих разработчиков. Сейчас представлен проект, который является началом большой работы по созданию полностью открытых GPU.

Речь идет о проекте, который развивает группа энтузиастов вместе с компанией Pixlica, сам проект называется RV64X. Основная задача команды создание дополнительного набора инструкций для 3D-графики и обработки мультимедийных данных. В итоге должен получиться свободно интегрируемый в процессор GPU на базе архитектуры RISC-V.

Проект базируется на основе векторных инструкций из RISC-V ISA. Они расширены поддержкой новых типов данных и расширений, которые специфичны для обработки графики. В частности, предложены дополнительные операции для обработки пикселей (RGBA), точек (XYZW), текстурных элементов (UVW-текселей), векторов (операции с 2-4 векторами), параметров материалов, расчёта освещения, трансцендентной математики, буферов глубины (Z-buffer) и кадровых буферов (Framebuffer).

Первый прототип, по словам разработчиков, рассчитан на использование лишь в микроконтроллерах, так что его поддержка ограничена лишь API Vulkan. А вот со временем разработчики добавят поддержку OpenGL и DirectX.

Идея, которая легла в основу нового проекта гибкость архитектуры, которая позволяет подключать расширения для решения разных специфических задач, включая двухфазовое усечение конусов, применение быстрых преобразований Фурье для произвольной глубины цвета и реализация аппаратных SLAM. У RV64X есть возможность реализации собственных стадий для вычислительного конвейера, а также геометрических, пиксельных и кадровых буферов. Также проект поддерживает создание собственных тесселяторов.

Производители, используя этот проект, имеют возможность готовить предназначенные для решения разных задач чипы. В то же время базой является именно RV64X.

Концепция проекта гибридный CPU-GPU ISA, который позволяет создавать и специализированные графические микроконтроллеры, и многоядерные процессоры, которые комбинируют вычислительные ядра с блоками для выполнения графических операций. Процессор, интегрированный с GPU, будет выглядеть, как единый модуль, без выделения блока видео. Программируется он с использованием унифицированного набора 64-разрядных инструкций и модели SIMD для обеспечения параллелизма на уровне данных.


Можно также упомянуть такую особенность архитектуры нового GPU, как использование единой модели памяти как в CPU, так и в GPU, что дает возможность обойтись без дополнительных механизмов RPC/IPC для трансляции вызовов между памятью GPU и CPU при обработке операций 3D API. В этом случае стандартные графические операции можно реализовать на уровне микрокода. Поддерживается создание пользовательских шейдеров, растеризаторов и расширений для трассировки лучшей.

При необходимости разработчики смогут реализовать векторные операции для работы с задачами по симуляции, проектами компьютерного зрения и машинного обучения.

Что касается реализации архитектуры, то она включает 32KB кэш первого уровня для инструкций и данных, 8 KB памяти SRAM для микрокода, декодировщик инструкций, аппаратную реализацию наборов инструкций RV32V и RV64X, задаваемый через микрокод декодировщик расширенных инструкций, векторное арифметико-логическое устройство (ALU), 136-разрядный регистровый файл с 1024 элементами, блок для выполнения специальных операций (SFU, Special Function Unit), блок обработки текстур (Texture Unit) и настраиваемый локальный фреймбуфер.

Подробнее..

Перевод Реверс-инжиниринг GPU Apple M1

05.03.2021 10:06:07 | Автор: admin
image

Новая линейка компьютеров Apple Mac содержит в себе разработанную самой компанией SOC (систему на чипе) под названием M1, имеющую специализированный GPU. Это создаёт проблему для тех, кто участвует в проекте Asahi Linux и хочет запускать на своих машинах Linux: у собственного GPU Apple нет ни открытой документации, ни драйверов в open source. Кто-то предполагает, что он может быть потомком GPU PowerVR, которые использовались в старых iPhone, другие думают, что GPU полностью создан с нуля. Но слухи и домыслы неинтересны, если мы можем сами заглянуть за кулисы!

Несколько недель назад я купила Mac Mini с GPU M1, чтобы изучить набор инструкций и поток команд, а также разобраться в архитектуре GPU на том уровне, который ранее не был публично доступен. В конечном итоге я хотела ускорить разработку драйвера Mesa для этого оборудования. Сегодня я достигла своего первого важного этапа: теперь я достаточно понимаю набор команд, чтобы можно было дизассемблировать простые шейдеры при помощи свободного и open-source тулчейна, выложенного на GitHub.

Процесс декодирования набора команд и потока команд GPU аналогичен тому процессу, который я использовала для реверс-инжиниринга GPU Mali в проекте Panfrost, изначально организованном проектами свободных драйверов Lima, Freedreno и Nouveau. Обычно для реверс-инжиниринга драйвера под Linux или Android пишется небольшая библиотека-обёртка, инъектируемая в тестовое приложение при помощи LD_PRELOAD, подключающей важные системные вызовы типа ioctl и mmap для анализа взаимодействия пользователя и ядра. После вызова передать буфер команд библиотека может выполнить дамп всей общей памяти (расширенной) для её анализа.

В целом тот же процесс подходит и для M1, но в нём есть особенности macOS, которые нужно учитывать. Во-первых, в macOS нет LD_PRELOAD; её аналогом является DYLD_INSERT_LIBRARIES, имеющая дополнительные функции защиты, которые для выполнения нашей задачи можно достаточно легко отключить. Во-вторых, хотя в macOS существуют стандартные системные вызовы Linux/BSD, они не используются для графических драйверов. Вместо них для драйверов ядра и пространства пользователя используется собственный фреймворк Apple IOKit, критической точкой входа которого является IOConnectCallMethod (аналог ioctl). Такие различия достаточно просто устранить, но они добавляют слой дистанцирования от стандартного инструментария Linux.

Более серьёзной проблемой является ориентирование в мире IOKit. Так как Linux имеет лицензию copyleft, (законные) драйверы ядра выложены в open source, то есть интерфейс ioctl открыт, хотя и зависит от производителя. Ядро macOS (XNU) имеет либеральную лицензию, не обладающую такими обязательствами; интерфейс ядра в нём проприетарен и не задокументирован. Даже после обёртывания IOConnectCallMethod пришлось попотеть, чтобы найти три важных вызова: выделение памяти, создание буфера команд и передача буфера команд. Обёртывание вызовов выделения памяти и создания буфера необходимы для отслеживаемой видимой GPU памяти (а именно это мне было интересно исследовать), а обёртывание вызова передачи необходимо для подбора времени дампа памяти.

Преодолев эти препятствия, мы можем наконец перейти к двоичным файлам шейдеров, которые сами по себе являются чёрными ящиками. Однако далее процесс становится стандартным: начинаем с самого простого фрагментного или вычислительного шейдера, вносим небольшое изменение во входящий исходный код и сравниваем получившиеся двоичные файлы. Многократное повторение этого процесса скучное занятие, но позволяет быстро выявить основные структуры, в том числе и опкоды.

Открытия, сделанные в задокументированном процессе изучения при помощи свободного дизассемблера ПО, подтверждают наличие у GPU следующих особенностей:

Во-первых, архитектура скалярна. В отличие от некоторых GPU, которые являются скалярными для 32 бит, но векторизованными для 16 бит, GPU процессора M1 скалярен при всех битовых размерах. Хотя на ресурсах по оптимизации Metal написано, что 16-битная арифметика должна быть значительно быстрее, кроме снижения использования регистров она ведёт к повышению количества потоков (занятости процессора). Исходя из этого, можно предположить, что оборудование является суперскалярным и в нём больше 16-битных, чем 32-битных АЛУ, что позволяет получать большее преимущество от графических шейдеров низкой точности, чем у чипов конкурентов, одновременно значительно снижая сложность работы компилятора.

Во-вторых, архитектура, похоже, выполняет планирование аппаратно это часто встречается среди десктопных GPU, но менее распространено во встроенных системах. Это тоже упрощает компилятор ценой большего количества оборудования. Похоже, команды минимально тратят лишние ресурсы при кодировании, в отличие от других архитектур, вынужденных перегружать команды nop для того, чтобы уместиться в сильно ограниченные наборы инструкций.

В-третьих, поддерживаются различные модификаторы. АЛУ с плавающей запятой могут выполнять модификаторы clamp (насыщенность), операций НЕ и абсолютных значений бесплатно, без лишних затрат распространённая особенность архитектуры шейдеров. Кроме того, большинство (или все?) команды позволяют бесплатно выполнять преобразование типов между 16-битными и 32-битными значениями и для адресата, и для источника, что позволяет компилятору более агрессивно использовать 16-битные операции, не рискуя тратить ресурсы на преобразования. Что касается целочисленных значений, то для некоторых команд есть различные бесплатные побитовые отрицания и сдвиги. Всё это не уникально для оборудования Apple, но заслуживает упоминания.

Наконец, не все команды АЛУ имеют одинаковые тайминги. Команды типа imad (используется для перемножения двух целых чисел и прибавления третьего) по возможности избегаются и вместо них используются многократные команды целочисленного сложения iadd. Это тоже позволяет предположить наличие суперскалярной архитектуры; оборудование с программным планированием, с которым я взаимодействую на своей повседневной работе, не может использовать различия в длине конвейеров, непреднамеренно замедляя простые команды для соответствия скорости сложных.

По своему предыдущему опыту работы с GPU я ожидала найти какой-нибудь ужас в наборе инструкций, повышающий сложность компилятора. Хотя написанное выше охватывает только небольшую площадь поверхности набора инструкций, пока всё кажется разумным и логичным. Отсутствуют сложные трюки для оптимизации, однако отказ от трюков позволяет создать простой, эффективный дизайн, выполняющий одну задачу, и справляющийся с ней хорошо. Возможно, проектировщики оборудования Apple поняли, что простота превыше всего.

Часть вторая


В первой части я начала изучать GPU Apple M1, надеясь разработать бесплатный драйвер с открытым исходным кодом. Теперь мне удалось достичь важного этапа: отрисовать треугольник с помощью собственного кода в open source. Вершинные и фрагментные шейдеры написаны вручную на машинном коде, а взаимодействие с оборудованием выполняется с помощью драйвера ядра IOKit, подобно тому, как это происходило в системном драйвере пользовательского пространства Metal.


Треугольник, отрендеренный на M1 кодом в open source

Основная часть нового кода отвечает за построение различных буферов команд и дескрипторов, находящихся в общей памяти и используемых для управления поведением GPU. Любое состояние, доступное из Metal, соответствует битам в этих буферах, поэтому следующей важной задачей будет их анализ. Пока меня больше интересует не содержимое, а связи между ними. В частности, структуры, содержащие указатели друг на друга, иногда встроенные на несколько слоёв вглубь. Процесс подготовки треугольника в моём проекте позволяет взглянуть с высоты птичьего полёта на то, как взаимодействуют все эти отдельные части в памяти.

Например, предоставляемые приложением данные вершин хранятся в собственных буферах. Внутренняя таблица в ещё одном буфере указывает на эти буферы вершин. Эта внутренняя таблица передаётся непосредственно на вход вершинного шейдера, заданного в другом буфере. На это описание вершинного шейдера, в том числе и на адрес кода в исполняемой памяти, указывает ещё один буфер, на который сам ссылается основной буфер команд, на который ссылается вызов IOKit на передачу буфера команд. Ого!

Другими словами, код демо пока не предназначен для демонстрации понимания мелких подробностей буферов команд, а скорее служит для демонстрации того, что ничто не упущено. Так как виртуальные адреса GPU меняются при каждом запуске, демо подтверждает, что идентифицированы все необходимые указатели и их можно свободно перемещать в памяти с помощью нашего собственного (тривиального) распределителя. Так как в macOS присутствует некоторая магия, связанная с распределением памяти и буферов команд, наличие этого работающего кода позволяет нам спокойно двигаться дальше.

Я использовала поэтапный процесс подготовки. Поскольку моя обёртка IOKit располагается в то же адресном пространстве, что и приложение Metal, обёртка способна модифицировать буферы команд непосредственно перед передачей в GPU. В качестве первого hello world я задала кодирование в памяти цвета очистки render target и показала, что могу изменять этот цвет. Аналогично, узнав о наборе инструкций для вывода дизассемблера, я заменила шейдеры написанными самостоятельно эквивалентами и убедилась, что могу исполнять код в GPU, доказать, что написала машинный код. Однако мы не обязаны останавливаться на этих нодах листьев системы; изменив код шейдера, я попыталась загрузить код шейдера в другую часть исполняемого буфера, модифицировав указатель командного буфера на код, чтобы компенсировать это. После этого я смогу попробовать самостоятельно загружать команды для шейдера. Проводя разработку таким образом, я смогу создать все необходимые структуры, тестируя каждую из них по отдельности.

Несмотря на затруднения, этот процесс оказался гораздо более успешным, чем попытка перейти непосредственно к построению буферов, например, при помощи воспроизведения. Я использовала этот альтернативный способ несколько лет назад для создания драйверов Mali, однако у него есть серьёзный недостаток чудовищно сложная отладка. Если в пяти сотнях строк магических чисел присутствует хотя бы одна опечатка, то никакой обратной связи, кроме ошибки GPU, вы не получите. Однако при последовательной работе можно выявлять причины ошибок и немедленно их исправлять, что оказывается быстрее и удобнее.

Однако затруднения всё-таки были! Моё временное ликование, вызванное возможностью изменения цветов очистки, пропало, когда я попыталась выделить буфер для цветов. Несмотря на то, что GPU кодировал те же биты, что и раньше, ему не удавалось корректно выполнить очистку. Думая, что где-то ошиблась в способе модификации указателя, я попыталась поместить цвет в неиспользованную часть памяти, уже созданную драйвером Metal, и это сработало. Содержимое осталось тем же, как и способ модификации указателей, но GPU почему-то не нравилось моё распределение памяти. Я думала, что как-то неправильно распределяю память, но использованные для вызова распределения памяти IOKit были побитово идентичны тем, что использовались Metal, что подтверждалось wrap. Моей последней отчаянной попыткой стала проверка, должна ли память GPU отображаться явным образом через какой-то побочный канал, например, через системный вызов mmap. У IOKit есть устройство-независимый вызов memory map, но никакие трассировки не позволили обнаружить свидетельств отображений через сторонние системные вызовы.

Появилась проблема. Утомившись от потраченного на устранение невозможного бага времени, я задалась вопросом, нет ли чего-то магического не в системном вызове, а в самой памяти GPU. Глупая теория, потому что если это так, то появляется серьёзная проблема курицы и яйца: если распределение памяти GPU должно быть одобрено другим распределением GPU, то кто одобряет первое распределение?

Чувствуя себя глупо и ощущая отчаяние, я решила протестировать теорию, вставив вызов распределения памяти посередине потока выполнения приложения, чтобы каждое последующее распределение находилось по другому адресу. Выполнив дамп памяти GPU до и после этого изменения и изучив их отличия, я обнаружила свой первый кошмар: наличие вспомогательного буфера в памяти GPU, отслеживающего все требуемые распределения. В частности, я заметила, что значения в этом буфере увеличиваются на единицу с предсказуемым смещением (через каждые 0x40 байт), и это намекает о содержании в буфере массива дескрипторов распределений. И в самом деле, эти значения точно соответствовали дескрипторам, возвращаемым из ядра при вызовах распределения памяти GPU.

Закрыв глаза на очевидные проблемы этой теории, я всё равно её протестировала, модифицировав эту таблицу и добавив в конец дескриптор моего нового распределения, а также изменив структуру данных заголовка так, чтобы увеличить количество элементов на единицу. Это не помогло. Несмотря на разочарование, это всё равно не позволяло полностью отказаться от теории. На самом деле, я заметила в элементах таблицы нечто любопытное: не все они соответствовали действительным дескрипторам. Действительными были все элементы, кроме последнего. Диспетчеры ядра имеют индексацию с 1, однако в каждом дампе памяти последний дескриптор всегда был 0, несуществующим. Вероятно, он используется как контрольное значение, аналогично NULL-terminated string в C. Однако при таком объяснении возникает вопрос: почему? Если заголовок уже содержит количество элементов, то контрольное значение избыточно.

Я продолжила разбираться дальше. Вместо добавления ещё одного элемента с моим дескриптором, я скопировал последний элемент n в дополнительный элемент n + 1 и переписала элемент n (теперь второй с конца) новым дескриптором.

Внезапно отобразился нужный мне цвет очистки.

Итак, загадка решена? Код заработал, так что в каком-то смысле да. Но едва ли это объяснение может нас удовлетворить; на каждом этапе непонятное решение будет создавать новые вопросы. Проблему курицы и яйца решить проще всего: эта таблица отображений вместе с корневым буфером команд распределяется специальным селектором IOKit, не зависящим от распределения общего буфера, а дескриптор таблицы отображений передаётся с селектором буфера команд. Более того, идея передачи требуемых дескрипторов вместе с передачей буфера команд не уникальна; подобный механизм используется в стандартных драйверах Linux. Тем не менее, обоснование для использования 64-байтных элементов таблицы в общей памяти вместо простого массива на стороне CPU остаётся совершенно непонятной.

Но даже оставив позади проблемы с распределением памяти, двигаться вперёд пришлось не без труда. Однако благодаря терпению мне удалось полностью воссоздать память GPU параллельно с Metal, используя проприетарное пространство пользователя только для инициализации устройства. Наконец, остался последний прыжок веры отказ от синхронизации с IOKit, после чего мне удалось получить свой первый треугольник.

Для второй части статьи пришлось внести в код изменения объёмом примерно 1700 строк кода, сам код выложен на GitHub. Я собрала простое демо, анимирующее на экране треугольник с помощью GPU. Интеграция с оконной системой на этом этапе практически отсутствует: требуется XQuartz, а в ПО с наивным скалярным кодом возникает detiling буфера кадров. Тем не менее, скорости CPU M1 с лихвой хватает, чтобы с этим справиться.

Теперь, когда готова начальная загрузка каждой части драйвера пространства пользователя, двигаясь дальше, мы сможем по отдельности работать над набором инструкций и буферами команд. Можно будет разобрать мелкие подробности и побитово преобразовать код из сотен необъяснимых магических констант в настоящий драйвер.
Подробнее..

Анонс Nvidia Ampere Как Хуанг всех приятно удивил

06.09.2020 12:06:19 | Автор: admin
Никто не станет отрицать 2020 год толком не успел начаться, как сразу же вошел в историю. Сложная обстановка в мире, где политические амбиции пересекаются с экономическими антирекордами, сильно усложнила привычный расклад вещей. Но несмотря на все невзгоды, текущий год не потерял статуса самого захватывающего года новинок в сфере компьютерного железа. Новое поколение консолей, новые видеокарты и процессоры ближайшие месяцы будут жаркими и интересными для каждого энтузиаста нашей сферы. И буквально в первый же день осени, 1 сентября, в 19:00 по московскому времени неподражаемый Дженсен Хуанг на своей уютной кухне представил всему миру Ampere долгожданное семейство новых игровых видеокарт nVidia.

image

Слухи об Ampere ходили еще с начала года, но по большей части не сулили фанатам зеленых ничего хорошего. Многолетнее партнерство NVidia с TSMC, лидером рынка наиболее совершенных кремниевых пластин, оказалось под угрозой после череды ударных успехов AMD. Красный гигант занял на будущее рекордный объем будущих 7-нм пластин, оставив Дженсену Хуангу лишь толику необходимых объемов. Переговоры между компаниями длились долго, но соглашения достичь не вышло. Оставив на балансе старого партнера производство чипов для карт серии Quadro, nVidia обратилась к единственной доступной альтернативе корейскому Samsung.

В итоге в основу линейки Ampere легли чипы, произведенные по 8-нм техпроцессу Samsung не слишком энергоэффективные и уступающие изделиям TSMC, но несравнимо дешевые, а потому крайне выгодные nVidia. Впрочем, о производственных проблемах корейских фабрик знали далеко за пределами рынка, и поэтому Big Navi в очередной раз казалась куда интереснее.

Перейдем к самому мероприятию. Заметим, что 21 день. 21 год можно было воспринять как смелую попытку смены парадигмы в названиях Дженсен много издевался над любителями смаковать утечки во времена Turing, но RTX 2180 все же не случилось. Трансляцию открывал красивый ролик с ключевыми достижениями графики, отчет которых начинался с GeForce 256 и заканчивался последними картами семейства Turing. Дженсен Хуанг с улыбкой и явным удовольствием рассказывал и о трассировке лучей, и о тензорных ядрах на основе продвинутых AI-алгоритмов, и даже о том, что традиционная растеризация вот-вот достигнет потолка, после которого на сцену выйдут другие технологии. Очевидно, речь идет именно про RTX переходя к сути, Дженсен Хуанг представил ключевые преимущества Ampere.

image

RTX 2.0 В 2 раза больше производительности


Ключевой фишкой поколения Turing стало появление технологии RTX трассировки лучей в реальном времени. Кинематографичные презентации Nvidia на некоторые время пленили всех красотами отражений, но уже совсем скоро стало понятно, что мощности RT-ядер недостаточно для комфортной игры с новыми плюшками. На примере недавней демонстрации Cyberpunk 2077, где нас тоже ожидают RTX-чудеса, поколение Turing снова будет не у дел 2080Ti не обеспечивает в будущей новинке даже 60 кадров в секунду в разрешении Full HD, что уж говорить о 4К. Остается только посочувствовать тем, кто успел недавно разориться на карты уходящего поколения.

Ampere же совсем другая история. Следующее поколение RTX обещает решить проблему низкой производительности с трассировкой лучей, из-за чего старые проблемы канут в лету. Больше никаких 40 кадров в Control с RTX ON а всё благодаря серьезному росту всех компонентов системы (тензорных ядер, SM-блоков и RT-ядер). Дженсен Хуанг обещает геймерам прирост по меньшей мере в 80%, но в некоторых играх можно без труда увидеть и двухкратный рост производительности в сравнении с RTX в исполнении Turing.

На практике двухкратный рост производительности RTX 3080 на фоне RTX 2080 продемонстрировали специалисты Digital Foundry, очень независимый hands-on которых вышел практически сразу после презентации Хуанга.

image
image
image
image

И на первый взгляд это серьезное достижение, но серьезное ли? Во-первых, презентация скрыла от зрителей самое важное число FPS, ограничившись процентами. Во-вторых, скоро на рынок выйдут консоли, в которых будет собственный RTX, и их красные лучи могут оказаться не сильно хуже зеленых лучей Ampere. Само собой, такую катастрофу, как Turing, nVidia просто не могла себе позволить перед релизом новых платформ Sony и Microsoft. Снова не завидуем тем, кто купил 2080Ti в надежде на светлое будущее.

RTX I/O Догнать и перегнать фишки PlayStation 5


Помните, как Марк Церни, ведущий архитектор PS5, при каждом удобном случае подчеркивал преимущества совершенной системы консоли, которая работает с данными в разы быстрее среднего современного ПК? Забудьте теперь над такими заявлениями можно будет только посмеяться.

Для достойного ответа кудесникам из Sony NVidia презентовала технологию RTX I/O своеобразный подход к обработке данных, заточенный под будущие релизы. Дженсен справедливо отметил, что современные ААА-хиты (да и другие знаковые проекты) с каждым годом становятся всё объемнее, и загружать те же 200 Гб текстур с жесткого диска уже просто невозможно. Даже современные SSD испытывают трудности с такими массивами данных, и именно здесь на помощь накопителям приходит хитрая технология nVidia.

image

Во время презентации Дженсен Хуанг продемонстрировал преимущества RTX I/O одной незамысловатой схемой согласно ей, данные с накопителя кэшируются напрямую в видеопамять карты Ampere, минуя процессор и подсистему памяти. При этом главным недостатком традиционного подхода Хуанг назвал отнюдь не узкую шину, а высокую нагрузку на CPU. Так, NVME-накопители последнего поколения способны загрузить целых 24 потока, что не пройдет бесследно в тяжелых игровых сценариях. По сути, в PS5 будет реализована похожая система, но nVidia предлагает её преимущества в более упрощенном формате.

Программные новинки NVidia Reflex, Broadcast, Omniverse Machinima



Вместе с красивыми графиками Дженсен Хуанг рассказал и о новых программных технологиях, призванных сделать покупку Ampere еще выгоднее. К примеру, киберспортсмены оценят преимущества nVidia Reflex, сводящей на нет большую часть задержек компонентов ПК на уровне драйвера обычно это значение составляет 30 мс, но с помощью Reflex его можно сократить более чем наполовину. Для уверенного доминирования над противником Хуанг рекомендовал использовать технологию в паре с новеньким монитором. Такие, с частотой обновления в 360 Гц должны выйти на рынок уже в ближайшие месяцы.

image

NVidia Broadcast прекрасный инструмент для стримеров, ведущих подкастов и других творческих личностей, покоряющих YouTube или Twitch. С его помощью можно убрать посторонние шумы, локализовав источники звука, размыть, заменить или вовсе убрать задний фон с веб-камеры всего в два клика. Всё это стало возможным благодаря появлению совершенных алгоритмов на базе машинного обучения.

Не забыли NVidia и о разработчиках, для них был представлен уникальный в своем роде инструментарий для создания эффектных роликов и презентаций, а также работы с ассетами. Он получил название Omniverse Machinima в честь тех самых легендарных машиним из светлого прошлого. В рамках анонса примером работы Omniverse послужила Mount & Blade 2: Bannerlord, на базе ассетов которого всего за несколько дней был создан кинематографичный ролик с полностью анимированным персонажем. С помощью Omniverse станет возможным моделирование мимики и анимации рта героя по голосу актера озвучки, построение общих анимаций моделей и многое другое. Этот интересный набор инструментов станет доступным для общего тестирования уже в октябре. Возможно, на горизонте маячит новый золотой век машиним.

Остается лишь один вопрос где же новая графическая оболочка драйвера для обладателей видеокарт nVidia? Почему Radeon Adrenalin всё еще является более совершенным и продвинутым, а Дженсен не спешит шагнуть в XXI век? К сожалению, ответа на эти вопросы мы не знаем до сих пор. А теперь поговорим об изменениях.

Позиционирование RTX 3000. Упрощенные названия, низкие цены


Поколение Ampere стало первым за долгие годы, в рамках которого компания NVidia отошла от традиции выпуска флагмана с индексом Ti. У такого неожиданного решения было несколько причин. Самой весомой из них стала серьезная путаница в модельном ряде, из-за чего бесконечные Ti, SUPER и модели с разной конфигурацией памяти то и дело портили настроение людям, пришедшим в магазин за видеокартой. Уложить в памяти то, какая карта быстрее и почему, было сложно и поэтому nVidia протянула руку помощи, создав максимально простую, интуитивно понятную линейку RTX 3000.

Флагманскую роль на этот раз исполнила классическая вторая карта линейки RTX 3080. Имея 10 Гб сверхбыстрой памяти GDDR6X и целых 8704 CUDA-ядра (что вдвое больше 2080Ti), новинка готова свернуть горы и заявленная двукратная производительность 2080 делает серьезную заявку на лидерство. Но зрителей анонса шокировало даже не это, а цена всего $699!

image

И нет, это не ошибка сам Дженсен признал, что Turing не смог склонить к апгрейду владельцев блестящих видеокарт семейства Pascal, но Ampere способен приятно удивить, причем сделать это недорого. И речь далеко не только о RTX 3080.
Та же RTX 3070, младшая модель из стартовой линейки, всего за $499 предлагает производительность выше 2080Ti! Да, у неё на борту всего 8 Гб обычной GDDR6 видеопамяти, но это не слишком умаляет очевидных достоинств. Вся мощь флагмана прошлого поколения за 40% от цены?

image

Но и это еще не всё. Отказавшись от бренда Titan, nVidia представила видеокарту для тех, кому важно не только играть, но и заниматься контентом на новом уровне. RTX 3090, которую даже Дженсен с трудом вытащил из печки, несет на борту 24 Гб памяти GDDR6X, и предлагает забыть о любых компромиссах.

image

На презентации nVidia для намека на мощность новинки даже показывали каких-то людей, играющих в разрешении 8К с 60 FPS. И эти люди были серьезно впечатлены! Вопросов нет, 3090 для серьезных людей. И владельцев 8К-телевизоров.
И всё же презентация состояла не только из светлого и прекрасного. Стоило снять зеленые очки и отвести взгляд от портрета Дженсена Хуанга на столе, как вопросы возникли сами собой. И сейчас мы разберем всё, что осталось за кадром анонса Ampere.

О чем умолчали на презентации Ampere? Подводные камни предзаказа


Любой анонс всегда стоит воспринимать со здравой долей скептицизма. Вспомните презентацию Turing, где слова Дженсена It just works и несколько красивых демо заставили людей до хрипоты доказывать друг другу, что за RTX будущее. И если в этом они не совсем ошиблись, то с покупкой карт поколения Turing многие допустили ошибку. Игр с поддержкой RTX в заявленном количестве так и не вышло, а те, что все-таки получили поддержку перспективной технологии, работали из рук вон плохо владельцы флагманских видеокарт продолжали играть с отключенными RTX, надеясь на будущее. И вот оно наступило и после анонса Ampere некогда счастливые владельцы 2080 SUPER или 2080Ti в спешке сбывают свои карты на Ebay по 400 долларов релиз всё ближе, и скоро былые флагманы превратятся в тыкву, обесценившись в разы.

Но что же графики? Дженсен Хуанг продажник от бога, мастер презентаций и душевный мужик, которому хочется верить всем сердцем. Но увы, в этот раз красивые значения не показывали нам самого главного, а именно значений FPS (которые были продемонстрированы позже на других каналах и только в определённых сценария и играх). Будь то множители (как в случае с RT-производительностью) или проценты (как в случае с демонстрацией от Digital Foundry) всё это никак не демонстрирует нам чистую производительность, и просто вводит в заблуждение. Не говоря уже о том, что многие цифры были получены с использованием DLSS 2.0 прекрасной технологии апскейлинга, которая творит чудеса с производительностью и картинкой но лишь там, где поддерживается. Ярким примером (показанным на презентации) был недавний ПК-релиз Death Stranding Кодзима прекрасно реализовал технологию в своем проекте, но опять же далеко не каждый разработчик на это способен, и общую картину это никак не показывает. Насколько же 3080 бодрее той же 2080 без RTX и DLSS? Ответ на этот вопрос знает лишь сам Дженсен Хуанг но вам не скажет, а то вдруг еще не предзакажете 3080.

Энергопотребление новинок тоже упоминалось только вскользь. Довольно жуткие цифры в 90% производительности на ватт могли создать у зрителей впечатление, что перед нами монстры, да еще и не слишком прожорливые, но это не так. Умеренной из трех карт является лишь RTX 3070 (с TDP в 220 Вт) её игрушечную систему охлаждения можно сразу заметить на фоне двух старших моделей. А там экспериментальная система, инновационный дизайн, внушительные габариты, и TDP, значения которых могут уходить за пределы 400 Вт (в разогнанных партнерских моделях). Такие цифры серьезно угнетают, но говорят они лишь об одном из двух или техпроцесс Samsung всё еще очень сырой, или же nVidia выжала из своих чипов всё, что могла, опасаясь то ли консолей, то ли таинственной Big Navi. В любом случае, если ваш интерес сосредоточен на 3080 или 3090, позаботьтесь и о покупке дорогого, хорошо зарекомендовавшего себя блока питания мощностью минимум на 650 Вт. KSAC не покупать!
Наконец, остается вопрос доступности. Новые видеокарты могут сильно задержаться на всех рынках за пределами США. Случай 2080Ti, которая добиралась до некоторых счастливых предзаказавших целых три месяца после релиза, намекает на то, что на этот раз картина будет как минимум схожей, а некоторые ретейлеры, почувствовав жажду наживы, будут предлагать новинки по таким ценам, что офигеет даже сам Дженсен Хуанг. Увы, современная ситуация в мире только способствует всякого рода перегибам.

К тому же никто не может сказать, какими окажутся партнерские наценки на карты семейства Ampere. Если самые дешевые 2080Ti можно было купить чуть дороже 1000 долларов, то лучшие модели продавались уже за $1200 и даже больше. Тысяча баксов за 3080? Не исключено, поэтому мы рекомендуем вам переждать релизный шторм, и купить видеокарту чуть позже по более приятной цене. Продажи Ampere стартуют совсем скоро. RTX 3080 за $800 появится в магазинах уже 17 сентября, RTX 3090 за $1500 ограниченным тиражом начнет продаваться 24 сентября, а RTX 3070 за вкусные $500 попадет на прилавки только в октябре.

image

Выводы. Ampere круто!


Что же в итоге? Дженсен Хуанг начал вещание с кухни, и поразил весь мир так, как этого не ожидал никто. Новое поколение оказалось не только существенно дешевле предыдущего, но и обещает самый крутой рывок производительности за поколение в истории, как заявляет сама nVidia. Фанаты ликуют, хейтеры ненавидят, а мы похвалим Дженсена за очередной прекрасный анонс смотреть трансляцию было одно удовольствие. А вам, друзья, советуем не отключать голову и не принимать поспешных решений. Дождитесь независимых тестов, не верьте в громкие заявления авансом.

Наш видеоролик по Анонсу nVidia Ampere:
image

Автор статьи Александр Лис.
Подробнее..

RTX 3080 Мечта, которой нет в наличии

20.09.2020 14:22:27 | Автор: admin
Выход поколения Ampere ждали все. Предыдущий Turing оказался слишком дорогим и совершенно посредственным, а подоспевшие позже карты с припиской Super только больше запутали публику. Все с нетерпением ожидали анонса поколения, которое станет поводом для долгожданного апгрейда с блестящей линейки Pascal. И Ampere при всех слухах, тизерах и ожиданиях обещал стать именно тем, на что так рассчитывали фанаты мечтой, которая вот-вот станет реальностью.

image

Для начала напомним технические фишки Ampere. Согласно официальной презентации, которая состоялась 1 сентября, главными особенностями нового поколения стали сильно возросшие цифры CUDA-ядер (более чем в 2 раза превышающие значения Turing) и новое поколение RT-ядер, с помощью которого NVidia обещала сократить падение производительности при использовании трассировки лучей. Также особый акцент был сделан на применение технологии мультисемплинга DLSS 2.0, дебют которой в Control и Death Stranding стал настоящим потрясением для большинства игроков. Неудивительно, что именно эта технология выступает одним из ключевых преимуществ решений NVidia перед видеокартами AMD.

image

При этом у новинок есть и технические недостатки. Производством чипов Ampere на 8-нм техпроцессе занимается компания Samsung, технические решения которой значительно уступают конкурентным предложениям TSMC, 7-нм пластины которой значительно плотнее в плане бюджета транзисторов на квадратный мм, и предлагают лучшие характеристики производительности на ватт. Использование компромиссного варианта корейской компании привело к тому, что размер чипов оказался довольно велик, а энергопотребление, несмотря на смену техпроцесса, в среднем на 40% превышает значения аналогичного сегмента видеокарт поколения Turing (произведенного на базе 12-нм техпроцесса TSMC). Именно возросшие аппетиты стали причиной появления того необычного высокотехнологичного кулера референсных моделей, призванного сохранить тишину и обеспечить эффективное отведение более чем 300 Вт тепла. Напомним, что RTX 3080 в базовом исполнении без разгона потребляет 320 Вт, а при повышении частот это значение может возрасти до 360 Вт или даже выше. Для юзера это означает лишь одно простеньким блоком питания от предыдущей сборки уже не обойтись.

image

Теперь к презентации. В рамках анонса Дженсен Хуанг сделал серьезные заявления, сообщив о двукратном преимуществе новой RTX 3080 над своей предшественницей RTX 2080 (не путать с Super). Смазанные графики без упоминания кадров в секунду, а также постоянное подчеркивание 4К, трассировки лучей и технологии DLSS во многом заставили пользователей насторожиться а что если сырая производительность новинки далека от ожиданий? Многочисленные утечки и ожидания пророчили Ampere трехкратный, а то и четырехкратный прирост производительности с трассировкой лучей (а некоторые даже предполагали, что необычная компоновка кулера NVidia связана с присутствием на задней стороне платы отдельного RT-чипа, отвечающего за обработку таких инструкций). В этом плане официальная презентация оказалась куда скромнее, 80% прироста в сравнении с 2080, но даже такой шаг нельзя назвать разочарованием в рамках всего одного поколения.

Наконец, вишенкой на торте стала цена всего $800 за новую флагманскую видеокарту (как назвал её сам Дженсен) выглядело чуть ли не подарком на фоне $1000 цены 2080Ti, но многие люди в индустрии сразу подчеркнули, что первые поставки будут очень скромными, поэтому спешить с выводами не нужно. Кто-то не послушал, и ринулся в панике продавать свои карты за бесценок, уповая на удачу. На деле же всё оказалось куда хуже, но об этом чуть позже.
16 сентября обзоры RTX 3080 появились в сети. Впечатления от реальных сравнений 3080 vs 2080 оказались неоднозначными с одной стороны, преимущество над картой поколения Turing практически никогда не превышало 50-70%, с другой благодаря расширенному до 10 Гб буферу видеопамяти новинка получила возможность блеснуть более существенным приростом в 4К. Помните официальную презентацию Nvidia, где в Doom Eternal новинка отрывалась от предшественницы аж на 60 фпс? Выяснилось, что выбор этой игры был не случаен при использовании пресета графики Ultra Nightmare в 4К-разрешении игра потребляет ровно 10 Гб видеопамяти, из-за чего RTX 2080 с 8 Гб на борту испытывает острую нехватку буфера, позволяя RTX 3080 без труда показать колоссальный прирост в более чем 100%. К несчастью для будущих владельцев, эта игра оказалась единственным исключением.

image

Неизбежное сравнение с 2080Ti показало, что карта всего на 25-30% быстрее прошлого флагмана, что стало еще одним поводом для жесткой критики. Сырой 50% прирост на фоне прошлого лидера позволил бы задать совершенно новую планку производительности, недостижимую для AMD, однако теперь загадочные карты на базе RDNA2 получили возможность навязать серьезную конкуренцию серии Ampere.

Но куда большей неожиданностью стали результаты тестирования RTX 3080 в играх с поддержкой RTX и DLSS 2.0. Оказалось, что Ampere практически не получила прироста эффективности в работе алгоритмов трассировки лучей по сравнению с первым поколением RT-ядер в Turing новинки в среднем были быстрее в работе со сложными эффектами и освещением всего на 20%, а в ряде случаев цифры были даже ниже этих значений. Во многом разница в общем fps здесь достигается не благодаря продвинутым RT-ядрам нового поколения, а за счет банального повышения общей сырой производительности видеокарты это логично, но где же обещанные на презентации 80%? Даже в сравнение с 2080 разница чаще всего лежала всё в той же плоскости 50-70%. Digital Foundry, как Вы могли?

Многие возразят, сказав Да черт с ним, посмотрите на цену! Мы платим куда меньше, а получаем на 30% больше, чем раньше!. Но так ли это? Здесь всё куда сложнее, чем может показаться на первый взгляд. После старта продаж 17 сентября все RTX 3080 были разобраны за считанные минуты, и уже в скором времени на Ebay стали появляться очень выгодные предложения по покупке предзаказа, ставки на которые иногда превышали реальную стоимость новинки в десятки раз.

image
Источник

NVidia довольно быстро оказалась неспособна принимать предварительные заказы (карт просто не было в наличии), партнерские решение точно также разлетелись чуть ли не мгновенно. Кое-где появлялись отдельные экземпляры карт, но цены на них были тоже существенно выше нормы.

В России RTX 3080 тоже появилась и стоила по 85 тысяч рублей (при рекомендованной цене в 63 490 рублей). Встречались и более доступные модели, но и они предусматривали наценку в 15 тысяч рублей или выше. Кто-то уже советовал присмотреться ко всем известному немецкому магазину в желании купить заветную карту, но не обольщайтесь несмотря на вкусные цены, их, как и везде, до сих пор нет в наличии.

Что можно сказать об этом релизе? Дженсен Хуанг, как и всегда, заставил тысячи людей ахнуть и бежать в магазины, занимая очередь и перепродавая предзаказы за бешеные деньги. RTX 3080 оказалась далеко не такой производительной, как все ожидали, трассировка лучей всё еще превращает 100 фпс в 50, а очень приятная цена также далека от реальности, как второй чип на обратной стороне платы. К счастью, когда-нибудь всё образуется, и мы надеемся, что еще к Черной Пятнице магазины пополнят свои складские запасы и предложат оголодавшим ПК-боярам долгожданные новинки поколения Ampere. Ну а если нет всегда будет возможность купить Big Navi.

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

Они никуда не исчезли, а просто растворились в современности. Ноутбуки подверженные апгрейду

06.08.2020 20:05:17 | Автор: admin
Как и многие я ждал появления ноутбуков серии Ryzen 4000h, потому что согласно тестам за счет уменьшения техпроцесса мобильные процессоры достигли паритета в производительности с десктопными в повседневных задачах. Как и многие я с жадностью кинулся читать отзывы и уже предвкушал момент покупки и владения новой железкой, как Многие обзорщики и первые пользователи стали информировать сперва вскользь, потом все громче о проблемах с Системой охлаждения (СО), точнее это выглядело как упоминание о том, что ревущая турбина вынуждает играть пользователя в наушниках, а температуры на ВК и ЦП зашкаливают за 80-90 градусов Цельсия под нагрузкой.

Беглый анализ показал, что в ценовом диапазоне до 100тыс. рублей этой проблеме больше или меньше подвержено большинство ноутбуков имеющих на борту игровую ВК и ЦП с индексом h (имеющих 6 и более ядер что у красных, что у синих), а с другой стороны современный ноутбук представляет из себя устройство мало подверженное апгрейду (вспомните хотя бы ноутбуки до 3-го поколения Intel Core включительно, которые позволяли заменить процессор), и в случае необходимости увеличить производительность пользователю зачастую приходится продавать ноутбук и покупать новый. Однако все не так просто, и неприметная ссылка на видеообзор на YouTub'e выдала обзор современных устройств, которые не только не растеряли лучшие признаки лучших ноутбуков тех лет, но и приумножили их.

Из груди вырвался стон: Клёво! В действительности речь пойдет о множестве устройств основанных на баребонах Clevo! С обзором одного из них Clevo N957TC. Добро пожаловать под кат! Поехали! =)
image


Что такое Баребон? Баребон для меня всегда был недособранный моноблок, которые в 10-е годы XXI-го века массово продавались в компьютерных магазинах, и слышать это слово в применении к ноутбуку было непривычно. Однако из песни слов не выкинешь; Clevo это ведущий тайваньский производитель компьютеров OEM / ODM. Они продают шасси ноутбуков barebone (barebooks). На их базе многие фирмы собирают и выпускают под своей маркой лаптопы, например Sager, XMG, Hasee, Eurocom, Dream Machines, Dexp (некоторое модели) и другие. При этом сразу нужно оговориться, что есть модели разного ценового сегмента, есть с распаянными ЦП, памятью, SSD, видеокартами, а есть полностью/частично сборные, как например монстры Clevo P870 Series весом 5.5кг основанные на десктопных сокетах Z170-Z370 и MXM видеокартах и, как следствие, весьма не портативны!

Фото Clevo P870 Series
image
image
image

Clevo не новичок на рынке производительных систем, достаточно сказать что они выпускали Alienware, пока этот бренд не купила Dell.
Сперва несколько слов о том где можно купить Clevo здесь все печально, т.к. баребоны/ноутбуки на базе Clevo купить в магазинах в России практические не реально, т.е. либо приобретать с рук, либо заказывать через иностранные сайты, либо покупать в заграничных поездках. Украинцам повезло чуть больше у них есть Dream Machines, которая делает кастомные сборки на базе баребонов Clevo.

И вот, изучая предложения и перебирая варианты (а так же " Проезжая мимо станции и любуясь окрестностями..." (с)), мой взгляд упал на модельку попроще, которую я взял с рук Clevo N957TC, а именно:
Hasee ZX7-CT5DA
(Intel Core i5-9400 + GTX 1660Ti/8 GB ram/512G SSD/15,6 ''IPS 45% NTSC/RGB клавиатура)
По-этому дальше речь пойдет именно про эту сборку.

Фото Hasee ZX7-CT5DA (Clevo N957TC)
image


Из плюсов:
Соотношение производительность/цена;
Съемный аккумулятор;
СО вывозит десктопные процессоры с TDP до 65Вт включительно, даже i7 9700;
Тяжелый значит надежный (с);
Подлежит апгрейду, а именно имеет съемные: ЦП, ОЗУ, Жесткие диски (м.2 два слота один под SATA SSD, второй под NVMe SSD, а так же слот под SATA HDD/SSD 2.5")
Лучший сервис-мануал на ноутбук, из тех что я когда-либо видел

Из минусов:
Clevo в России, на сколько знаю, не имеет сервис центров. Вопрос с гарантийным обслуживанием остается открытый;
Аксессуаров кот наплакал, как и комплектующих для возможного ремонта. С донорами проблема т.к. модели в России не ходовые;
Конкретно у этой модели матрица для работы с цветом не годится, т.к. она имеет охват 45% NTSC, но в то же время для игр и офиса ее хватает;
Повышенное внимание окружающих и коллег в коммандировке, т.к. им странно видеть мощный современный ноут в агрессивном дизайне да еще и со съемной батареей. Последнее всегда производит больший фурор, чем начинка %)
4 кг с блоком питания, если добавить кабели, документы, зарядники для смартфона, флешки и внешние диски то полученный вес в коммандировке быстро выводит из строя сумки для переноски ноутбука. На плече такое носить боль;
В некоторые сумки/рюкзаки, рассчитанные на 15" ноутбуки, не помещается, например в xd bobby designe pro, корпус толстый, до 3х см в толщину, а так же его габариты шире среднестатистической пятнашки;

Внешний вид


Начнем обсуждение ноутбука с внешнего вида. Корпус ноутбука сделан из черного не маркого пластика, пятна видны слабо, легко удаляются салфеткой или специальной тряпочкой. Крышка ноутбука металлическая имеет вставку в виде светодиодного логотипа, который светится при работе ноутбука. Клавиатура с одной стороны простая и выглядит как типичная клавиатура от офисного ноутбука, т.е. если сравнивать с теми же игровыми решениями от тех же Asus/Lenovo/HP/Acer/MSI, с другой стороны она имеет цифровой блок и регулируемую подсветку клавиш на 14 цветов. Ход клавиш небольшой, мягкий, при нажатиях клавиатура не прогибается. Набирать текст удобно. Кириллической гравировки на клавишах нет, но продавец поставляет ноутбуки в Россию с наклейками, либо можно заказать гравировку.

Матрица в ноутбуке 15,6 ''IPS 45% NTSC Panda LM156LF1L03
Pixel Format 1920(RGB)1080 [FHD] 141PPI
Luminance 250 cd/m (Typ.)
Frame Rate 60Hz
Contrast Ratio 1000:1 (Typ.) (TM)
В общем ни рыба ни мясо, пойдет для нетребовательного гейминга и работы с офисом, а вот для работы с цветом такая матрица не подойдет. Однако учитывая сколько было жалоб к матрицам новых моделей 2020 года Asus/MSI/Lenovo/Acer в принципе нормально, при некотором желании можно поменять или взять другие модели ноутбуков на шасси Clevo с нормальной матрицей в 72% NTSC или даже в 100% NTSC, которые естественно будут стоить дороже.

Рамки у ноутбука большие и в целом дизайн выглядит с одной стороны устаревшим, с другой агрессивным, в общем ноутбук всем своим видом говорит, что под капотом здесь скрывается большая мощь, о которой речь продолжится далее.

Снизу ноутбука располагается съемный аккумулятор. Сегодня это непривычно, и в современных моделях аккумулятор крепится внутри корпуса где на винты, а где и на клей. Ноутбук с таким аккумулятором автономомностью не блещет, в игровом режиме ноутбука хватит примерно на час игр, при работе в офисе + интернет часа на 3-4. Что в принципе для игровых ноутбуков является нормальным. Рядом расположена крышка, которая держится на нескольких винтах и защелках, под которой скрывается пространство материнской платы, содержащее элементы подверженные апгрейду, а именно: сокет процессора с СО, слоты для установки оперативной памяти, разъемы SATA и m.2, а так же съемная плата Wi-Fi.

Отдельно здесь стоит сказать про СО. На процессор идут 2 теплотрубки c куллером, которые идут одна под другой, ВК скрыта кожухом, тепло с нее и элементов распаянных вокруг снимают еще 4 теплотрубки на которые установлен отдельный куллер. Итого 2 куллера, один выдувает горячий воздух за монитор, а другой влево.

С левой стороны корпуса ноутбука находятся:
1. Вентилляционное отверстие
2. USB 3.0 (USB 3.1Gen 1) Type-A Port
3. USB 2.0 Port
4. 2- In-1 Audio Jack (Microphone and S/PDIF Optical)
5. 2- In-1 Audio Jack (Headphone and Microphone)
С правой стороны ноутбука находятся:
1. Multi-in-1 Card Reader
2. USB 3.1 Gen 2 Type-C Port
3. USB 3.1 Gen 2 Type-A Port
4. HDMI-Out Port
5. Mini DisplayPort 1.2
6. Mini DisplayPort 1.3
7. RJ-45 LAN Jack
8. DC-In Jack
9. Security Lock Slot
С фронтальной стороны находятся отверстия 2-х динамиков

Железо и производительность


Подробные технические характеристики
image
image

Процессор Intel Core i5-9400 (2.90GHz) 9MB Smart Cache, 14nm, DDR4-2666MHz, TDP 65W
Видеокарта Nvidia GTX 1660Ti 6GB GDDR6 Video RAM on board
Оперативная память 8 GB ram DDR4 2666MHz (Crusal с таймингами 19)
Жесткий диск 512G SSD формата m.2 (Phison SATA SSD)

Дополнительно мною был куплен под систему Samsung SSD 970 EVO Plus 250GB и заменена оперативка на 2 планки по 8GB от Kingston SODIMM Kingston HyperX Impact [HX426S15IB2/8] с таймингами 15, что бы память заработала в двухканальном режиме.

Материнка основана на Intel H370 Express Chipset. Таким образом она поддерживает процессоры 8-го и 9-го поколения Intel TDP которых не превышают 65Вт.

Динамики здесь посредственны, не хватает низких и высоких частот, но в то же время они не хрипят. Звук, который звуковаяя карта выдает на наушники в принципе достойный, но если Вы меломан то я Вам порекомендую либо купить внешнюю специализированную USB звуковою карту, либо какое-нибудь иное специализированное устройство (говорят неплохи Walkman'ы, но это не точно).

Тестирование


К сожалению у меня в коммандировке нет под рукой сравнимого по производительности ПК, по-этому далее тесты приведены КАК ЕСТЬ без сравнений с каким-либо железом, но при тестировании мониторилась температура. Все тесты проходились на пресете Максимальная производительность в Электропитании

Первый тест это WinRAR 5.91 (64bit)
В однопотоке ноутбук выдает 1 570 Кб/сек
В многопотоке ноутбук выдает 7 508 Кб/сек
При этом температура не превышала 61 градус по Цельсию.
WinRAR 5.91 (64bit)




Второй тест это CPU-Z 1.92 (64bit)
В однопотоке ноутбук выдает 458,3 балла
В многопотоке ноутбук выдает 2676,4 балла
При этом температура не превышала 61 градус по Цельсию.
CPU-Z 1.92 (64bit)








Третий тест это тест дисковой подсистемы
Тест SSD
Phison 512GB SATA SSD

Samsung SSD 970 EVO Plus 250GB


Четвертый тест это игра Detroit: Become Human
Разрешение игры FHD.
Настройки графики игры Ультра.
VSYNC Включен.
Частота кадров 60 fps фиксировано.
Температуры ЦП 51-62 градуса Цельсия, в зависимости от сцены.
Температуры ВК 54-73 градуса Цельсия, в зависимости от сцены.
ЦП держит стабильно буст на все ядра 3.9ГГц без просадок.
Detroit: Become Human




Пятый тест это игра World of Warships
Разрешение игры FHD.
Настройки графики игры Максимальные.
VSYNC Включен.
Частота кадров 60 fps фиксировано.
Температуры ЦП 53-66 градусов Цельсия, в зависимости от сцены.
Температуры ВК 54-85 градусов Цельсия, в зависимости от сцены.
ЦП держит стабильно буст на все ядра 3.9ГГц с просадками до 3.5ГГц.
World of Warships





Выводы


Clevo N957TC оказался потрясающим ноутбуком, пусть и не без компромиссных решений, в лице той же клавиатуры и матрицы. Однако ценность данного ноутбука в 3-х моментах:
1. За счет хоть и устаревающего, но мощного железа такой ноутбук стоит дешевле конкурентов в Российской рознице;
2. За счет своей компоновки он подлежит апгрейду, а значит в будущем можно будет увеличить производительность при разумных вложениях;
3. СО имеет запас, из этого следует, что вероятность перегрева резко уменьшается, а значит ноутбук прослужит долго.

Всем добра!
=)
Подробнее..

Ажиотажный спрос на новые карты Nvidia заслуга не производителя, а косоруких разработчиков игр

21.10.2020 16:06:58 | Автор: admin
После презентации новой линейки видеокарт серии RTX 3000, компания производитель графических чипов Nvidia столкнулась с беспрецедентным спросом на свою новую продукцию. Превышение розничных цен на топовые модели RTX 3080 и RTX 3090 составляет и $500 и более, что больше рекомендованной цены на 30-60%.



Причем просто на завышенных относительно оглашенных на презентации ценах проблемы с новыми RTX не заканчиваются. Так, один из официальных торговых партнеров MSI был уличен в спекуляции новыми видеокартами на онлайн-аукционах, а сами Nvidia заявляют, что купить по адекватной стоимости новые RTX 3080 и RTX 3090 можно будет не раньше следующего года. При этом релиз и поступление в продажу самой вкусной карточки RTX 3070 было вовсе отложено на две недели, с 15 на 29 октября 2020 года.

Человек, далекий от ПК-гейминга и релизов флагманских моделей железа справедливо спросит: вы там что, совсем кукухой поехали? Какие 1200-1500$ за видеокарту? Какой ажиотажный спрос? Что вообще происходит? Так вот, сейчас я, автор статьи, объясню, почему Nvidia столкнулась с таким ажиотажем вокруг RTX 3000 серии и почему геймеры с нетерпением ждут поступления в продажу этих видеокарт по заявленной стоимости.

То что RTX 3000 серии геймерские карты ни у кого сомнений не вызывает. Для вычислений и науки у Nvidia давно есть карты серии Tesla V100 и Tesla A100. Это мощные графические ускорители за тысячи долларов, задача которых крайне проста и очевидна считать. Причем считать, в основном, всякие научные штуки в составе вычислительного кластера. Новые A100, которые сейчас поступают в ограниченный тест, по заверениям Nvidia вовсе в 6 раз производительнее далеко не слабой V100. Собственно, о возможностях этих карт можно судить по официальным спецификациям с сайта Nvidia:



Говорю я о семействе ускорителей Tesla по одной причине: архитектура Ampere. Именно она лежит в основе графических ускорителей Tesla и до этого момента карточки на Ampere стоили до $10 тыс. и имели весьма узкую специализацию. В первую очередь, ускорители Ampere были направлены на тренировку нейросетей и по заверениям производителя справлялись с этой задачей на порядки лучше, чем другие решения. По официальным данным, карты на базе Ampere ускорили обучение нейросетей до 20 раз.

Но тут Nvidia выпускает потребительские видеокарты для геймеров с использованием той же технологии. Это как если бы Intel с 2016 года клепал серверные процессоры на литографии в 2 нм для суперкомпьютеров, каждый из которых стоил бы $10 тыс. и более, а тут внезапно вбросил бы новую серию Intel Core по $500 за штуку на той же технологии. Очередь бы выстроилась знатная.

Для Nvidia все выглядело красиво: больше мощностей по меньшей, по сравнению с триумфальной серией RTX 2000, цене, научная архитектура в компьютерах геймеров, поддержка большего разрешения и так далее и так далее. Вот только в коридорах Nvidia не ожидали, насколько потребитель нуждается в мощной видеокарте и что RTX 2080 Ti уже давно не удовлетворяет всех потребностей рынка.

Хотя RTX 3000 серии не показывает кратного превосходства над RTX 2080 и RTX 2080 Ti, а грядущий хит продаж бюджетная карточка RTX 3070 всего на десяток процентов производительнее флагмана предыдущего поколения (вдвое меньшую стоимость мы пока опустим), рынок по-настоящему нуждается в этих видеокартах.

Давайте немного проанализируем, чем меряются производители пользовательского железа на своих презентациях, то есть каких попугаев для демонстрации своего превосходства они используют.

Нанометры, число ядер, частоты, TDP и так далее


Если говорить о процессорах и видеокартах, то главным аргументом любого спикера, прогуливающегося по сцене и представляющего новый продукт публике, будет нанометраж техпроцесса и количество логических и прочих ядер. Сколько потоков, какой термопакет у нового камня, какую систему охлаждения придумали прикованные к батареи дизайнеры в недрах компании.

Само собой, идет абстрактное сравнение производительности с оборудованием конкурентов и с оборудованием собственного производства, но предыдущего поколения. Все это придает презентации фактуры и заставляет аудиторию качать головой в такт увещеваниями спикера.

На самом деле, тут иронии минимум. Компании на самом деле добиваются впечатляющих результатов по всем этим параметрам. Особенно радует TDP процессоров красного лагеря: AMD последовательно увеличивает производительность своих камней, при этом удерживаясь в стандартном термопакете уровня 65-105 Вт. Это позволяет не городить огромные системы охлаждения, как во времена электровафельниц поколения FX, неадекватно большой термопакет которых стал легендой.

FPS в играх


А вот этот параметр всегда стоит отдельно. Как это не удивительно, но и на презентации центральных процессоров, и на презентации видеокарт всегда показывают количество кадров в секунду в самых последних и популярных играх. Вот, последние годы от презентации к презентации мелькают Fortnite, Call of Duty, Battlefield, Apex Legends, Control короче, все те игры, которые на максимальных настройках графики делают видеокарте больно. Вот в этом году делали больно в разрешении 8к.



Для закрепления можно показать точно такой же по своей сути слайд с презентации процессоров Ryzen 5000 серии, которая прошла около двух недель назад:



И все эти столбцы всегда выглядят очень красиво и приятно. С каждым поколением производительность видеокарт и центральных процессорах в играх растет, а именно для игр это железо, в основной своей массе, и производится. Вот только все не так просто.

Почему все геймеры мира хотят оторвать разработчикам игр руки


Одна из главных причин, по которой геймеры всего мира бросились заказывать новые RTX 3080 и RTX 3090 в надежде заполучить карточку любой ценой не в тупости этих самых геймеров, и даже не в желании опробовать революционные 8к и так далее. Главная причина желание получить хоть сколько-нибудь стабильную производительность, которая бы соответствовала бы возможностям современной периферии, в первую очередь, мониторам.

Для людей, далеких от игровой индустрии расскажу одну тайну: 60 FPS уже давно не стандарт. Да, почему-то на презентациях производители до сих пор говорят о стабильных 60 кадрах в секунду, как будто бы эта производительность дает идеальный игровой опыт, но суть в том, что на рынке игрового оборудования уже давным-давно доминируют мониторы с частотой обновления экрана в 144 Гц, а на пятки им, стремительно дешевея, наступают мониторы с частотой 240 Гц.

Это значит, что для плавной картинки на этих экранах нужен и соответствующий FPS: 144 и 240 кадров соответственно.

И вот тут кроется корень проблем всей индустрии. Если раньше высокогерцовые экраны были прерогативой киберспорта, игроков в CS:GO и Quake, то теперь 144 Гц если у любого уважающего себя игрока. 60 кадров остались в далекой древности: сейчас это стандарт для бюджетных офисных мониторов, потому что частота в 144 Гц дает ощутимое преимущество.

Описать на словах эффект от высокогерцового монитора сложно, но я попробую: представьте, что все внезапно стало двигаться чуть медленнее и намного плавнее. В движении пропадает эффект размытия и вы начинаете замечать малейшие детали. Вращение камеры вокруг всоей оси больше не вызывает дезориентацию, вы продолжаете четко видеть окружающий персонажа мир. На рабочем столе движение курсора теперь намного более явно: если на 60 Гц при резком движении мышью вы зафиксируете взглядом курсор мыши в 5-6 местах, то уже на 144 Гц вы увидите его одновременно в 15-20 точках. На 240 Гц экранах эффект еще более впечатляющий, вы буквально взглядом сможете зафиксировать весь путь курсора мыши на высокой скорости. Для иллюстрации хорошо подходит знаменитый кадр из CS:GO, который демонстрирует разницу в тикрейтах сервера. Примерно то же происходит на высокогерцовых мониторах в плане отрисовки движения:



Именно поэтому, для четкого отображения происходящего в малейших деталях, все геймеры планеты уже плавно перешли на 144 и 240 Гц дисплеи, а кто не перешел либо мечтает перейти, либо играет исключительно в пасьянс.

Но при этом нас до сих пор настойчиво убеждают, что 60 FPS достаточное значение производительности. На этот параметр ориентируются разработчики игр, ориентируются производители железа. Однако как только речь заходит о работе игры в стабильных 144 FPS или, боже упаси, 240 FPS, пусть и на минимальных настройках графики, начинает происходить непонятное: ни одно существующее оборудование не может толком справиться с этой задачей.

Давайте возьмем две самые косорукие игры современности в плане перфоманса: Call of Duty: Warzone и Apex Legends. Обе делались совершенно разными студиями. Первая производства Activision Blizzard, вторая Respawn Entertament под патронажем Electronic Arts. Обе из популярного жанра Battle Royale, обе имеют обширные карты и огромную фанбазу.

Для обоих игр буквально с момента их релиза инженеры Nvidia истерично клепают патчи видеодрайвера, чтобы хоть как-то заставить их работать. Именно инженерные команды драйверописателей уж точно в курсе, что игрокам глубоко плевать на 60 FPS, вертикальную синхронизацию и все то, что увеличивает инпутлаг. Им нужны максимально высокие стабильные кадры хотя бы на топовых видеокартах.

Если вы не верите этому утверждению, можете погуглить сами: в сети сотни статей о повышении FPS в Call of Duty и Apex Legends, сотни тредов о конфигах, которые бы уменьшали графику или убирали лишние модели для снижения нагрузки на видеокарты, а так же масса рассказов о шаманизме, разгоне железа и прочих плясках с бубном.

Просадки производительности в топовых онлайн-играх, особенно в динамичных шутерах болезненная реальность игровой индустрии последних лет. Разработчики буквально забивают болт на производительность своих продуктов за пределами 60 FPS и включенной вертикальной синхронизации, которая погружает камеру в кисель и создает чудовищный инпутлаг, чем вынуждают игроков вкладываться во все более и более мощное оборудование.

Скажу больше, все настолько плохо, что RTX 2080 Ti в указанных играх способны выдавать стабильные 144-190 кадров в секунду только при минимальных конфигурациях графики, но даже при этом иногда случаются дропы FPS! Любая граната, блик или огонь в кадре и все, ваши фреймы машут вам рукой и говорят ну, как это закончится, наберешь, FPS проседает до сотни.

Ситуация достигла уже такой шизы, что Nvidia приходится на своем официальном сайте выпускать официальные гайды по настройке видеокарты и графики в игре, чтобы выжать из нее необходимые комфортные для игроков значения кадров!



Именно по этой причине значительная часть геймеров и ломанулась покупать новые RTX 3080 и RTX 3090, просто в надежде, что уж на этих-то картах любимые игры смогут работать стабильно хотя бы на минимальных настройках графики.

Это не заговор, это нулевая культура разработки


Сейчас рынок находится буквально в западне. С одной стороны с каждым годом выходит все более и более мощное оборудование. Банально память DDR4-1600, которая лет пять назад считалась неплохой, сейчас уже перешла в категорию медленной офисной, а топовые когда-то DDR4-2400 сейчас просто середняк. То же происходит с процессорами, видеокартами, скоростью дисков и так далее и так далее.

Неискушенному пользователю, далекому от гейминга, может показаться, что конфигурации из i9-10900k, DDR4-3200, разогнанной до 4000 Mhz, все это с быстрым SSD и RTX 2080 Ti должно хватать для чего угодно на ультра настройках, но правда в том, что эта конфигурация с трудом обеспечивает 144-200 FPS в новых проектах. Вычеркните из списка выше любую составляющую и вставьте что-то попроще и дешевле, например, RTX 2060S или core i7, и показатели кадров упадут минимум на 30%.

И виной всему не жадность производителей оборудования, а именно косорукость разработчиков и жажда наживы их издателей.

На тестирование и оптимизацию потребления ресурсов в 2019-2020 годах в индустрии был забит настолько большой болт, что будь он реальным, его было бы видно с МКС. Самый лучший пример, это сравнение Apex Legends и предыдущей игры Respawn Entertament Titanfall 2.



Первая делалась в спешке, под постоянным давлением со стороны издателя, который бубнел над ухом команды разработки нам срочно нужен свой батлрояль со скинами и лутбоксами. В итоге мы получили перспективный в плане геймплея проект (он опирается на многие механики и лор Titanfall 2), с абсолютно нулевой оптимизацией и отвратительным неткодом.

Titanfall 2, который вышел в 2016 году, почти всегда выглядит лучше и работает в разы стабильнее даже на средних конфигурациях железа, нежели быстро слепленный ради создания конкуренции PUBG и Fortnite модный Apex Legends. Не знакомый с проектами человек вообще посчитает, что Apex вышел в 2015-2016 году, а Titanfall 2 свежий релиз, если показать их ему одновременно, хотя все с точность, да наоборот.

Та же мрачная история происходит и с Call of Duty и прочими свежими проектами. Потребитель превратился в бесконечного бета-тестера, которому постоянно приходится выбирать между покупкой нового, более мощного железа, либо лагами.

Кстати, именно по этой причине многие с сомнением смотрят на будущее новых Xbox и PS5: если даже современные ПК толком не справляются с современными играми, то что смогут консоли? Будут ли сетевые кроссплатформенные проекты достаточно оптимизированными для игры в них? Опыт PS4 Pro и Call of Duty или Apex Legends показывает, что консоли банально не справляются с продуктами, которые почти полностью состоят из кода сомнительного качества. А про размеры Call of Duty в 200+ Гб уже просто ходят легенды.

Как это изменить


Я надеюсь, что когда-нибудь Nvidia надоест тратить силы и ресурсы на выпуск бесконечных патчей драйверов, которые улучшают производительность в проблемных популярных играх. За последние два-три года, с ростом популярности Fortnite, Apex Legends и Call of Duty Warzone компания-производитель оборудования выпустила столько патчей драверов и технологий, которые бы улучшали перфоманс в этих проектах (чего стоит хотя бы Nvidia Reflex, которая значительно снижает инпутлаг в Apex Legends и Warzone программным путем), что начинает кружится голова. Я за этот срок обновлял драйвера чаще, чем за предыдущие 10 лет вместе взятые.


Абсолютно привычная картина при входе в NVIDIA GeForce Experience

Выход из этой ситуации видится только один. Прекратить порочную практику тяп-ляп и в проду, а Nvidia потом выкатит оптимизационный патч возможно только в случае, если сами Nvidia объявят, что разработчики игр ведут себя, мягко говоря, нехорошо, и забили болт на оптимизацию. Должна случиться еще одна война в стиле Epic Games VS Apple только в этом случае с одной стороны будет производитель видеокарт, а с другой игровые издатели, которые стоят с плетью и погоняют разработчиков, требуя от них новых лутбоксов и сезонов в ущерб качеству фундаментального кода.

Но случится это, только если Nvidia наконец-то пересилит свое желание продать как можно больше флагманских карт и выступит против творящейся в игровой индустрии вакханалии, у нас есть шанс получить нормальную производительность в игровых проектах и отсутствие ажиотажного спроса на новые модели видеокарт.

Вот только верится в это с трудом.
Подробнее..

Zen 3 Король умер, да здравствует король

09.10.2020 22:10:21 | Автор: admin
Ну что ребята, дождались! Процессоры Ryzen 5000 представлены официально, никаких утечек и спекуляций больше не надо. У нас есть всё ядра, частоты, изменения в компоновке. А главное теперь мы точно знаем, что 10900k перестанет быть лучшим игровым процессором уже 5 ноября. Время обсудить подробности.

image

Число ядер в этом поколении не изменилось, как и обещали многие утечки в течение года. Только Юрий Бублий говорил про 10 ядер, но простите Юрий, Вы оказались неправы. Стартовая линейка Ryzen 5000 включает 4 модели: шестиядерный Ryzen 5600X, восьмиядерный Ryzen 5800X, 5900X получит 12 ядер, а 5950Х заменит хитовый 16-ядерный чип для энтузиастов. Никаких промежуточных решений нам не показали, но в будущем мы точно увидим пополнение семейства Zen 3.

image
image

Много интересных нововведений связано с архитектурой новых процессоров на базе Zen 3. В первую очередь это касается конфигурации ядер вместо двух комплексов по 4 ядра теперь у нас единые блоки по 8 ядер с общим пулом кэш-памяти L3 объемом 32 Мб.

image

Объединение позволяет каждому ядру в блоке общаться в кэшем напрямую без задержек, обеспечивая максимальную производительность в играх. Геймеры будут в восторге.

Благодаря архитектурным доработкам вдвое возросла пропускная способность конвейеров операций с плавающей запятой и целочисленных вычислений, обеспечив первый удивительный факт о новом поколении Ryzen если про блоки из 8 ядер нам много раз сообщали слухи, то 19% прибавку к сырой производительности на ядро не ожидал никто. Одни утечки предполагали 10%, оптимисты надеялись на 15 но здесь AMD решила выложиться на полную, и это не может не радовать.

image

Оптимизации коснулась и работа с данными AMD реализовала технологию Zero Bubble, связанную с работой так называемого предсказателя переходов (branch prediction unit). Критически важный модуль микропроцессора выполняет предзагрузку важных инструкций обеспечивая эффективное использование блоков и конвейеров. Zero Bubble кэширует инструкции быстрее, не допуская простоев отдельных частей конвейера, а затраты ресурсов при этом сокращаются. Подробнее о новой технологии нам расскажут позже.

А что там с потреблением? Слухи про 150 ватт оказались верными? Снова нет AMD усердно поработала над энергоэффективностью, поэтому Ryzen 5000 прибавил 24% производительности на ватт в сравнение с выдающимися процессорами на базе Zen 2. По словам AMD, такой прогресс позволил новым процессорам стать почти в 3 раза экономичнее 10900k. Эпично! Итого Лиза Су побеждает в матче против слухов со счетом 2-0.

С технологиями разобрались, теперь самое важное. Игровая производительность Zen 2 во многом обеспечила огромную популярность третиего поколения Ryzen, но у Intel оставался козырь в рукаве её игровые процессоры чаще всего оказывались быстрее, а флагман 10900k опережал конкурентов с большим отрывом. Опережал, но пришло время перемен на демонстрации нам показали Ryzen 5900X, процессор, способный без лишнего шума стать самым производительным игровым камнем на рынке. Обойти 10900k в CSGO на 19%? Опередить предшественника в League of Legends на 50%? Новичкам всё по плечу, а главное даже в самых сложных случаях 5900Х держит марку, не уступая лучшему игровому процессору конкурента. И всё это не вылезая из теплопакета в 105 Вт! О большем мы и не мечтали.

image

Пора раз и навсегда расправиться с утечками, которые вводили нас в заблуждение. Вопреки мрачным прогнозам, AMD не стала разделять релизы, Лиза Су показала все 4 чипа, и они окажутся на полках магазинов уже 5 ноября, меньше чем через месяц с момента анонса. Вместе с производительностью подскочили и цены, но без драматизма наценка в 50 долларов не выглядит грабежом на фоне достижений нового поколения. Если и хотелось верить в какой-то слух, то про священные 5 Ггц! Жаль, но и здесь мимо! Старший чип получил буст-частоту 4.9 Ггц, немного не дотянув до той самой цифры. А мы так надеялись! Но ничего утешительным призом стал рост буст-частот новинок в среднем на 100 Мгц в сравнение с процессорами Zen 2. Прирост маленький, но не бесполезный.

Пора подвести итоги. Впервые за 15 лет компания AMD возвращается на первые строчки игровых бенчмарков, навязывая борьбу самым быстрым процессорам Intel. Если раньше нас привлекали ударно низкими ценами и всемогущим многопотоком, то теперь на первый план вышли игры. Вся презентация AMD была посвящена игровым преимуществам нам показали рекордную одноядерную производительность в Cinebench, а чтобы не быть голословными, вывели немало интересных бенчмарков. Особенно порадовало присутствие такого шедевра, как Far Cry: New Dawn. Полуторапоточный движок Dunya всегда смотрел на Zen 2 свысока, а лучшие чипы AMD здесь проигрывали даже решениям прошлых поколений, но Zen 3 и здесь показал себя на уровне 10900k! Всё, век компромиссов прошел теперь у Intel остался только один козырь: улыбка Боба Суона.

Под занавес презентации нам показали тизер долгожданной Big Navi фанатское прозвище настолько понравилось компании, что стало официальным. Тизер вышел с сюрпризом, ведь точную модель нам никто не назвал, из чего можно сделать вывод о показе условной 6800XT, а не флагманской карты.

image

Почему? Всё просто многие сразу же побежали сравнивать показанные цифры с RTX 3080, а портить игригу 28 октября Лиза Су точно не собиралась. Как показала презентация новых Ryzen, красные наловчились путать карты охотникам за утечками, поэтому Дженсена Хуанга с его перенесенным релизом 3070 наверняка будет ждать неприятный сюрприз.
Подробнее..

Играемся с Новыми GPU на базе Ampere от Nvidia и пробуем MIG

02.12.2020 16:10:54 | Автор: admin


Каждый раз, когда встает заветный вопрос, апгрейдить ли карточки в серверной или нет, я просматриваю подобные статьи и смотрю такие видосы (нет, маркетинговым материалам от Nvidia конечно верить нельзя, как показал недавний кейс с числом CUDA-ядер).


Канал "Этот Компьютер" очень сильно недооценен, но автор не занимается ML. А в целом при анализе сравнений акселераторов для ML в глаза как правило бросаются несколько вещей:


  • Авторы учитывают как правило только "адекватность" для рынка новых карт в США;
  • Рейтинги далеки от народа и делаются на весьма стандартных сетках (что наверное в целом хорошо) без деталей;
  • Популярная мантра тренировать все более гигантские сетки вносит свои коррективы в сравнения;

Не нужно быть семи пядей во лбу, чтобы знать очевидный ответ на вопрос "а какая карта лучше?": карточки серии 20* в массы не пошли, 1080 Ti с Авито до сих очень привлекательны (и не особо дешевеют как ни странно, вероятно по этой причине).


Все это прекрасно и вряд ли стандартные бенчмарки сильно врут, но недавно я узнал про существование технологии Multi-Intance-GPU для видеокарт А100 и нативную поддержку TF32 и мне пришла идея поделиться своим опытом реального тестирования карточек на архитектуре Ampere (3090 и А100). В этой небольшой заметке я постараюсь ответить на вопросы:


  • Стоит ли свеч обновление на Ampere? (спойлер для нетерпеливых да);
  • Стоят ли своих денег A100 (спойлер в общем случае нет);
  • Есть ли кейсы, когда A100 все-таки интересны (спойлер да);
  • Полезна ли технология MIG (спойлер да, но для инференса и для очень специфичных случаев для обучения);

За деталями прошу под кат.


Простые Вещи


Давайте сразу обратим внимание на слона в комнате. На момент написания этой заметки:


  • 3090 довольно сложно купить и продаются они примерно с 30-40% премией. Причем нехватки новых карт есть не только в СНГ;
  • A100 почти невозможно купить. Партнеры Nvidia говорили что в РФ наличии есть 1 штука, потом приедет еще несколько штук;
  • Я не особо искал, но с наскоку я не нашел информации насколько PCIE версия A100 совместима с обычными ATX платформами (именно на этот вопрос партнеры Nvidia не ответили, но я предполагаю, что в картах нет своего кулера и предполагается установка в серверное шасси с "громким" феном);
  • 3080 и более младшие модели (хотя они очень интересны по цене, а особенно для игр) не тестировали, т.к. у нас их нет, а не рассматривали их из-за размера памяти (я наивно предполагал, что получится крутить несколько сеток на 1 карте, но там все работает несколько иначе);

По понятным причинам холивор кормить или не кормить Амазон выносим за скобки. Уверен, что среди комментаторов найдутся свидетели церкви Амазона, но свой риг как правило "окупается" против облачных цен (особенно если собирать из дешевых компонентов) где-то за полгода-год использования.


Охлаждение


Если верить утилитам от Nvidia, то 3090 и А100 на 15-20 градусов холоднее, чем Maxwell и Pascal. Я не проводил точные замеры, но в среднем ситуация такая:


  • 4 * 1080 Ti (Pascal) с минимальными хаками по охладжению работают в диапазоне 75-80С под 100% нагрузкой;
  • 3 * Titan X (Maxwell) работали в районе 85С под 100% нагрузкой;
  • 3 * 3090 (Ampere) работают в диапазоне 60-70С под 100% нагрузкой;
  • Нигде не применялся ни разгон, ни ограничения по питанию карт или скорости кулеров, все "из коробки";
  • Все карты имеют "турбину", то есть выталкивают тепло из корпуса;

На вопрос "почему" есть 3 гипотезы:


  • Новый техпроцесс;
  • У 3090 немного другая форма самой карты, размер вентилятора заметно больше, размер отверстия на задней панельке сильно больше;
  • 3090 кажется тяжелее (может кто-то знает где найти точные цифры, карт нет под рукой сейчас);


Наглядная иллюстрация отличий карточек, может кто-то из комментариев подскажет диаметр вентилятора?

Наивные Метрики


Сначала, чтобы удостовериться, что драйвера работают верно (а когда они работали неверно, цифры были другие совсем), давайте протестируем все доступные карточки с помощью gpu-burn. Получается такая картина, которая очень сильно коррелирует с тем, что рисуют в обзорах.


Test GPU Gflop/s
./gpu_burn 120 Titan X (Maxwell) 4,300
./gpu_burn 120 1080 Ti (Pascal) 8,500
./gpu_burn 120 3090 (Ampere) 16,500
./gpu_burn 120 A100 (wo MIG) 16,700
./gpu-burn -tc 120 3090 (Ampere) 38,500
./gpu-burn -tc 120 A100 (wo MIG) 81,500

MIG не тестировался тут, дальше в статье увидите почему.


Цена Вопроса


Тут важно отметить, что 1080 Ti и Titan X мы покупали с рук условно "новые" (менее года использования). Не будем останавливаться лишний раз на холиворах про майнеров и политику ценообразования Nvidia, но если бережно использовать даже б/у игровые карты их срок службы где-то 3-4 года. Цены и характеристики указаны примерные. A100 по информации от партнеров Nvidia в России в продаже имеется до нового года одна. Когда 1080Ti были доступны новыми, цены колебались примерно от 50к до 100к рублей.


GPU Mem Цена
Titan X (Maxwell) 12G 10,000 рублей (Авито)
1080 Ti 11G 25,000 рублей (Авито)
3090 (Ampere) 24G 160,000+ рублей (новая)
A100 (wo MIG) 40G US$12,500 (новая)

Думаю очевидные выводы дальше читатели сделают сами.

Пробуем 3090 и A100 c MIG


Пробуем 3090


А теперь переходим к самому интересному к реальным тестам и собираем грабли на реальных задачах. В теории кажется, что если по памяти и вычислительным способностям 3090 или А100 в 2-3 раза превосходят 1080 Ti, то 1 такая карточка может заменить 2-3 1080 Ti и на стандартном сервере с 4 полноценными PCIE портами можно получить аналог сервера с 12 картами? Ну или можно ли взять допустим 3-4 PCIE версии A100 и получить очень мощный сервер, разделив каждую из них на несколько compute instance с использованием MIG?


Короткий ответ нет, более длинный ответ тоже нет, но с многочисленными оговорками.


Зачем спросите? Да просто серверные решения, которые полноценно поддерживают 8 16 видеокарт даже в минимальной разумной конфигурации по цене выходят в 4-5 раз дороже, чем стандартные ATX решения. А DGX Workstation или DGX продаются еще с примерно 50% премией к своей аналогичной сборке, если собирать на базе платформ от Mikrotik или Gigabyte.


Производители карт не торопятся выпускать полноценные однослотовые решения (кроме PNY c серией Quadro, но это отдельная история и скорее для дизайна или инференса). Конечно можно собрать кастомный водяной контур на 7 карточек (было несколько моделей материнских плат с 7 полноценными PCIE портами), но это "сложно" и неясно где такое размещать (да и игра не стоит свеч). С приходом PCIE 4.0 привлекательность таких решений по идее должна вырасти, но я пока не видел ничего интересного на рынке.


Пара огоровок про задачу на которой тестировали:


  • Задача тренировка Spech-to-Text сетки на украинском датасете;
  • Из-за самой задачи экспериментально оптимальный размер батча на один процесс 50 не получается увеличивать без потерь в скорости сходимости;
  • Именно на этой задаче AMP у нас не работает (хотя работает на других при прочих равных, мы пока не поняли почему), но это скорее оптимизация. То есть дело не в железе, а в задаче. На других задачах работает, поэтому вынесем за скобки;
  • Важая оговорка поскольку по сути эта задача это sequence-to-sequence, то в общем случае построение батчей тут не совсем тривиально. Файлы разной длины попадают в батч только с файлами примерно такой же длины (чтобы снизить впустую потраченные ресурсы на обработку падинга), но размер батча статический для упрощения сравнений и более быстрой сходимости;
  • Динамический размер батча и просто его увеличение тестировали, но это особо не влияет на скорость и скорость сходимости (или ухудшает);

Вопреки тренду делать все более гигантские сети, мы наоборот занимаемся миниатюризацией наших алгоритмов и пытаемся делать наши сети все более эффективными. Поэтому вопрос параллелизации и ускорения обучения сетей интересен в первую очередь за счет увеличения числа воркеров, а не размера сетей и вычислительных возможностей ускорителей.


И тут мы наталкиваемся на первый подводный камень Distributed Data Parallel из PyTorch (DDP, оптимальный способ масштабирования сетей на "много" видеокарт) из коробки по сути настроен только на 1 процесс на 1 карте. То есть 1 процесс может использовать 1+ карту. 2 процесса не могут использовать 1 карту, даже если там есть большой запас по IO / compute / RAM. В старых версиях драйверов явного ограничения нет и на 1080 Ti 2 процесса на 1 карта запускаются (но получется прирост по скорости всего на 5-10% вместо 40-50%). На новых картах туда уже впилили exception.


RuntimeError: NCCL error in: /opt/conda/conda-bld/pytorch_1603729096996/work/torch/lib/c10d/ProcessGroupNCCL.cpp:784, invalid usage, NCCL version 2.7.8

Но не все так печально и плохо. Может из-за какой-то низкоуровневой магии в драйверах, может из-за TF32 (надеюсь тут знатоки подскажут), может из-за наработок в MPS 3090 ведут себя немного иначе на нашем бенчмарке:


  • При прочих равных и неизменных параметрах они используют больше памяти чем Titan X и 1080 Ti (~16 GB вместо 7-8 GB);
  • Скорость примерно в 3 раза выше, чем с Titan X (Maxwell);
  • [Нужно еще точно замерить скорость на 1080 Ti];
  • Утилизация карт на высоком уровне более 90%;

При попытках запускать 2 DDP воркера на 1 карте мы просто получаем ошибку, при попытке тренировать 2 сетки "одновременно" мы получаем кратное замедление, при увеличении батча прирост по скорости незначительный. Тайминги на 2 * 3090 примерно такие:


| Epoch   time, m | Type | Workers | Batch   | Params               ||-----------------|------|---------|---------|----------------------|| exception       | DDP  | 4       | 50 * 4  |                      || 3.8             | DDP  | 2       | 50 * 2  |                      || 3.9             | DDP  | 2       | 50 * 2  | cudnn_benchmark=True || 3.6             | DDP  | 2       | 100 * 2 |                      |

Для полноты рассказа, важно еще отметить что у Nvidia есть MPS который якобы позволяет крутить 2 процесса на картах без переключения контекста а в PyTorch есть встроенный RPC-фреймворк. Но первый я просто не смог адекватно использовать без очень непонятных низкоуровневых ошибок, а второй требует радикального переписывания кода и радикально усложняет код для тренировки моделей (хотя очень интересен долгосрочно).


Так, с 3090 все понятно. Две карточки она не заменит конечно, но сама по себе, даже имея "лишнюю" память (повторюсь, мы тренируем маленькие сети), работает в 2-3 раза быстрее. Эквивалентно ли это наличию 2-3 карт, зависит от задачи.


TLDR:


  • Вы можете просто заменить карты с турбиной в своем риге на 3090 (единственный момент в 3090 2 8-пиновых коннектора для питания, но на рынке есть блоки питания по 2000-Ватт которые точно могут запитать 4-5 таких карт, опять же никто не отменял синхронизацию 2 блоков питания);
  • При это скорее всего температура карт снизится на 10-20 градусов Цельсия;
  • Эти карты сейчас стоят дорого и находятся в дефиците (и, наверное вряд ли пойдут в массы), но если для вас самый дорогой ресурс это время то это интересный вариант;
  • Если большой размер памяти для вас критичен у вас по сути нет выбора;

Пробуем A100 с MIG


Посмотрев на метрики, доступность и цену карт, А100 на первый взгляд вообще не кажется интересным вариантом, разве что в облаке на 3 дня натренировать 1 большую сетку на небольшом не сильно приватном датасете. Также если вашим алгоритмам сильно помогает AMP / FP16, то А100 может существенно добавить скорости.


Но в A100 есть интересная технология MIG (Multi Instance GPU). По сути она позволяет разбить одну "большую и мощную" карточку на набор маленьких "подкарточек" и дальше создать виртуальные Compute Instances, к которым можно обращаться как к отдельным картам.


Там довольно много деталей, за ними откройте документацию, но там доступны такие пресеты:


+--------------------------------------------------------------------------+| GPU instance profiles:                                                   || GPU   Name          ID    Instances   Memory     P2P    SM    DEC   ENC  ||                           Free/Total   GiB              CE    JPEG  OFA  ||==========================================================================||   0  MIG 1g.5gb     19     0/7        4.75       No     14     0     0   ||                                                          1     0     0   |+--------------------------------------------------------------------------+|   0  MIG 2g.10gb    14     0/3        9.75       No     28     1     0   ||                                                          2     0     0   |+--------------------------------------------------------------------------+|   0  MIG 3g.20gb     9     0/2        19.62      No     42     2     0   ||                                                          3     0     0   |+--------------------------------------------------------------------------+|   0  MIG 4g.20gb     5     0/1        19.62      No     56     2     0   ||                                                          4     0     0   |+--------------------------------------------------------------------------+|   0  MIG 7g.40gb     0     0/1        39.50      No     98     5     0   ||                                                          7     1     1   |+--------------------------------------------------------------------------+


Доступные конфигурации

Возникает вопрос, а что если наша сетка маленькая, и A100 в теории (хотя бы на FP16) должна быть в 2 раза мощнее чем 3090? Можно ли взять 4 A100 и сделать из них допустим 12 видеокарт аналогичных по памяти и мощности 1080 Ti? Можно ли на этих многочисленных "микро-картах" тренировать нейросети так же как на нескольких обычных?


Ответим на вопросы по одному. Тут нам поможет как сама документация, так и совсем свежий блог пост от самой Nvidia.


В документации есть такой абзац:


MIG supports running CUDA applications by specifying the CUDA device on which the application should be run. With CUDA 11, only enumeration of a single MIG instance is supported.CUDA applications treat a CI and its parent GI as a single CUDA device. CUDA is limited to use a single CI and will pick the first one available if several of them are visible. To summarize, there are two constraints:- CUDA can only enumerate a single compute instance- CUDA will not enumerate non-MIG GPU if any compute instance is enumerated on any other GPUNote that these constraints may be relaxed in future NVIDIA driver releases for MIG.

Сначала, когда я его прочитал, мне показалось, что он означал только что нельзя распилить 2 карты, а можно использовать только одну. После того, как я попробовал поиграться с реальной картой, оказалось, что фреймворк внутри контейнера видит только 1 "карту" (причем видимо выбирает он только "первую"). Причем если мы внимательно прочитаем те примеры, которые Nvidia приводит в своем блоге, они по сути все относятся к сценарию "1 контейнер 1 кусочек карты" или "тюнинг 7 маленьких моделей параллельно".


Еще там есть вот такой пассаж:


There is no GPU-to-GPU P2P (both PCIe and NVLINK) support in MIG mode, so MIG mode does not support multi-GPU or multi-node training. For large models or models trained with a large batch size, the models may fully utilize a single GPU or even be scaled to multi-GPUs or multi-nodes. In these cases, we still recommend using a full GPU or multi-GPUs, even multi-nodes, to minimize total training time.

Если использовать MIG по прямому назначению, то есть делить карту на физические кусочки (slices), назначать им Compute Instances и прокидывать их в изолированные контейнеры то все работает как надо. It just works.


Итоговые Замеры


Тут не совсем идеальные сравнения (на Титане у меня был DP а не DDP), да и на A100 в итоге я не стал гонять эксперименты на 10, 20, 30 часов и впустую (зачем греть атмосферу), но я замерил время на 1 эпохе.



Когда крутишь 1 сетку на A100 утилизация не достигает даже и половины ну то есть если бы ее можно было распилить на 2-3 карты, все было бы прекрасно

Avg epoch time, m Workers Batch GPUs CER @10 hours CER @20 h CER @30 h Comment
4.7 2, DDP 50 * 2 2 * 3090 14.4 12.3 11.44 Close to 100% utilization
15.3 1, DP 50 2 * Titan X 21.6 17.4 15.7 Close to 100% utilization
11.4 1, DDP 50 * 1 1 * A100 NA NA NA About 35-40% utilization
TBD 2, DDP 50 * 2 2 * 1080 Ti TBD TBD TBD

На 1080 Ti ресурсы были только чтобы прогнать 1 эпоху.


Выводы


Выводы про 3090:


  • Если вынести за скобки вопрос доступности, то апгрейд стоит делать. Вы получите минимум x2 по скорости. Если у вас работает AMP то может даже и все x3-x4;
  • С учетом роста производительности, цена кажется немного завышенной, но не заоблачной. Понижение цены где-то на 30-40% как мне кажется было бы адекватным;
  • Когда выходило новое поколение карт все беспокоились насчет охлаждения. Она на удивление холодная;
  • Единственная беда карточка просит 2 8-пиновых коннектора для питания;

Выводы про A100:


  • Если судить по цене деленной на производительность, карта не очень интересная (наценка в 2-3 раза против 3090);
  • То, что Nvidia сделала технологию для эффективного использования для инференса это круто, а то карты стали уж слишком большими и крутыми;
  • Если вы можете использовать обычные игровые карты (те же 1080 Ti или PNY Quadro) для инференса, то они представляют сильно больший value for money;
  • Есть большой нераскрытый потенциал в развитии технологии MIG;
  • Если вам нужно реально 40 GB памяти и много compute, то альтернатив особо нет;
  • Неясен вопрос с установкой PCIE версии в обычные ATX корпуса без кастома, "колхоза" или воды ;
Подробнее..

Перевод Стриминг Edge2AI на NVIDIA JETSON Nano 2Гб с использованием агентов MiNiFi в приложениях FLaNK

03.03.2021 10:13:29 | Автор: admin

Мне некогда было снимать своё видео распаковки - не терпелось запустить это превосходное устройство. NVIDIA Jetson Nano 2GB теперь можно купить всего за 59 долларов!!!
Я провел пробный запуск, у него есть все функции, которые вам нравятся для Jetson, всего на 2 Гб оперативной памяти и 2 USB порта меньше. Это очень доступное устройство для создания классных кейсов.

Распаковка: https://www.youtube.com/watch?v=dVGEtWYkP2c&feature=youtu.be

Подключение к приложениям ИИ-сообщества: https://youtu.be/2T8CG7lDkcU

Образовательные проекты: https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-nano/education-projects/

Технические характеристики:
Графический процессор: NVIDIA Maxwell со 128 ядрами CUDA
Процессор: Четырехъядерный ARM A57 с частотой 1,43 ГГц
Память: 2 Гб LPDDR4, 64-bit 25,6 Гбит/с
Накопитель: microSD (не входит в комплект)
Кодирование видео: 4K с частотой 30 Гц | 4 потока в разрешении 1080p с частотой 30 Гц | 9 потоков в разрешении 720p с частотой 30 Гц (H.264/H.265)
Декодирование видео: 4K с частотой 60 Гц | 2 потока в разрешении 4K с частотой 30 Гц | 8 потоков в разрешении 1080p с частотой 30 Гц | 18 потоков в разрешении 720р с частотой 30 Гц (H.264/H.265)
Соединение: Беспроводное подключение Gigabit Ethernet, 802.11ac*
Камера: 1 разъем MIPI CSI-2
Разъемы дисплея: Разъем HDMI
USB: 1x USB 3.0 Type A, 2x USB 2.0 Type A, 1x USB 2.0 Micro-B
Прочие разъемы: Разъем 40-пин (GPIO, I2C, I2S, SPI, UART)
Разъем: 12-пин (питание и связанные сигналы, UART)
Разъем вентилятора: 40-пин *
Размеры: 100 x 80 x 29 мм

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

Все мои существующие рабочие нагрузки отлично работают в версии на 2 ГБ, но с очень хорошей экономией средств. Настройка проста, система быстрая, я настоятельно рекомендую всем, кто ищет быстрый способ поэкспериментировать с ИИ на периферии и другими пограничными рабочими нагрузками. Это может быть отличный вариант для самостоятельного обучения. Я также подключил свой Jetson к монитору, клавиатуре и мыши, и я могу использовать его сразу же как для вычислений на периферии, так и в качестве основного рабочего ПК. С большим количеством таких устройств можно будет легко запустить MiNiFi агентов, модель классификации на Python и модели Deep Learning.

NVIDIA не остановилась на самом дешевом пограничном устройстве, у них также есть несколько серьезных корпоративных обновлений: Cloudera превозносит на новый уровень корпоративное озеро данных благодаря сотрудничеству с NVIDIA!

Пример запуска модели глубокого обучения

Исходники и настройки: https://github.com/tspannhw/SettingUpAJetsonNano2GB/blob/main/README.md

Устройство NVIDIA Jetson Nano 2GB великолепно - ничего лишнего. Я скопировал своего агента MiNiFi и код из других Jetson Nanos, Xavier NX и TX1, и все работает нормально. Скорость вполне подходит для большинства потребностей, особенно для задач разработки и прототипирования. Я предпочитаю Xavier, но за эту цену выбор достойный. Для большинства сценариев использования IoT/ИИ на периферии я собираюсь задействовать несколько Jetson Nano. Я уже использовал NVidia Jetson 2GB для демонстрации на некоторых мероприятиях, включая ApacheCon, BeamSummit, Open Source Summit и AI Dev World:
https://www.linkedin.com/pulse/2020-streaming-edge-ai-events-tim-spann/

Для захвата неподвижных изображений и создания их каталога для обработки я установил fswebcam.

Обычно я использую этот гайд: https://github.com/dusty-nv/jetson-inference.
Вы получите отличные библиотеки, руководства, документацию и примеры. Обычно я создаю свои приложения, пользуясь одним из этих примеров, а также использую одну из превосходных готовых моделей NVIDIA. Это значительно ускоряет разработку и развертывание Edge2AI-приложений, будь то задачи IoT или другие цели. Это все работает со стандартными подключаемыми камерами Raspberry Pi и отличными USB веб-камерами Logitech, которые я использовал со всеми другими устройствами NVIDIA.

При такой цене, кажется, нет причин, по которым любому разработчику в любой компании не стоило бы иметь такое устройство. Это отличное решение для тестирования приложений Edge AI и классификации с очень приличной скоростью.

Во время проведения презентации на NetHope Global Summit, и подумал, что эти устройства за 59 долларов вполне способны стать отличным вариантом для некоммерческих организаций, которые могут использовать их для сбора и анализа данных в поле. https://www.nethopeglobalsummit.org/agenda-2020#sz-tab-44134

Я исследую некоторые сценарии использования, чтобы посмотреть, можно ли заранее создать несколько простых приложений, которые такая организация могла бы просто взять и запустить. Посмотрим, что получится. Периферийное устройство с графическим процессором за 59 долларов позволяет использовать некоторые новые приложения по очень доступной цене. За 59 долларов я не получу много ресурсов облака, но смогу получить небольшое и мощное устройство для сбора данных, которое справится с нагрузками МО, DL, обработкой видео с камеры, работой с агентами MiNiFi, Python и Java. Воображение здесь ограничивается только 2-мя гигабайтами быстрой оперативной памяти и однимграфическим процессором.

Пример приложения

Пример выходных данных:

{"uuid": "nano_uuid_cmq_20201026202757", "ipaddress": "192.168.1.169",
"networktime": 47.7275505065918, "detectleft": 1.96746826171875,
"detectconfidence": 52.8866550521850pidence ": 52.8866550521850pidence":
52.8866550521850p , "gputemp": "30.0", "gputempf": "86", "cputempf": "93",
"runtime": "169", "host": "nano5",
"filename": "/ opt / demo /images/out_iue_20201026202757.jpg ",
" host_name ":" nano5 "," macaddress ":" 00: e0: 4c: 49: d8: b7 ",
" end ":" 1603744246.924455 "," te ":" 169.4200084209442 ",
systemtime: 26.10.2020 16:30:46, cpu: 9,9, diskusage: 37100,4 МB,
Memory: 91,5, id: 20201026202757_64d69a82-88d8-45f8-be06 -1b836cb6cc84 "}


Ниже приведен пример вывода при запуске скрипта на Python для классификации изображения с веб-камеры (это Logi веб-камера низкого уровня, но вы можете использовать камеру Raspberry Pi). Еще лучше, если бы мы запустили этот непрерывный вывод сообщений журнала и изображений для агентов MiNiFi. Их можно было бы собрать и отправить на сервер для маршрутизации, преобразования и обработки.

root@nano5:/opt/demo/minifi-jetson-nano# jetson_clocks

root@nano5:/opt/demo/minifi-jetson-nano# python3 detect.py

[gstreamer] initialized gstreamer, version 1.14.5.0

[gstreamer] gstCamera -- attempting to create device v4l2:///dev/video0

[gstreamer] gstCamera -- found v4l2 device: HD Webcam C615

[gstreamer] v4l2-proplist, device.path=(string)/dev/video0, udev-probed=(boolean)false, device.api=(string)v4l2, v4l2.device.driver=(string)uvcvideo, v4l2.device.card=(string)"HD\ Webcam\ C615", v4l2.device.bus_info=(string)usb-70090000.xusb-3.2, v4l2.device.version=(uint)264588, v4l2.device.capabilities=(uint)2216689665, v4l2.device.device_caps=(uint)69206017;

[gstreamer] gstCamera -- found 30 caps for v4l2 device /dev/video0

[gstreamer] [0] video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)5/1;

[gstreamer] [1] video/x-raw, format=(string)YUY2, width=(int)1600, height=(int)896, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/2, 5/1 };

[gstreamer] [2] video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 10/1, 15/2, 5/1 };

[gstreamer] [3] video/x-raw, format=(string)YUY2, width=(int)960, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [4] video/x-raw, format=(string)YUY2, width=(int)1024, height=(int)576, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [5] video/x-raw, format=(string)YUY2, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [6] video/x-raw, format=(string)YUY2, width=(int)864, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [7] video/x-raw, format=(string)YUY2, width=(int)800, height=(int)448, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [8] video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [9] video/x-raw, format=(string)YUY2, width=(int)640, height=(int)360, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [10] video/x-raw, format=(string)YUY2, width=(int)432, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [11] video/x-raw, format=(string)YUY2, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [12] video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [13] video/x-raw, format=(string)YUY2, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [14] video/x-raw, format=(string)YUY2, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [15] image/jpeg, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [16] image/jpeg, width=(int)1600, height=(int)896, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [17] image/jpeg, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [18] image/jpeg, width=(int)960, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [19] image/jpeg, width=(int)1024, height=(int)576, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [20] image/jpeg, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [21] image/jpeg, width=(int)864, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [22] image/jpeg, width=(int)800, height=(int)448, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [23] image/jpeg, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [24] image/jpeg, width=(int)640, height=(int)360, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [25] image/jpeg, width=(int)432, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [26] image/jpeg, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [27] image/jpeg, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [28] image/jpeg, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] [29] image/jpeg, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };

[gstreamer] gstCamera -- selected device profile: codec=mjpeg format=unknown width=1280 height=720

[gstreamer] gstCamera pipeline string:

[gstreamer] v4l2src device=/dev/video0 ! image/jpeg, width=(int)1280, height=(int)720 ! jpegdec ! video/x-raw ! appsink name=mysink

[gstreamer] gstCamera successfully created device v4l2:///dev/video0

[gstreamer] opening gstCamera for streaming, transitioning pipeline to GST_STATE_PLAYING

[gstreamer] gstreamer changed state from NULL to READY ==> mysink

[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter1

[gstreamer] gstreamer changed state from NULL to READY ==> jpegdec0

[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter0

[gstreamer] gstreamer changed state from NULL to READY ==> v4l2src0

[gstreamer] gstreamer changed state from NULL to READY ==> pipeline0

[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter1

[gstreamer] gstreamer changed state from READY to PAUSED ==> jpegdec0

[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter0

[gstreamer] gstreamer stream status CREATE ==> src

[gstreamer] gstreamer changed state from READY to PAUSED ==> v4l2src0

[gstreamer] gstreamer changed state from READY to PAUSED ==> pipeline0

[gstreamer] gstreamer stream status ENTER ==> src

[gstreamer] gstreamer message new-clock ==> pipeline0

[gstreamer] gstreamer message stream-start ==> pipeline0

[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter1

[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> jpegdec0

[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter0

[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> v4l2src0

[gstreamer] gstCamera -- onPreroll

[gstreamer] gstCamera -- map buffer size was less than max size (1382400 vs 1382407)

[gstreamer] gstCamera recieve caps: video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)1:4:0:0, framerate=(fraction)30/1

[gstreamer] gstCamera -- recieved first frame, codec=mjpeg format=i420 width=1280 height=720 size=1382407

RingBuffer -- allocated 4 buffers (1382407 bytes each, 5529628 bytes total)

[gstreamer] gstreamer changed state from READY to PAUSED ==> mysink

[gstreamer] gstreamer message async-done ==> pipeline0

[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> mysink

[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> pipeline0

RingBuffer -- allocated 4 buffers (14745600 bytes each, 58982400 bytes total)

jetson.inference -- detectNet loading build-in network 'ssd-mobilenet-v2'

detectNet -- loading detection network model from:

-- model networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff

-- input_blob 'Input'

-- output_blob 'NMS'

-- output_count 'NMS_1'

-- class_labels networks/SSD-Mobilenet-v2/ssd_coco_labels.txt

-- threshold 0.500000

-- batch_size 1

[TRT] TensorRT version 7.1.3

[TRT] loading NVIDIA plugins

[TRT] Registered plugin creator - ::GridAnchor_TRT version 1

[TRT] Registered plugin creator - ::NMS_TRT version 1

[TRT] Registered plugin creator - ::Reorg_TRT version 1

[TRT] Registered plugin creator - ::Region_TRT version 1

[TRT] Registered plugin creator - ::Clip_TRT version 1

[TRT] Registered plugin creator - ::LReLU_TRT version 1

[TRT] Registered plugin creator - ::PriorBox_TRT version 1

[TRT] Registered plugin creator - ::Normalize_TRT version 1

[TRT] Registered plugin creator - ::RPROI_TRT version 1

[TRT] Registered plugin creator - ::BatchedNMS_TRT version 1

[TRT] Could not register plugin creator - ::FlattenConcat_TRT version 1

[TRT] Registered plugin creator - ::CropAndResize version 1

[TRT] Registered plugin creator - ::DetectionLayer_TRT version 1

[TRT] Registered plugin creator - ::Proposal version 1

[TRT] Registered plugin creator - ::ProposalLayer_TRT version 1

[TRT] Registered plugin creator - ::PyramidROIAlign_TRT version 1

[TRT] Registered plugin creator - ::ResizeNearest_TRT version 1

[TRT] Registered plugin creator - ::Split version 1

[TRT] Registered plugin creator - ::SpecialSlice_TRT version 1

[TRT] Registered plugin creator - ::InstanceNormalization_TRT version 1

[TRT] detected model format - UFF (extension '.uff')

[TRT] desired precision specified for GPU: FASTEST

[TRT] requested fasted precision for device GPU without providing valid calibrator, disabling INT8

[TRT] native precisions detected for GPU: FP32, FP16

[TRT] selecting fastest native precision for GPU: FP16

[TRT] attempting to open engine cache file /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff.1.1.7103.GPU.FP16.engine

[TRT] loading network plan from engine cache /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff.1.1.7103.GPU.FP16.engine

[TRT] device GPU, loaded /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff

[TRT] Deserialize required 2384046 microseconds.

[TRT]

[TRT] CUDA engine context initialized on device GPU:

[TRT] -- layers 117

[TRT] -- maxBatchSize 1

[TRT] -- workspace 0

[TRT] -- deviceMemory 35449344

[TRT] -- bindings 3

[TRT] binding 0

-- index 0

-- name 'Input'

-- type FP32

-- in/out INPUT

-- # dims 3

-- dim #0 3 (SPATIAL)

-- dim #1 300 (SPATIAL)

-- dim #2 300 (SPATIAL)

[TRT] binding 1

-- index 1

-- name 'NMS'

-- type FP32

-- in/out OUTPUT

-- # dims 3

-- dim #0 1 (SPATIAL)

-- dim #1 100 (SPATIAL)

-- dim #2 7 (SPATIAL)

[TRT] binding 2

-- index 2

-- name 'NMS_1'

-- type FP32

-- in/out OUTPUT

-- # dims 3

-- dim #0 1 (SPATIAL)

-- dim #1 1 (SPATIAL)

-- dim #2 1 (SPATIAL)

[TRT]

[TRT] binding to input 0 Input binding index: 0

[TRT] binding to input 0 Input dims (b=1 c=3 h=300 w=300) size=1080000

[TRT] binding to output 0 NMS binding index: 1

[TRT] binding to output 0 NMS dims (b=1 c=1 h=100 w=7) size=2800

[TRT] binding to output 1 NMS_1 binding index: 2

[TRT] binding to output 1 NMS_1 dims (b=1 c=1 h=1 w=1) size=4

[TRT]

[TRT] device GPU, /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff initialized.

[TRT] W = 7 H = 100 C = 1

[TRT] detectNet -- maximum bounding boxes: 100

[TRT] detectNet -- loaded 91 class info entries

[TRT] detectNet -- number of object classes: 91

detected 0 objects in image

[TRT] ------------------------------------------------

[TRT] Timing Report /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff

[TRT] ------------------------------------------------

[TRT] Pre-Process CPU 0.07802ms CUDA 0.48875ms

[TRT] Network CPU 45.52254ms CUDA 44.93750ms

[TRT] Post-Process CPU 0.03193ms CUDA 0.03177ms

[TRT] Total CPU 45.63248ms CUDA 45.45802ms

[TRT] ------------------------------------------------

[TRT] note -- when processing a single image, run 'sudo jetson_clocks' before

to disable DVFS for more accurate profiling/timing measurements

[image] saved '/opt/demo/images/out_kfy_20201030195943.jpg' (1280x720, 4 channels)

[TRT] ------------------------------------------------

[TRT] Timing Report /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff

[TRT] ------------------------------------------------

[TRT] Pre-Process CPU 0.07802ms CUDA 0.48875ms

[TRT] Network CPU 45.52254ms CUDA 44.93750ms

[TRT] Post-Process CPU 0.03193ms CUDA 0.03177ms

[TRT] Total CPU 45.63248ms CUDA 45.45802ms

[TRT] ------------------------------------------------

[gstreamer] gstCamera -- stopping pipeline, transitioning to GST_STATE_NULL

[gstreamer] gstCamera -- pipeline stopped


Мы используем расширенный пример сценария, скрипт detect.py. Чтобы сделать снимок веб-камеры и классифицировать его: camera = jetson.utils.gstCamera(width, height, camera)

Модель работает достаточно быстро и дает нам те результаты и данные, которые нужно.

классификация изображения моделью на Jetson Nano 2GBклассификация изображения моделью на Jetson Nano 2GB

Ссылки:

https://github.com/tspannhw/minifi-jetson-nano

https://youtu.be/fIESu365Sb0

https://developer.nvidia.com/blog/ultimate-starter-ai-computer-jetson-nano-2gb-developer-kit/

Подробнее..

Перевод Утерянная, но не забытая история 3Dfx Interactive

02.10.2020 12:06:25 | Автор: admin
В Альфе любят киберспорт, наши команды участвуют в чемпионатах по StarCraft II, LoL, Hearthstone, FIFA 20, CS:GO и другим играм. Предлагаем вам в эту пятницу вспомнить историю компании 3Dfx, которая вложила существенный вклад в графику для ПК.



Компания 3Dfx, основанная в Сан-Хосе (Калифорния) в 1994 году тремя бывшими сотрудниками Silicon Graphics, начала с разработки оборудования для аркадных автоматов. Чипсет Voodoo первого поколения использовался в таких хитовых автоматах, как San Francisco Rush, ICE Home Run Derby и Wayne Gretzkys 3D Hockey. Но к ко второй половине 1996 года значительно снизились цены на память, заставив 3Dfx обратить своё внимание на потребительский рынок PC.

Графическое оборудование 3Dfx Voodoo состояло из дополнительной карты, выполнявшей только 3D-вычисления. Карте был необходим VGA-кабель, передававший данные с отдельной 2D-карты на Voodoo, которая затем подключалась к дисплею. Эти карты продавались множеством компаний. Orchid Technologies первой выпустила на рынок Orchid Righteous 3D за 299 долларов, это устройство было примечательным своими механическими реле, которые щёлкали при работе чипсета. За этой картой последовали Diamond Multimedia Monster 3D, Canopus Pure3D, Colormaster Voodoomania, Quantum3D Obsidian, Miro Hiscore, Skywell Magic3D и другие продукты.

Voodoo Graphics совершила революцию в графике для персональных компьютеров, почти за одно мгновение превратив множество продуктов в устаревшие, в том числе и огромный ассортимент карт только для 2D. Рынок 3D-оборудования в 1996 году благоприятствовал компании S3, занявшей примерно 50% рынка. Однако вскоре ситуация должна была измениться. По оценкам, на пике популярности Voodoo 80-85% рынка 3D-ускорителей владела компания 3Dfx.



Со временем основными конкурентами 3Dfx стали компании, уже выпускавшие на рынок оборудование для 2D-графики и намеревавшиеся создавать комбинированные карты, способные отображать 2D и 3D. Хоть эти продукты не дотягивали до качества изображения и производительности Voodoo, их дешевизна и простота использования привлекли многих OEM-производителей. Спрос был создан, а интерес у покупателей уже возник.

В то же время 3Dfx находилась в уникальном положении она не изготавливала графические карты сама, а продавала чипсеты сторонним OEM, производившим карты под своим брендом. Компания считала, что это проблема, и она попытается решить её в будущем, однако подробнее мы расскажем об этом ниже.

Свой ответ на выпуск комбинированных карт 3Dfx подготовила годом спустя, создав Voodoo Rush, объединившую на одной плате ускоритель Voodoo с чипом 2D-графики. Rush имела те же параметры, что и Voodoo, но из-за того, что ей приходилось делить шину с 2D-чипом, страдала производительность. 3Dfx пыталась решить эту проблему в новых версиях карты, добавив в них больше памяти и увеличив тактовые частоты, но попытка оказалась неудачной. Менее года спустя выпуск линейки Voodoo Rush был завершён.

Пиком относительно недолгой жизни 3Dfx стал 1998 год, как раз когда с ней пересеклась моя личная история. Тогда была выпущена очень успешная Voodoo2. Она изготавливалась по 350-нанометровому техпроцессу, получила более быстрое ядро и тактовую скорость памяти (90 МГц, Voodoo первого поколения имела 50 МГц). С ней не могла конкурировать ни одна другая карта, не говоря уже о тех случаях, когда в играх применяли проприетарный Glide API (в то время Direct3D и OpenGL ещё не рассматривались в качестве стандарта).



Также 3Dfx добавила в Voodoo2 второй блок текстурирования, позволявший отрисовывать за один проход две текстуры без снижения производительности. Чип снова стал исключительно 3D-ускорителем, и вложенные в продукт усилия нашли отзыв в сердцах геймеров.

Многие считают чипсеты Voodoo и Voodoo2 причиной зарождения компьютерного 3D-гейминга. Кое-кто рассматривает то время как золотой век PC-игр, в который появились такие проекты, как Quake, Quake 2, Need for Speed II: SE, Virtua Fighter 2, Resident Evil, Tomb Raider, Diablo II, Unreal и Rainbow Six. Все они эффективно использовали возможности Glide API.

Как красноречиво сказал Шеймус Янг, это было после каменного века DOS, но до появления четырёх всадников Апокалипсиса: багов, DRM, фиксированных графических режимов и консолизации игр, породивших настоящий хаос. Чтобы лучше погрузиться в эту тему, прочитайте нашу статью о лучших играх с 3Dfx Glide.



Также Voodoo2 был примечателен тем, что в нём появился SLI (Scan-Line Interleave) процесс, при котором две карты Voodoo 2 можно было подключить друг к другу, чтобы они работали одновременно и, теоретически, удваивали производительность обработки графики. SLI позволял использовать более высокие разрешения, до 1024 x 768, но проблемы с совместимостью и высокая цена, связанная с необходимостью покупки двух мощных карт, оставили эту функцию уделом фанатов и хардкорных геймеров.

Спустя много лет SLI получил второй шанс благодаря Nvidia. Теперь он известен под названием Scalable Link Interface, но идея в основе современной реализации осталась такой же, несмотря на то, что её технологии сильно отличаются от реализованных компанией 3Dfx.


Документальный фильм о 3Dfx Interactive 1997 года. В этом видео показаны первые успехи компании непосредственно перед выпуском очень успешной карты Voodoo2

" мы провели тесты с очень популярной игрой GL Quake, и оказалось, что она работает с частотой 120 кадров в секунду, что попросту глупо: никто не будет стремиться запускать игру с таким количеством кадров; однако это демонстрирует потенциал, доступный для разработчиков"

3Dfx вернулась к идее карты с комбинированным 2D/3D, реализованным в Voodoo Banshee, и даже попробовала предложить свою архитектуру для игровой консоли Sega Dreamcast, но в результате от неё отказались в пользу чипсета NEC. С тех пор дела компании пошли под уклон: 3Dfx решила приобрести за 141 миллион долларов производителя видеокарт STB Systems, стремясь изготавливать собственные видеокарты, а не служить OEM-поставщиком.

В сырой 3D-производительности Voodoo 2 не было равных, но конкуренция быстро нарастала. Давление со стороны ATI и Nvidia продолжало увеличиваться, и 3Dfx решила повысить свои прибыли, продавая платы самостоятельно, а не отдавать, как ранее, эту работу длинному списку партнёров. В этом смысле приобретение STB имело смысл, но это мероприятие оказалось огромным просчётом, потому что используемая компанией фабрика не могла конкурировать по качеству и стоимости изготовления с TSMC (производившей платы для Nvidia) и UMC (работавшей с ATI).

Многие из бывших партнёров 3Dfx наладили связи с Nvidia.



Первые карты серии 3Dfx Voodoo3 появились в 1999 году при поддержке массовой телевизионной и печатной рекламной кампании, новым логотипом (теперь со строчной d) и ярким дизайном коробок. Voodoo3 и следующие продукты компании перестали быть доступными партнёрам-производителям, что фактически превратило их в конкурентов, не имеющих иного выбора, кроме как покупать чипсеты у других компаний, например, у Nvidia.

На рынке появились различные модели с чипсетом 3Dfx Voodoo3, рассчитанные на несколько ценовых ниш. Летом того же года Nvidia нанесла ответный удар, выпустив GeForce 256, позиционировавшийся как первый в мире GPU (graphics processing unit).

Революция, которую за три года до этого начала 3Dfx, теперь оставляла её за бортом.



Последней попыткой 3Dfx стал графический процессор VSA-100, который должен был превратиться в фундамент следующего поколения карт компании. На рынок удалось вывести только две из них, Voodoo 4 4500 и Voodoo 5 5500.

Когда-то название 3dfx было синонимом сырой производительности, а теперь главной сильной стороной компании стало качество изображения с полноэкранным сглаживанием. В Voodoo 5 появилась технология T-buffer как альтернатива возможностям GeForce 256 по T&L (transformation and lighting): по сути, она брала несколько отрендеренных кадров и объединяла их в одно изображение. Так создавалась немного размытая картинка, которая при воспроизведении последовательности кадров сглаживала движение анимации.

Технология 3Dfx стала предшественницей множества современных способов улучшения изображения, например, сглаженных теней и отражений, motion blur, а также размытия глубины поля зрения. Однако этого было недостаточно для обеспечения финансовой стабильности.



Voodoo5 5000, которая должна была стать версией 5500 с уменьшенным в два раза объёмом ОЗУ, так и не выпустили. То же самое произошло и с Voodoo 5 6000, мощной картой с четырьмя процессорами VSA-100 и 128 МБ памяти. 3Dfx изготовила около тысячи прототипов для тестирования, но ни одна карта снова не была продана. Некоторые из этих легендарных предпроизводственных карт выжили, однако сегодня известно лишь о нескольких рабочих образцах. Они считаются одними из святых граалей игрового оборудования. Если вы найдёте желающего расстаться с такой картой, то будьте готовы заплатить несколько тысяч долларов.

В марте 2000 года 3Dfx решилась на покупку за 186 миллионов долларов владельца графических технологий GigaPixel, надеясь ускорить выпуск своей продукции, но оказалось, что уже слишком поздно.

Вскоре после выпуска на рынок в том же году первых моделей Voodoo4 кредиторы 3Dfx инициировали процедуру банкротства. Не имея особого выбора, в декабре 2000 года 3Dfx выбросила белый флаг и продала большинство своих активов Nvidia. Почти 13 лет спустя основатели 3Dfx записали интервью об истории компании для Музея компьютерной истории.

Если вы любитель ретро-гейминга, то подержанные карты на основе Voodoo по-прежнему можно приобрести в Интернете, например, на eBay. Они чуть дороже, чем можно было бы предположить (ностальгия стоит денег), но доступны любому.

Личные воспоминания


В выпуске журнала GamePro за декабрь 1995 года опубликовали статью о DigiPen ванкуверском колледже, обучающем программированию видеоигр. Новости об этом колледже прикладной компьютерной графики оказались как нельзя кстати мой преподаватель информатики только что дал нам задание, касающееся работы нашей мечты и того, как она могла быть связана с технологиями. Я сразу же понял, в чём моё предназначение.

Сколько себя помню, я любил видеоигры. В середине 80-х моя тётя владела магазином видеопроката. Пока Blockbuster не монополизировал эту отрасль, подобные магазины были во всех небольших городках и имели приличный выбор фильмов и, что более важно для детей игр Nintendo. Это ещё больше усилило мой интерес к видеоиграм.

К концу 90-х эта любовь сформировалась полностью, я стремился познакомиться со всеми популярными консолями. Ни одной недели не проходило без того, чтобы я не получал по почте хотя бы несколько последних выпусков игровых журналов. Я даже обводил даты выпуска и считал дни до их получения.


Так я, впечатлительный 13-летний подросток, находясь в компьютерном классе, наметил дальнейшее течение всей своей жизни. Я закончу школу, поступлю в DigiPen, выпущусь со степенью и начну реализовывать свою мечту о создании видеоигр.

Вероятно, так бы всё и произошло, если бы не вмешалось ещё одно моё увлечение персональный компьютер.

Первый компьютер у меня появился в 1998 году, и это в буквальном смысле изменило всю мою судьбу. Я по-прежнему был увлечён играми, но моё внимание мгновенно переключилось с консолей на PC, и мне не потребовалось много времени, чтобы осознать, что моему процессору AMD K6-2 CPU с набором инструкций 3DNow! требуется помощь по графической части.

Так я узнал о 3Dfx Interactive.
Подробнее..

Графические войны 1 лагающее пиксельное XX столетие

08.10.2020 00:10:19 | Автор: admin

50 лет истории видеокарт (1970-2020): Полная история видеокарт и их прародителей


Часть 1


Компьютерная графика. Услышав эти слова, мы представляем поражающие воображение спецэффекты из крупных блокбастеров, красивейшие модели персонажей из ААА-игр, и всё, что связано с визуальной красотой современных технологий. Но компьютерная графика, как и любой технологический аспект, развивалась не одно десятилетие, преодолев путь от отображения нескольких символов на монохромном дисплее до поражающих воображение пейзажей и героев, с каждым годом всё сложнее отличимых от реальности. Сегодня мы начнем рассказ о том, как начиналась история компьютерной графики, вспомним, как появился термин видеокарта и сокращение GPU, и какие технические рубежи год за годом преодолевали лидеры рынка, в стремлении покорения новой аудитории.

image

Предисловие эпохи. Зарождение компьютеров (1940-е/1950-е)


Эпоха компьютерных технологий у многих вызывает ассоциации с началом эпохи персональных компьютеров в начале 80-х, но на самом деле первые компьютеры появились гораздо раньше. Первые разработки таких машин начались еще до Второй Мировой войны, а прототипы, отдаленно напоминающие будущие ПК, увидели свет уже в 1947 году. Первым таким устройством стал IBM 610 экспериментальный компьютер, разработанный Джоном Ленцем из Уотсоновской лаборатории при Колумбийском университете. Он первым в истории получил гордое название Персонального автоматического компьютера (Personal Automatic Computer, PAC), хотя оно и было слегка преувеличенным машина стоила $55 тысяч, и было изготовлено всего 150 экземпляров.

Первые впечатляющие визуальные системы появлялись в те же годы. Уже в 1951 году IBM при участии General Electric и ряда военных подрядчиков разработала летный симулятор для нужд армии. В нем использовалась технология трехмерной виртуализации пилот, находившийся за тренажером, видел проекцию кабины и мог действовать так, как это происходило бы за штурвалом настоящего самолета. Позже графический прототип использовала компания Evans & Sutherland, создавшая полноценный тренажер для пилотов CT5, работающий на базе массива компьютеров DEC PDP-11. Только задумайтесь на дворе всё еще 50-е, а у нас уже тогда была трехмерная графика!

1971-1972. Magnavox Odyssey и PONG


Бум полупроводниковых технологий и производства микросхем полностью поменял расклад сил на рынке, прежде принадлежавшем громоздким аналоговым компьютерам, занимавшим целые залы. Отказавшись от вакуумных ламп и перфокарт, индустрия шагнула в эпоху развлечений для всей семьи, познакомив западный мир с домашними игровыми видеосистемами, прабабушками современных консолей.

Первопроходцем видеоигровых развлечений стало устройство под названием Odyssey Magnavox, первая официально выпущенная игровая система. У Одиссеи были диковинные по современным стандартам контроллеры, а вся графическая система выводила на экран телевизора только линию и две точки, которыми управляли игроки. Создатели устройства подошли к делу с фантазией, и в комплекте с консолью шли специальные цветные накладки на экран, способные раскрасить игровые миры нескольких проектов, идущих в комплекте с Odyssey. Всего для устройства было выпущено 28 игр, среди которых был простой на первый взгляд пинг-понг, вдохновивший энтузиастов из молодой компании Atari на выпуск игрового автомата Pong с идентичной игрой. Именно Pong стал началом магии игровых автоматов, которая, к слову, полностью захватила и Японию и западный мир к началу 80-х.

Несмотря на очевидную простоту, Magnavox Odyssey использовал настоящие картриджи правда, во многом лишь для эффекта. Никаких чипов памяти в них не было картриджи служили набором перемычек, волшебными образом превращающих одно расположение линии с точками в другое, тем самым меняя игру. До полноценного видеочипа примитивной приставке было далеко, но популярность Magnavox Odyssey показала однозначный интерес публики, и многие компании взялись за разработку своих собственных устройств, чувствуя потенциальную прибыль.

1976-1977. Fairchild Channel F и Atari 2600


Ждать первой серьезной схватки за новорожденный игровой рынок пришлось недолго. В 1975 году стремительно устаревающая Magnavox Odyssey исчезла с прилавков, а на её место за титул лучшей консоли нового поколения бились сразу два устройства Channel F от компании Fairchild и Atari VCS от той самой компании, что подарила миру Pong.

image

Несмотря на то, что разработка консолей шла практически одновременно, Atari не успевала и Fairchild первой выпустила своё устройство под названием Fairchild Video Entertainment System (VES).

Консоль от Fairchild появилась на полках магазинов в ноябре 1976 года, и стала настоящей кладезю технических преимуществ. Вместо невнятных контроллеров Odyssey появились удобные, бутафорские картриджи сменились на настоящие (внутри которых стояли ROM-чипы с данными игр), а внутри консоли был установлен динамик, воспроизводящий звуки и музыку из запущенной игры. Приставка умела отрисовывать изображение с использованием 8-цветовой палитры (в режиме черно-белой строки либо цветной) в разрешении 102х54 пикселя. Отдельно стоит заметить, что процессор Fairchild F8, установленный в системе VES, был разработан Робертом Нойсом, который в 1968 году основал небольшую, но перспективную фирму Intel.

Atari была на грани отчаяния проект Stella, основа будущей консоли, сильно отставал по темпам разработки, а рынок, как известно, ждать не будет. Множество вещей, казавшихся инновационными с выходом Fairchild VES, вот-вот должны были стать неотъемлемой чертой всех будущих консолей. Понимая, что на кон нужно ставить всё, основатель компании Atari Нолан Бушнелл подписывает соглашение с Warner Communications, продавая своё детище за $28 миллионов с условием, что консоль Atari выйдет на рынок в кратчайшие сроки.

Warner не подвели, и работа над приставкой закипела с новой силой. Для упрощения логики и удешевления производства к разработке привлекли знаменитого инженера Джея Майнера, который переработал чипы видеовывода и обработки звука TIA (Television Interface Adaptor) в единый элемент, что и стало последним штрихом перед готовностью консоли. Чтобы позлить Fairchild, маркетологи Atari назвали консоль VCS (Video Computer System), вынудив конкурента переименоваться в Channel F.

Но это не слишком помогло Channel F успешно конкурировать с новинкой хотя на этапе релиза консоли в 1977 году было готово всего 9 игр, разработчики достаточно быстро осознали наступление новой технологической эры, и принялись использовать мощности приставки на полную. Atari VSC (позже ставшая Atari 2600), была первой приставкой, в основе которой лежал комплексный чип, не только обрабатывающий видео и звуковую дорожку, но и команды, получаемые с джойстика. Скромные продажи, поначалу смутившие Warner, сменились феноменальным успехом после решения лицензировать аркаду Space Invaders авторства японской компании Taito. Картриджи, поначалу ограниченные 4 Кб памяти, со временем доросли до 32 Кб, а число игр исчислялось сотнями.

Секрет успеха Atari крылся в максимально упрощенной логике устройства, возможности разработчиков гибко программировать игры с использованием ресурсов 2600 (например, иметь возможности менять цвет спрайта во время отрисовки), а также внешняя притягательность и удобные контроллеры, названные джойстиками (от буквального joystick палка счастья). Поэтому, если вы не знали, откуда пришел этот термин, можете поблагодарить за него разработчиков Atari. Как и за главный образ всего ретро-гейминга забавного пришельца из Space Invaders.

После того, как успех Atari 2600 вышел за рамки всех прогнозируемых величин, Fairchild покинула рынок видеоигр, решив, что направление скоро сойдет на нет. О подобном решении, скорее всего, в компании жалеют до сих пор.

1981-1986. Эпоха IBM PC.


Несмотря на то, что уже в 1979 году компания Apple представила Apple II, навсегда изменивший образ доступного компьютера, понятие персональный компьютер появилось немногим позже, и принадлежало совсем иной компании. Монументальная IBM, за плечами которой были десятилетия работы с громоздкими мейнфреймами (с шумом бобин и мерцающими лампочками), неожиданно сделала шаг в сторону и создала рынок, которого прежде не существовало.
В 1981 году в продаже появился легендарный IBM PC, появление которого предваряла одна из лучших рекламных кампаний в истории маркетинга. Никого еще не увольняли за покупку IBM гласил тот самый слоган, навсегда вошедший в историю рекламы.

Однако не только слоганы и яркие рекламные вклейки сделали имя персональному компьютеру IBM. Именно для него впервые в истории была разработана сложная графическая система из двух видеоадаптеров Монохромного адаптера дисплея (MDA, Monochrome Display Adapter) и Цветного графического адаптера (CGA, Color Graphics Adapter).

MDA предназначался для набора текста с поддержкой 80 колонок и 25 строк на экране для набора ASCII символов при разрешении 80х20 пикселей. Адаптер использовал 4 Кб видеопамяти, и отображал зеленый текст на черном экране. В таком режиме было легко и удобно работать с командами, документами и другими повседневными задачами бизнес-сектора.
CGA, напротив, можно было назвать прорывным с точки зрения графических возможностей. Адаптер поддерживал 4-битную палитру в разрешении в разрешении 640х200 пикселей, располагал 16 Кб памяти, и лег в основу стандарта компьютерной графики для активно расширяющейся линейки компьютеров IBM PC.

Впрочем, у использования двух разных адаптеров видеовывода были серьезные недостатки. Масса возможных технических проблем, дороговизна устройств и ряд других ограничений подтолкнули энтузиастов к работе над универсальным решением графическим адаптером, способным работать в двух режимах одновременно. Первым таким продуктом на рынке стала Hercules Graphics Card (HGC), разработанная одноименной компанией Hercules в 1984 году.

image
Hercules Graphics Card (HGC)

По легенде основатель компании Hercules Ван Сиваннукул (Van Suwannukul) разработал систему специально для работы над своей докторской диссертацией на родном тайском языке. Стандартный MDA-адаптер IBM не отображал тайский шрифт корректно, что и побудило разработчика приступить к созданию HGC в 1982 году.

Поддержка разрешения 720х348 точек как для текста, так и для графики, а также возможность работы в режимах MDA и CGA, обеспечило адаптеру Hercules долгую жизнь. Наследие компании в виде универсальных стандартов видеовывода HGC и HGC+ использовалось разработчиками IBM-совместимых компьютеров, а позже и ряда других систем вплоть до конца 90-х. Однако мир не стоял на месте, и бурное развитие компьютерной отрасли (как и её графической части) привлекло множество других энтузиастов среди них были четверо мигрантов из Гонконга Хво Юн Хо (Kwak Yuan Ho), Ли Лау (Lee Lau), Френсис Лау (Francis Lau) и Бенни Лау (Benny Lau), основавшие Array Technology Inc, компанию, которую весь мир узнает как ATI Technologies Inc.

1986-1991. Первый бум рынка графических карт. Ранние успехи ATI


После выпуска IBM PC компания IBM недолго оставалась в авангарде развития компьютерных технологий. Уже в 1984 году Стив Джобс представил первый Macintosh с впечатляющим графическим интерфейсом, и для многих стало очевидно, что графические технологии вот-вот сделают настоящий скачок вперед. Но, несмотря на потерю лидерства в отрасли, IBM выгодно отличалась от Apple и других компаний-конкурентов своим видением направления. Философия открытых стандартов, которой придерживалась IBM, открыла двери производству любых совместимых устройств, что и привлекло в сферу многочисленные стартапы своего времени.

В их числе была и молодая компания ATI Technologies. В 1986 году гонконгские специалисты представили свой первый коммерческий продукт OEM Color Emulation Card.

image
Color Emulation Card

Расширив возможности стандартных монохромных контроллеров, инженеры ATI обеспечили вывод трех цветов шрифта на черном экране зеленого, янтарного и белого. Адаптер располагал 16 Кб памяти и зарекомендовал себя в составе компьютеров Commodore. За первый год продаж изделие принесло ATI более $10 миллионов.

Конечно же, это стало лишь первым шагом для ATI следом за расширенным графическим решением с 64 Кб видеопамяти и возможностью работы в трех режимах (MDA, CGA, EGA) на рынок вышла линейка ATI Wonder, с появлением которой прежние стандарты можно было записывать в архаизмы.

Звучит слишком смело? Судите сами адаптеры серии Wonder получили буфер в 256 Кб видеопамяти (в 4 раза больше!), а вместо четырехцветной палитры на экран выводилось 16 цветов при разрешении 640х350. При этом никаких ограничений при работе с различными форматами вывода не было ATI Wonder успешно эмулировала любой из ранних режимов (MDA, CGA, EGA), а, начиная со 2-ой серии, получила поддержку новейшего стандарта Extend EGA.

image
ATi Wonder

Кульминацией развития линейки в 1987 году стала знаменитая ATI EGA Wonder 800, выводившая 16-цветовую палитру уже VGA-формата в невероятно высоком разрешении 800х600. Адаптер продавался в формате более доступной VGA Improved Performance Card (VIP) с ограниченной поддержкой VGA-вывода.

Первый расцвет рынка видеокарт. Инновации ATI, начало конкурентной борьбы
Значительные успехи ATI в развитии коммерческих графических адаптеров привлекли внимание множества других компаний в период с 1986 по 1987 год были основаны и представили первые продукты на рынке адаптеров такие бренды, как Trident, SiS, Tamarack, Realtek, Oak Technology, LSI (G-2 Inc), Hualon, Cornerstone Imaging и Windbond. Помимо новых лиц в выходе на графический рынок заинтересовались и действующие представители Кремниевой долины такие компании, как AMD, Western Digital/Paradise Systems, Intergraph, Cirrus Logic, Texas Instruments, Gemini и Genoa каждая из них так или иначе представила первый графический продукт в том же промежутке времени.

В 1987 году ATI выходит на OEM-рынок уже в качестве компании-поставщика, выпуская серию продуктов Graphics Solution Plus. Эта линейка была рассчитана на работу с 8-битной шиной компьютеров IBM PC/XT на базе платформы Intel 8086/8088. Адаптеры GSP тоже поддерживали форматы вывода MDA, CGA и EGA, но с оригинальным переключением между ними на самой плате. Устройство прекрасно приняли на рынке, и даже схожая модель от Paradise Systems с 256 Кб видеопамяти (у GSP было всего 64 Кб) не помешала Ati пополнить портфолио новым успешным продуктом.

Все следующие годы канадская компания ATI Technologies Inc. оставалась на пике графических инноваций, постоянно опережая конкурентов. Хорошо известная тогда линейка адаптеров Wonder первой на рынке перешла на 16-битный цвет; получила поддержку EVGA (в адаптерах Wonder 480 и Wonder 800+) и SVGA (в Wonder 16). В 1989 году ATI снизила цены на линейку Wonder 16 и добавила разъем VESA для возможности соединять друг с другом два адаптера можно сказать это были первые фантазии на тему связок из нескольких устройств, которые появятся на рынке гораздо позже.

Из-за разрастания рынка с бесчисленным числом форматов и производителей требовалась специальная организация, способная урегулировать их и разработать ключевые стандарты для игроков рынка. В 1988 году усилиями шести ключевых производителей была основана VESA (Video Electronics Standard Association, Ассоциация стандартов видеоэлектроники), взявшая на себя централизацию стандартов и форматов разрешений, а также цветовой палитры графических адаптеров. Первым форматом стал SVGA (800х600 точек), который уже использовался в картах Ati Wonder 800. В дальнейшем их становилось больше, а некоторые (включая HGC и HGC+) использовались на протяжении десятилетий.

image

Технологическое лидерство ATi укрепляла и на заре 90-х. В 1991 году в продажу вышла Wonder XL первый графический адаптер с поддержкой 32 тысяч цветов и поддержкой разрешения 800х600 при частоте обновления в 60 Гц. Подобного удалось добиться благодаря использованию конвертера Sierra RAMDAC. Помимо этого, Wonder XL стала первым адаптером с 1 Мб видеопамяти на борту.

В мае того же года ATI представила Mach8 первый продукт из новой линейки Mach для работы с обработкой простых 2D-операций например, отрисовки линий, заполнения цветом и битмаппинга. Mach8 был доступен для приобретения как в виде чипа (для последующей интеграции например, в бизнес-системы OEM-формата), так и в виде полноценной платы. Сейчас многим покажется странным выпуск отдельного адаптера для таких вещей, но 30 лет назад многие специальные вычисления всё еще лежали на плечах центрального процессора, тогда как графические адаптеры предназначалась для узкого круга задач.

Впрочем, такой уклад вещей сохранялся недолго следом за интересной VGA Stereo F/X, симбиозом графического адаптера и платы Sound Blaster для эмуляции кодека в формате моно налету, лидер индустрии представил продукт для работы как с двухмерной, так и с трехмерной графикой VGA Wonder GT. Объединив возможности Mach8 и Wonder Ati смогли первыми решить проблему необходимости дополнительного адаптера для работы с разными типами задач. Значительному успеху новинок поспособствовал выход популярной ОС Windows 3.0, в которой впервые ставили акценты на широкий круг задач в работе с 2D-графикой. Wonder GT пользовалась спросом и у системных интеграторов, что благотворно сказалось на прибылях компании в 1991 году оборот ATI превысил $100 млн. Будущее обещало быть светлым, но конкуренция на рынке никогда не ослабевала лидеров ожидали новые испытания.

1992-1995. Разработка OpenGL. Второй бум рынка графических карт. Новые рубежи в 2D и 3D
В январе 1992 года, компания Silicon Graphics Inc представила первый мультиплатформенный программный интерфейс OpenGL 1.0, поддерживающий работу как с 2D, так и с 3D-графикой.

image

В основу будущего открытого стандарта легла проприетарная библиотека IRIS GL (Integrated Raster Imaging System Graphical Library, Интегрированная системная библиотека обработки растровой графики). Понимая, что в скором времени множество компаний представят на рынке свои библиотеки подобного рода, в SGI приняли решение сделать OpenGL открытым стандартом, совместимым с любыми платформами на рынке. Популярность такого подхода было трудно переоценить на OpenGL обратил внимание весь рынок.

Изначально Silicon Graphics нацеливалась на профессиональный рынок UNIX-систем, планируя определённые задачи для будущей открытой библиотеки, но благодаря доступности для разработчиков и энтузиастов OpenGL быстро занял место на развивающемся рынке трехмерных игр.

Однако не все крупные игроки рынка приветствовали такой подход SGI. Примерно в то же время компания Microsoft разрабатывала собственную программную библиотеку Direct3D, и совсем не спешила интегрировать поддержку OpenGL в операционную систему Windows.

image

Direct3D открыто раскритиковал и знаменитый автор Doom Джон Кармак, собственноручно портировавший Quake на OpenGL для Windows, подчеркнув преимущества простого и понятного кода открытой библиотеки на фоне сложного и мусорного варианта Microsoft.

image
Джон Кармак

Но позиция Microsoft осталась неизменной, и после выхода Windows 95 компания отказалась лицензировать MCD-драйвер OpenGL, благодаря которому пользователь мог самостоятельно решить, через какую библиотеку запускать приложение или новую игру. В SGI нашли лазейку, выпустив драйвер в формате установщика (ICD, Installable Client Driver), который помимо растеризации OpenGL получил поддержку обработки эффектов освещения.

Ударный рост популярности OpenGL привел к тому, что решение SGI стало популярным и в сегменте рабочих станций, что вынудило Microsoft выделить все возможные ресурсы на создание своей проприетарной библиотеки в кратчайшие сроки. Основу для будущего API предоставила купленная в феврале 1995 года студия RenderMorphics, чья программная библиотека Reality Lab и сформировала основные принципы работы Direct3D.

Второе рождение рынка видеокарт. Волна слияний и поглощений


Но вернемся немного в прошлое. В 1993 году рынок видеокарт переживал второе рождение, и в поле зрения публики попало множество новых перспективных компаний. Одной из них стала NVidia, основанная Дженсеном Хуангом, Кёртисом Прэмом и Крисом Малаховски в январе 1993 года. Хуанг, успевший поработать программным инженером в LSI, давно вынашивал идею создания компании по производству графических адаптеров, а его коллеги из Sun Microsystems как раз успели поработать над графической архитектурой GX. Объединив усилия и собрав 40 тысяч долларов, трое энтузиастов дали начало компании, которой было суждено сыграть ключевую роль в индустрии.

image
Дженсен Хуанг

Впрочем, в те годы заглядывать в будущее никто не решался рынок стремительно менялся, новые проприетарные API и технологии появлялись чуть ли не каждый месяц, и было очевидно, что в бурном круговороте конкуренции выживут далеко не все. Многие из компаний, вступивших в гонку графических вооружений к концу 80-х, были вынуждены объявить о банкростве среди них оказались Tamerack, Gemini Technology, Genoa Systems и Hualon, тогда как Headland Technology была выкуплена SPEA, а Acer, Motorola и Acumos стали собственностью Cirrus Logic.

Как вы уже могли догадаться, особняком в этом скоплении слияний и приобретений стояла ATI. Канадцы продолжали усердно трудиться и выпускать инновационные продукты, несмотря ни на что пусть это и стало значительно сложнее.
В ноябре 1993 года ATI представила карту видеозахвата VideoIt! в основе которой лежал чип-декодер 68890, способный записывать видеосигнал в разрешении 320х240 при 15 кадрах в секунду или 160х120 при 30 кадрах в секунду. Благодаря интеграции чипа Intel i750Pd VCP владелец новинки мог проводить компрессию-декомпрессию видеосигнала в реальном времени, что было особенно полезно при работе с большими объемами данных. VideoIt! первую на рынке научили использовать центральную шину для общения с графическим ускорителем, и никаких кабелей и коннекторов, как прежде, уже не требовалось.

Проблемы ATI и успехи S3 Graphics


Для ATI 1994 год стал настоящим испытанием из-за серьезной конкуренции компания понесла убытки в размере $4,7 миллиона. Главной причиной неприятностей канадских разработчиков стали успехи компании S3 Graphics. Графический ускоритель S3 Vision 968 и адаптер Trio64 обеспечили американской компании-разработчику дюжину крупных ОЕМ-контрактов с такими лидерами рынка, как Dell, HP и Compaq. В чем была причина такой популярности? Невиданный ранее уровень унификации графический чип Trio64 собрал под одной крышкой цифро-аналоговый преобразователь (DAC), синтезатор частот и графический контроллер. Новинка от S3 использовала объединенный кадровый буфер и поддерживала аппаратное наложение видео (реализованное путем выделения части видеопамяти в процессе рендеринга). Масса достоинств и отсутствие явных недостатков чипа Trio64 и его 32-битного собрата Trio32 привели к появлению множества вариантов партнерских исполнений плат на их основе. Свои решения предлагали Diamond, ELSA, Sparkle, STB, Orchid, Hercules и Number Nine. Вариации разнились от базовых адаптеров на базе VirGe за $169, до сверхмощной Diamond Stealth64 с 4 Мб видеопамяти за $569.

В марте 1995 года ATI вернулась в большую игру с набором инноваций, представив Mach64 первый на рынке 64-битный графический ускоритель, а также первый, способный работать в системах на базе PC и Mac. Наряду с популярной Trio 958 Mach64 обеспечивал возможность аппаратного ускорения видео. Mach64 открыл для ATI выход на профессиональный рынок первыми решениями канадцев в данном секторе стали ускорители 3D Pro Turbo и 3DProTurbo+PC2TV. Новинки предлагались по цене в $899 за целых 4 Мб видеопамяти.

Еще одним важным новичком на рынке графических ускорителей стал технологический стартап 3Dlabs. Приоритетным направлением для молодой компании был выпуск высококлассных графических ускорителей для профессионального рынка Fujitsu Sapphire2SX с 4 Мб видеопамяти предлагалась по цене от $1600, а ELSA Gloria 8 с 8 Мб памяти на борту стоила немыслимые для тех лет $2600. Пытались 3Dlabs выйти и на рынок массовой игровой графики с Gaming Glint 300SX, но высокая цена и всего 1 Мб видеопамяти не принес популярности адаптеру.

Свои продукты на потребительском рынке представляли и другие компании. Trident, ОEM-поставщик графических решений для 2D-задач, представил чип 9280, обладавший всеми преимуществами Trio64 по доступной цене от $170 до $200. Тогда же в продажу вышли Weiteks Power Player 9130 и Alliance Semiconductors ProMotion 6410 обеспечившие прекрасную плавность при воспроизведении видео.

NV1 Дебют NVidia и проблемные полигоны


В мае 1995 года к новичкам присоединилась и NVIDIA, представив свой первый графический ускоритель с символическим названием NV1. Продукт первым на коммерческом рынке объединил возможности 3D-рендеринга, аппаратного ускорения видео и графического интерфейса. Сдержанный коммерческий успех никак не смутил молодую компанию Дженсен Хуанг с коллегами прекрасно понимали, что на рынке, где новые решения представляют каждый месяц, выстрелить будет очень непросто. Но прибыли с продажи NV1 оказалось достаточно, чтобы удержать компанию на плаву и дать стимул продолжать работу.

image
Diamond EDGE 3D 2120 (NV1)

Производством чипов на базе 500 нм техпроцесса заведовала компания ST Microelectronics, но к несчастью для Nvidia всего через несколько месяцев после появления на рынке партнерских решений на основе NV1 (например, Diamond Edge 3D) Microsoft представила первую версию долгожданного графического API DirectX 1.0. Наконец-то! воскликнули геймеры со всего мира, но производители графических ускорителей такого энтузиазма не разделяли.

Главной особенностью работы DirectX стали полигоны треугольной формы. Многие ошибочно полагают, что пресловутые треугольники были всегда, но на самом деле это заблуждение. Инженеры Nvidia закладывали в свой первый продукт квадратичный маппинг текстур (вместо треугольников-полигонов были квадраты), из-за чего приложения и первые игры с поддержкой DirectX вызвали массу проблем совместимости у владельцев NV1. Для решения проблемы Nvidia включили в драйвер обработчик для перевода квадратной разметки текстур в треугольную, но производительность в таком формате оставляла желать лучшего.

Большинство игр c поддержкой квадратичного маппинга текстур были портированы с приставки Sega Saturn. В Nvidia сочли эти проекты настолько важными, что разместили на 4 Мб модели NV1 два порта новой консоли, подключенные к карте через ленточные разъемы. На момент выхода в продажу (в сентябре 1995 года) первый продукт Nvidia обошелся покупателям в $450.

Большинство производителей графических ускорителей к моменту запуска API от Microsoft сильно зависели от проприентарных решений других компаний когда разработчики компании Билла Гейтса только начинали работу над собственной графической библиотекой, на рынке уже присутствовало множество API, таких как S3d (S3), Matrox Simple Interface, Creative Graphics Library, C Interface (ATI) и SGL (PowerVR), а позже в их число вошли NVLIB (Nvidia), RRedline (Rendition) и знаменитый Glide. Такое разнообразие сильно усложняло жизнь разработчикам нового железа, так как API были несовместимы друг с другом, а разные игры поддерживали разные библиотеки. Выход DirectX поставил крест на всех сторонних решениях, ведь использование других проприентарных API в играх для Windows попросту не имело смысла.

Но нельзя сказать, что новинка от Microsoft была лишена серьезных недостатков. После представленного DirectX SDK у многих производителей графических ускорителей исчезла возможность аппаратно управлять ресурсами видеокарт при воспроизведении цифрового видео. Многочисленные проблемы с драйверами на недавно вышедшей Windows 95 возмущали пользователей, привыкших к стабильной работе ОС Windows 3.1. Со временем все проблемы были решены, но главная битва за рынок ожидала впереди взявшая паузу ATI готовилась покорять вселенную трехмерных игр с новой линейкой 3D Rage.

ATI Rage Трехмерная ярость


Демонстрация нового графического ускорителя прошла в рамках лос-анджелесской выставки E3 1995 года. Инженеры ATI объединили преимущества чипа Mach 64 (и его выдающихся возможностей работы с 2D-графикой) с новым чипом для обработки 3D, взяв максимум от предыдущих разработок. Первый 3D-ускоритель ATI 3D Rage (известный также как Mach 64 GT) вышел на рынок в ноябре 1995 года.

image
ATI 3D Rage

Как и в случае с Nvidia, инженерам пришлось столкнуться с массой проблем поздние ревизии DirectX 1.0 вызывали многочисленные проблемы, связанные с отсутствием глубокого буфера. Карта располагала всего 2 Мб видеопамяти EDO RAM, поэтому 3D-приложения и игры запускались в разрешении не более 640х480 при 16-битном цвете или 400х300 при 32-битном, тогда как в 2D-режиме разрешение экрана было значительно выше до 1280х1024. Попытки запустить игру в режиме 32-битного цвета с разрешением 640х480 обычно заканчивались цветовыми артефактами на экране, да и игровую производительность 3D Rage нельзя было назвать выдающейся. Единственным бесспорным преимуществом новинки была возможность воспроизводить видеофайлы в формате MPEG в полноэкранном режиме.

В ATI провели работу над ошибками и переработали чип, выпустив Rage II в сентябре 1996 года. Исправив аппаратные недочеты и добавив поддержку кодека MPEG2, инженеры по какой-то причине не подумали о необходимости увеличить объем памяти первые модели всё еще имели на борту смешные 2 Мб видеопамяти, что неизбежно било по производительности при обработке геометрии и перспективы. Недочет был исправлен в более поздних ревизиях адаптера например, в Rage II+DVD и 3D Xpression+ буфер памяти вырос до 8 Мб.

Но война за 3D-рынок только начиналась, ведь целых три новых компании готовили свои продукты для новейших игр Rendition, VideoLogic и 3dfx Interactive. Именно последней удалось в кратчайшие сроки представить графический чип, значительно опередивший всех конкурентов и начавший новую эру в 3D-графике 3Dfx Voodoo Graphics.

1996-1999. Эпоха 3Dfx. Величайший графический стартап в истории. Последний этап большой конкуренции за рынок


Невероятная история 3Dfx стала хрестоматийным воплощением стартапа, символизирующего как невероятный успех и головокружительные прибыли, так и некомпетентность самоуверенного руководства, и как итог крах и забвение. Но печальный финал и горький опыт не в силах отрицать очевидного 3Dfx в одиночку сотворила графическую революцию, застав врасплох многочисленных конкурентов, и задав новую, феноменально высокую планку производительности. Ни до, ни после этого невероятного периода в истории развития видеокарт мы не видели ничего, даже отдаленно похожего на сумасшедший взлет 3Dfx во второй половине девяностых.

image

3Dfx Voodoo Graphics была графическим адаптером, нацеленным исключительно на работу с 3D-графикой. Предполагалось, что покупатель новинки будет использовать для работы с двухмерными нагрузками другую плату, подключая её к Voodoo через второй VGA-разъем.
Такой подход не смутил многочисленных энтузиастов, и инновационное решение сразу же привлекло многих производителей-партнеров, выпустивших собственные варианты Voodoo.

Одной из интересных карт на базе первого чипа 3Dfx была Orchid Righteous 3D от Orchid Technologies. Фирменным отличием адаптера за $299 было наличие механических реле, издающих характерные щелчки при запуске 3D-приложений или игр.

image
Orchid Righteous 3D

В поздних ревизиях эти реле заменили на твердотельные компоненты, и прежний шарм был утрачен. Вместе с Orchid свои варианты новейшего ускорителя представили и Diamond Multimedia (Monster 3D), Colormaster (Voodoo Mania), Canopus (Pure3D и Quantum3D), Miro (Hiscore), Skywell (Magic3D), и самая пафосная в ряду названий 2theMAX Fantasy FX Power 3D. Раньше видеокарты называть не стеснялись!

Причины подобного ажиотажа вокруг новинки были очевидны при всех возможных недостатках Voodoo Graphics обладала невероятной производительностью, и её появление сразу же перевело в разряд устаревших множество других моделей особенно тех, что могли работать только с 2D-графикой. Несмотря на то, что в 1996 году более половины рынка 3D-ускорителей принадлежало компании S3, 3Dfx ударными темпами завоевывала миллионы фанатов и уже к концу 1997 года компании принадлежало 85% рынка. Это был феноменальный успех.

Конкуренты 3Dfx. Rendition и VideoLogic


Громкие успехи вчерашнего новичка не вычеркнули из игры конкурентов, о которых мы упоминали ранее VideoLogic и Rendition. VideoLogic создала технологию отложенного мозаичного рендеринга (TBRD), благодаря которой пропадала необходимость предварительной Z-буферизации кадра. На финальной стадии рендеринга вычищались скрытые пиксели, а обработка геометрии началась только после того, как будут наложены текстуры, тени и освещение. Технология TBRD работала по принципу разбития кадра на прямоугольные ячейки, рендеринг полигонов в которых происходил независимо друг от друга. При этом полигоны, расположенные за пределами видимой области кадра, отсеивались, а рендеринг остальных начинался только после обсчета общего числа пикселей. Такой подход позволял сэкономить массу вычислительных ресурсов на этапе отрисовки кадра, существенно повышая общую производительность.

Компания вывела на рынок три поколения графических чипов производства NEC и ST Micro. Первое поколение было эксклюзивным продуктом в составе компьютеров Compaq Presario под названием Midas 3 (Модели Midas 1 и 2 были прототипами, и использовались в аркадных автоматах). Вышедшие позже PSX1 и PSX2 были ориентированы на ОЕМ-рынок.
Чипы второго поколения легли в основу приставки Sega Dreamcast японской платформы, сыгравшей свою роль в печальной судьбе 3Dfx. При этом VideoLogic не успели выйти на потребительский рынок графических карт к моменту премьеры их модель Neon 250 морально устарела, проиграв всем бюджетным решениям, и это неудивительно, ведь до прилавков новинка добралась лишь в 1999 году.

Компания Rendition тоже успела отличиться инновациями в графике, и создала первый графический чип Vrit 1000 с возможностью работы не только с двухмерной, но и с 3D-графикой одновременно благодаря процессорному ядру на архитектуре RISC, а также использованию пиксельных конвейеров. Процессор отвечал за обработку полигонов и механизма работы конвейеров рендеринга.

Подобный подход к построению и обработке изображения заинтересовал Microsoft в компании использовали Vrit 1000 во время разработки DirectX, но у ускорителя были свои архитектурные недостатки. Например, он работал только на материнских платах с поддержкой технологии прямого доступа к памяти (Direct memory access, DMA) по ней передавались данные через шину PCI. Благодаря дешевизне и массе программных преимуществ, включающих сглаживание и аппаратное ускорение в Quake от id Software, карта пользовалась популярностью вплоть до выхода Voodoo Graphics. Новинка от 3Dfx оказалась более чем в 2 раза производительнее, а технология DMA быстро потеряла популярность у разработчиков игр, отправив некогда перспективную V1000 на свалку истории.

ATI Гонка за Voodoo c Rage II и Rage Pro


Тем временем ATI не прекращала работу над новыми ревизиями Rage. Следом за Rage II в марте 1997 года была представлена Rage Pro первая AGP-видеокарта от сформированного накануне подразделения ATI 3D Engineering Group.

Rage Pro с 4 Мб видеопамяти на борту практически сравнялась с легендарной Voodoo по производительности, а вариант на AGP-шине с 8 Мб видеопамяти даже превосходил знаменитого конкурента в ряде игр. В Pro-версии карты инженеры ATI доработали коррекцию перспективы и обработку текстур, а также добавили поддержку аппаратного сглаживания и трилинейной фильтрации благодаря увеличенному кэшу в 4 Кб. Чтобы снизить зависимость производительности адаптера от центрального процессора в компьютере, на плате был распаян отдельный чип для обработки операций с плавающей запятой. Любители современных мультимедиа оценили поддержку аппаратного ускорения при воспроизведении видео с DVD-носителя.

Выход на рынок Rage Pro позволил ATI поправить дела с финансами и увеличить чистую прибыль до $47.7 миллионов при общем обороте более $600 млн. По большей части финансовый успех продукту принесли OEM-контракты, реализация графического чипа на материнских платах и выпуск мобильного варианта. Карта, часто фигурировавшая в продаже в вариантах Xpert@Work и Xpert@Play, имела массу конфигураций от 2 до 16 Мб видеопамяти для различных нужд и сегментов рынка.

Важным стратегическим плюсом для штата ATI стало приобретение за $3 миллиона компании Tseng Labs, в которой работали над технологиями интеграции чипов RAMDAC на борт графических карт. Компания разрабатывала собственный графический адаптер, но столкнулась с техническими проблемами, что и привело к встречному предложению от канадских лидеров рынка. Вместе с интеллектуальной собственностью в штат ATI перешло 40 инженеров высшего класса, сразу же приступивших к работе.

Новые конкуренты. Permedia и RIVA 128


Профессионалы из 3DLabs не оставляли надежды захватить интересы геймеров. Для этого была выпущена серия продуктов Permedia, произведенная по 350 нм техпроцессу Texas Instruments. Оригинальная Permedia обладала относительно низкой производительностью, что было исправлено в Permedia NT. Новая карта обладала отдельным чипом Delta для обработки полигонов и алгоритма сглаживания, но при этом стоила дорого целых $600. Когда к концу 1997 года была готова обновленная линейка Permedia 2, конкурировать с игровыми продуктами она уже не могла 3DLabs сменили маркетинг, и представили новинки как профессиональные карты для работы с 2D-приложениями и ограниченной поддержкой 3D.

Всего через месяц после последних премьер 3DLabs и ATI на рынок вернулась Nvidia, представив свою RIVA 128, готовую к жесткой конкуренции кошельки геймеров. Доступная цена и отличная производительность в Direct3D обеспечили новинке всеобщее признание и коммерческий успех, позволив компании заключить контракт с TSMC на производство чипов обновленной RIVA 128ZX. К концу 1997 года две успешные видеокарты принесли Дженсену Хуангу 24% рынка практически всё, что не успела подмять под себя всемогущая 3Dfx.

Забавно, что пути Nvidia и лидера рынка начали пересекаться уже тогда, когда Sega, готовясь к разработке новой консоли Dreamcast, заключила несколько предварительных контрактов с производителями графических решений. Среди них была и Nvidia (с проектом чипа NV2), и 3Dfx (с прототипом Blackbelt). Руководство 3Dfx было полностью уверено в получении контракта, но, к своему удивлению, получило отказ японцы предпочли не рисковать, и обратились за разработкой в NEC, ранее зарекомендовавшей себя сотрудничеством с Nintendo. Представители 3Dfx подали на Sega в суд, обвиняя компанию в намерениях присвоить себе проприетарные разработки в ходе работы над прототипом долгие судебные тяжбы закончились в 1998 году выплатой компенсации в размере $10.5 миллиона в пользу американской компании.

Quantum3D и первое применение SLI


А пока они продолжались, 3Dfx успела обзавестись дочерней компанией. Ей стала Quantum3D, получившая сразу несколько выгодных контрактов на разработку профессиональных графических решений самого высокого уровня от SGI и Gemini Technology. В основе будущих продуктов лежала инновационная разработка 3Dfx технология SLI (Scan-Line Interleave).

Технология предполагала возможность использования двух графических чипов (каждый из которых имеет собственный контроллер памяти и буфер) в рамках одной платы или соединение двух отдельных плат с помощью специального ленточного кабеля. Соединенные подобным образом карты (в формате двухчиповой платы или двух отдельных) делили обработку изображения напополам. Технология SLI обеспечивала возможность увеличения разрешения экрана с 800х600 до 1024х768 точек, но подобная роскошь обходилась недешево: Obsidian Pro 100DB-4440 (две спаренные карты с чипами Amethyst) предлагалась по цене в $2500, тогда как двухчиповая плата 100SB-4440/4440V обошлась бы покупателю в $1895.

image
Obsidian Pro 100DB-4440

Специализированные решения, впрочем, никак не отвлекали лидеров рынка от разработки новых карт серии Voodoo.

3Dfx Voodoo Rush. Спешка, бюджет и разочарование


Летом 1997 года 3Dfx вышла на биржу, и попыталась закрепить ошеломительный успех Voodoo, выпустив Voodoo Rush карту, работающую с 2D и 3D-графикой одновременно, и уже не требующей второго адаптера. Изначально в её основе должен был лежать новый чип Rampage, но из-за технических проблем его релиз был отложен, и в основе Rush использовался урезанный вариант оригинальной Voodoo. Чтобы помирить два вида графических нагрузок, на плате располагалось два чипа SST-1 отвечал за обработку 3D-игр, использующих API Glide, тогда как более посредственный чип производства Alliance или Macronix отвечал за другие 2D и 3D-приложения и игры. Из-за рассинхронизации чипы работали на разных частотах (50 и 72 МГц), вызывая случайные артефакты на экране и недоумение владельцев.

image
Voodoo Rush

Помимо этого, Voodoo Rush имела общий буфер видеопамяти, который одновременно использовали оба чипа. От этого пострадало максимальное разрешение экрана оно составляло лишь половину от 1024х768 (512х384 точки), а низкие частоты RAMDAC не позволили обеспечить желанные 60 Гц в обновлении экрана.

Rendition V2100 и V2200. Уход с рынка


На фоне больших проблем 3Dfx компания Rendition предприняла новую попытку приятно удивить массовый рынок Rendition V2100 и V2200. Новинки вышли на рынок незадолго после премьеры Voodoo Rush, но, к разочарованию энтузиастов, не смогли потягаться даже с урезанной Voodoo. Невостребованные видеокарты вынудили Rendition первой из многих покинуть рынок графических карт.

В результате многие проекты компании остались на стадии прототипов одним из них была доработанная версия V2100/V2200 с геометрическим процессором Fujitsu FXG-1 (в формате двухчипового исполнения). Впрочем, существовал и одночиповый вариант с FXG-1, вошедший в историю как продукт с самым изысканным названием в истории Hercules Thrilled Conspiracy. Вместе с другими разработками (например, чипами V3300 и 4400E) компания была продана Micron за $93 млн в сентябре 1998 года.

Агрессивная экономия. Битва за бюджетный сегмент


Постоянный рост производительности и появление новых технических преимуществ привели к тому, что производителям второго эшелона стало крайне сложно конкурировать с решениями от ATI, Nvidia и 3Dfx, занявших не только нишу энтузиастов и профессионалов, но и народный сегмент рынка адаптеров ценой до $200.

Matrox представила свою графическую карту Mistique по вкусной цене от $120 до $150, но из-за отсутствия поддержки OpenGL новинка сразу же попала в категорию аутсайдеров. S3 начала продажи новой линейки ViRGE, с присутствием максимально широкого модельного ряда свет увидела и мобильная версия адаптера с динамическим управлением питанием (ViGRE/MX), и специальная версия основного ViRGE с поддержкой ТВ-выхода, разъема S-Video и воспроизведением DVD (ViRGE/GX2). Два основных адаптера, призванных сразиться за бюджетный рынок (модели ViRGE, VIRGE DX и ViRGE GX) стоили на момент выхода от $120 за младшую до $200 за старшую.

Трудно представить, но категория ультра-бюджетных решений тоже была местом жесточайшей конкуренции. За кошельки пользователей, готовых заплатить за графический ускоритель не более $99, тягались Laguna3D от CirrusLogic, модели 9750/9850 от Trident, а также SiS 6326. Все эти карты были компромиссными решениями с минимумом возможностей.

После выхода Laguna3D компания CirrusLogic покинула рынок низкое качество 3D-графики, посредственная (и непостоянная) производительность, а также куда более интересные конкуренты (та же ViRGE, стоившая чуть дороже) не оставляли ветеранам индустрии шанса на выживание. Единственными источниками дохода для CirrusLogic оставались продажи допотопных 16-битных графических адаптеров за $50, интересных лишь самым экономным клиентам.

Trident тоже видела потенциал в сегменте рынка ниже среднего в мае 1997 года была выпущена 3D Image 9750, а немногим позже вышла 9850 с поддержкой двухканальной AGP-шины. Исправив многие недочеты 9750 с PCI-шиной, 9850 страдала от посредственной обработки текстур, и не получила лестных отзывов.
Среди карт, продаваемых за бесценок, наиболее успешной была SiS 6326, представленная в июне 1997 года по цене до $50. Обладая хорошим качеством изображения и относительно высокой производительностью, 6326 разошлась тиражом в 8 миллионов устройств в 1998 году. Но на исходе 90-х мир энтузиастов всколыхнул стартап, полный серьезных обещаний им была компания BitBoys.

BitBoys Дерзкие ребята в мире сказочного 3D


BitBoys заявила о себе в июне 1997 года анонсом интригующего проекта Pyramid3D. Революционный графический чип разрабатывался совместными усилиями самого стартапа с компаниями Silicon VLSI Solutions Oy и TriTech. К сожалению для энтузиастов, кроме громких слов на презентациях Pyramid3D так нигде и не появился, а компания TriTech была осуждена за присвоение чужого патента на аудиочип, из-за чего позже обанкротилась и закрылась.
Но BitBoys не прекращали работу, и анонсировали второй проект под названием Glaze3D. Невероятный реализм, лучшая производительность в своем классе и масса новейших технологий были показаны публике на SIGGRAPH99. Рабочий прототип графического адаптера использовал шину RAMBUS и 9 Мб видеопамяти DRAM производства Infineon.
Увы, как и в первый раз, аппаратные проблемы и переносы привели к тому, что ожидаемой революции вновь не наступило.

image
Рекламный скриншот, призванный подчеркнуть реализм, которого должны были достичь карты Glaze3D

Намного позже проект был вновь переименован Axe, а полем для конкуренции выбрали игры с поддержкой DirectX 8.1 прототип даже успел получить официальное название Avalanche3D и обещал взорвать рынок в 2001, но не случилось. На последнем этапе разработки Axe сменился на Hammer, которому прочили поддержку DirectX 9.0. История самого пафосного долгостроя в истории графики закончилась банкротством Infineon, после которого BitBoys отказались от проекта мечты и перешли в сегмент мобильной графики. А теперь вновь вернемся в уютный 1998.

Intel i740 Большая неудача больших профессионалов


Intel выпустила свою первую (и пока что последнюю) графическую карту для 3D-игр под названием Intel i740 в январе 1998 года. У проекта была интересная история, ведь корнями он уходил в проект программы симуляции космических полетов, которую NASA совместно с General Electric создавала для знаменитой серии лунных миссий Аполлон. Позже наработки были проданы Martin Marietta компании, позже вошедшей в состав оборонного гиганта Lockheed (так и появился тот самый Lockheed-Martin). Lockheed-Martin на базе проекта создал линейку профессиональных устройств Read3D, состоящую из двух моделей графических адаптеров Real3D/100 и Real3D/Pro-1000. Иронично, но несмотря на военное происхождение устройств одним из применений выдающихся технологий стал аркадный автомат Sega, использующий две платы Pro-1000.

image

Немного позднее Lockheed-Martin объявил о начале Project Aurora коллаборации с Intel и Chips and Technologies. За месяц до выхода i740 Intel приобрела 20% проекта Real3D, а к июлю 1997 года полностью выкупила Chips and Technologies.
Ключевой особенностью проекта Real3D было использование двух отдельных чипов для обработки текстур и графики Intel объединила их при создании i740. Адаптер использовал оригинальный подход к буферизации данных через шину AGP содержимое кадрового буфера и текстуры загружалось прямо в оперативную память компьютера. В партнерских вариантах i740 обращение к оперативной памяти происходило лишь в том случае, если собственный буфер адаптера полностью заполнялся или был сильно сегментирован. Такой же подход часто используется и сегодня при исчерпании памяти на борту видеокарты система увеличивает буфер, используя свободную RAM.

image

Но во времена, когда буферы исчислялись мегабайтами, а текстуры еще не раздулись до неприличных размеров, такой подход мог показаться по меньшей мере странным.

Чтобы уменьшить возможные задержки при работе с шиной, Intel использовали одну из её особенностей прямой доступ к буферу памяти (Direct Memory Execute или DiME). Такой метод еще назывался AGP-текстуризацией, и позволял использовать оперативную память компьютера для маппинга текстур, обрабатывая их селективно. Средняя производительность вкупе с посредственным качеством изображения позволили i740 добиться уровня прошлогодних карт своего ценового сегмента.

image

За модель с 4 Мб видеопамяти просили $119, а вариант с 8 Мб стоил $149. При этом помимо базовой версии Intel свет увидели всего два партнёрских варианта Real3D StarFighter и Diamond Stealth II G450.

Рассчитывая на успех, Intel начала разработку следующего чипа i752, но ни ОЕМ-производители, ни энтузиасты не проявили интереса к бюджетному адаптеру, серьезно отстающему от актуальных решений. И это неудивительно, ведь в то же время продавалась ViRGE от S3, покупка которой куда больше порадовала бы пользователя. Производство адаптеров было свернуто, а вышедшие на рынок чипы i752 перепрофилировали для использования в качестве решений интегрированной графики.
В октябре 1999 года Lockheed-Martin ликвидировала Real3D, а богатый штат специалистов разошелся в Intel и ATI.

ATI Возвращение в игру с Rage Pro и Rage 128


ATI вновь заявила о себе с Rage Pro Turbo в феврале 1998 года, но эта карта оказалась всего лишь ребрендингом Rage Turbo с доработкой драйверов для выдающихся результатов в синтетических текстах. Обзорщики некоторых изданий были приятно удивлены, но цену в $449 оправдать было очень сложно. Тем не менее, именно с Rage Pro Turbo впервые появился феномен Finewine драйвера постепенно улучшали производительность адаптера с каждой новой ревизией.

Куда более серьезную попытку повлиять на расстановку сил ATI предприняла с выходом Rage 128 GL и Rage 128 VR в августе того же года. Из-за проблем с поставками ATI не смогла обеспечить наличие моделей в магазинах почти до зимних каникул, что сильно сказалось на продвижении новинок. В отличие от OEM-контрактов, стабильно приносящих канадцам серьезную прибыль, простые энтузиасты не смогли оценить новинку из-за отсутствия адаптеров на рынке. Но была и другая причина, по которой продажи Rage 128 оказались ниже ожидаемого.

ATI подготовила Rage 128 к светлому графическому будущему, оснастив новинку 32 Мб видеопамяти (варианты с 16 Мб выпускались под брендом All-In-Wonder 128), которая работала на быстрой и эффективной подсистеме в 32-битном цвете прямой конкурент NVidia Riva TNT не имел никаких шансов. Увы, во времена выхода новинки большинство игр и приложений всё еще работали в 16-битном режиме, где Rage 128 ничем не выделялась на фоне NVidia и S3 (а по качеству изображения даже уступала моделям от Matrox). Массовая публика не оценила подхода ATI, но именно тогда канадцы впервые опередили своё время вот только по достоинству их подход оценили гораздо позже.

1998 год стал для ATI рекордным при обороте в $1.15 млрд чистая прибыль компании составила неплохие $168.4 миллиона. Канадская компания завершила год, располагая 27% рынка графических ускорителей.
В октябре 1998 года ATI приобрела Chromatic Research за $67 миллионов. Компания, знаменитая своими медиапроцессорами MPACT, была поставщиком решений для PC TV от Compaq и Gateway, и предлагала великолепную производительность при работе с MPEG2, высокое качество аудио и отличные показатели в режиме 2D. По иронии судьбы именно единственный недостаток MPACT в виде слабой производительности в 3D-режиме поставил Chromatic Research на грань банкротства всего через 4 года после основания. Всё ближе подступало время универсальных решений.

3Dfx Voodoo 2 и Voodoo Banshee Успешный провал лидера рынка


Пока Intel пыталась выйти на рынок графических адаптеров, его лидер в лице 3Dfx представил Voodoo 2, ставшую технологическим прорывом в нескольких сферах одновременно. Новый графический адаптер от 3Dfx имел уникальный дизайн помимо центрального чипа на плате были два спаренных текстурных обработчика, благодаря чему карта была не только трехчиповой, но и обеспечивала возможность мультитекстурной обработки в OpenGL (когда на пиксель накладывались две текстуры одновременно, ускоряя общую прорисовку сцены), чего прежде никогда не использовалось. Как и оригинальная Voodoo, карта работала исключительно в режиме 3D, но в отличие от конкурентов, совмещавших в одном чипе 2D и 3D-обработку, 3Dfx не шла ни на какие компромиссы, преследуя главную цель отстоять позиции лидера рынка.

Профессиональные версии нового адаптера не заставили себя долго ждать дочерняя компания 3Dfx Quantum3D выпустила три примечательных акселератора на базе новинки двухчиповой Obsidian2 X-24, которую можно было использовать в паре с 2D-платой, SB200/200Sbi с 24 Мб памяти EDO на борту, а также Mercury Heavy Metal экзотический бутерброд, в котором спаренные 200Sbi соединялись между собой контактной платой Aalchemy, в будущем ставшей прототипом знаменитого SLI-мостика NVidia.

image
Mercury Heavy Metal

Последний вариант предназначался для проведения сложных графических симуляций, и был доступен по космической цене в $9999. Для полноценной работы монстр MHM требовал серверной материнской платы серии Intel BX или GX с четырьмя слотами PCI.

Понимая важность контроля над бюджетным рынком уже в июне 1998 года 3Dfx представила Voodoo Banshee первый графический ускоритель с поддержкой 2D и 3D режимов работы. Вопреки ожиданиям и надеждам ставший легендарным чип Rampage так и не был готов, а на борту карта имела всего один блок обработки текстур, практически уничтоживший производительность новинки в мультиполигональном рендеринге Voodoo 2 была в разы быстрее. Но даже если экономичное производство с узнаваемым брендом и обеспечили Banshee хорошие продажи, то разочарование фанатов никуда не исчезло от создателей той самой Voodoo, в одночасье перевернувшей графический рынок, ожидали куда большего.

К тому же, несмотря на лидерство Voodoo 2, отрыв от конкурентов стремительно сокращался. Навязав ATI и NVidia серьезную конкуренцию, 3Dfx сталкивалась всё и новыми и новыми передовыми решениями, и лишь благодаря эффективному менеджменту (3Dfx производила и продавала карты сама, без участия партнеров) компания получала значительную прибыль с продаж. Но руководство 3Dfx видело массу возможностей в приобретении собственных фабрик по производству кремниевых пластин, поэтому компания выкупила STB Technologies за $131 миллион с расчётом на радикальное сокращение стоимости производства и навязывание конкуренции поставщикам Nvidia (TSMC) и ATI (UMC). Эта сделка стала роковой в истории 3Dfx мексиканские фабрики STB безнадежно отставали по качеству продукции от азиатских конкурентов, и никак не могли конкурировать в гонке за техпроцесс.

После того, как стало известно о приобретении STB Technologies, большинство партнеров 3Dfx не поддержали сомнительное решение, и перешли на продукты NVidia.

Nvidia TNT Заявка на техническое лидерство


И причиной для этого стала представленная Nvidia 23 марта 1998 года Riva TNT. Добавив параллельный пиксельный конвейер в архитектуру Riva, инженеры удвоили скорость отрисовки и рендеринга, что вкупе с 16 Мб памяти формата SDR значительно увеличило производительность. Voodoo 2 использовала куда более медленную память EDO и это давало новинке от Nvidia серьезное преимущество. Увы, техническая сложность чипа имела свои плоды из-за аппаратных ошибок при производстве 350-нм чип TSMC не работал на задуманных инженерами 125 МГц частота часто падала до 90 МГц, из-за чего Voodoo 2 смогла сохранить звание формального лидера по производительности.

Но даже при всех недостатках TNT была впечатляющей новинкой. Благодаря использованию двухканальной AGP-шины карта обеспечивала поддержку игровых разрешений до 1600х1200 при 32-битном цвете (и 24-битном Z-буфере для обеспечения глубины изображения). На фоне 16-битной Voodoo 2 новинка от nVidia выглядела настоящей революцией в графике. И хотя TNT не была лидером в бенчмарках, она оставалась опасно близкой к Voodoo 2 и Voodoo Banshee, предлагая больше новых технологий, лучшее скалирование с частотой процессора и более высокое качество обработки 2D и текстур благодаря прогрессивной AGP-шине. Единственным минусом, как и в случае с Rage 128, были задержки в поставках большое количество адаптеров появилось в продаже только осенью, в сентябре 1998 года.

Другим пятном на репутации Nvidia в 1998 году стал иск компании SGI, согласно которому NVidia нарушила права на патент внутренней технологии текстур-маппинга. По итогу судебных разбирательств, продлившихся целый год, было заключено новое соглашение, согласно которому NVidia получала доступ к технологиям SGI, а SGI получала возможность использовать наработки Nvidia. При этом графической подразделение самой SGI было расформировано, что только пошло на пользу будущему графическому лидеру.

Number Nine Шаг в сторону


Тем временем 16 июня 1998 года ОЕМ-производитель графических решений Number Nine решил попытать счастья на рынке графических адаптеров, выпустив карту Revolution IV под собственным брендом.
Сильно отставая по производительности от флагманских решений ATI и Nvidia, Number Nine сделала акцент на бизнес-сектор, предложив крупным компаниям то, в чем были слабы классические карты для игр и 3D-графики поддержку высоких разрешений в 32-битном цвете.
Чтобы завоевать интерес крупных компаний, Number Nine интегрировала проприентарный 36-пиновый разъем OpenLDI в свою Revolution IV-FP, и продавала плату в комплекте с 17.3 дюймовым монитором SGI 1600SW (с поддержкой разрешения 1600х1024). Набор стоил $2795.
Особого успеха предложение не снискало, и Number Nine вернулась к выпуску партнерских карт S3 и Nvidia, пока не была куплена S3 в декабре 1999, а затем продана бывшим инженерам компании, сформировавшим Silicon Spectrum в 2002 году.

S3 Savage3D Бюджетная альтернатива Voodoo и TNT за $100


Бюджетный чемпион в лице S3 Savage дебютировал в рамках E3 1998, и в отличие от многострадальных доминаторов сегментом выше (Voodoo Banshee и Nvidia TNT) попал на полки магазинов уже через месяц после анонса. К сожалению, спешка не могла пройти незаметно драйвера были сырыми, а поддержка OpenGL была реализована только в Quake, ведь проигнорировать одну из самых популярных игр года S3 себе позволить не могла.

С частотами S3 Savage также было не всё гладко. Из-за производственных недочетов и высокого энергопотребления референсные модели адаптера сильно грелись, и не обеспечивали задуманного порога частоты в 125 МГц частота обычно плавала между значениями в 90 и 110 МГц. При этом обозреватели из лидирующих изданий получили на руки инженерные образцы, исправно работавшие на 125 МГц, что обеспечило красивые цифры во всевозможных бенчмарках вместе с похвалами профильной прессы. Позже, в партнерских моделях ранние проблемы были решены Savage3D Supercharged стабильно работала на 120 МГц, а Terminator BEAST (Hercules) и Nitro 3200 (STB) покорили заветную планку в 125 МГц. Несмотря сырые драйвера и посредственную производительность на фоне лидеров большой тройки демократичная цена в пределах $100 и возможность качественного воспроизведения видео позволили S3 получить неплохие продажи.

1997 и 1998 годы стали очередным периодом поглощений и банкротств многие компании не выдержали конкуренции в гонке за производительностью, и были вынуждены уйти из отрасли. Так за бортом остались Cirrus Logic, Macronix, и Alliance Semiconductor, тогда как Dynamic Pictures была продана 3DLabs, Tseng Labs и Chromatic Research оказались выкуплены ATI, Rendition ушла Micron, AccelGraphics приобрели Evans & Sutherland, а Chips and Technologies стали частью Intel.

Trident, S3 и SiS Последняя битва тысячелетия за бюджетную графику


ОЕМ-рынок всегда был последней соломинкой для производителей, безнадежно отставших от конкурентов в работе с 3D-графикой и чистой производительностью. Таким он был и для компании SiS, выпустившей бюджетную SiS 300 для нужд бизнес-сектора. Несмотря на плачевную производительность в 3D (ограниченную единственным пиксельным конвейером) и безнадежное отставание в 2D от всех конкурентов мейнстрим-рынка, SiS 300 покорила OEM-производителей определенными преимуществами 128-битной шиной памяти (64-битной в случае более упрощенной SiS 305), поддержкой 32-битного цвета, DirectX 6.0 (и даже 7.0 в случае с 305), поддержкой мультитекстурного рендера и аппаратного декордирования MPEG2. Был у графической карты и ТВ-выход.

В декабре 2000 года свет увидела модернизированная SiS 315, где появился второй пиксельный конвейер и 256 битная шина, а также полная поддержка DirectX 8.0 и полноэкранного сглаживания. Карта получила новый движок обработки освещения и текстур, компенсацию задержек при проигрывании видео с DVD-носителей и поддержку разъема DVI. Уровень производительности находился в районе GeForce 2 MX 200, но это ничуть не смущало компанию.

Попала SiS 315 и на ОЕМ-рынок, но уже в составе чипсета SiS 650 для материнских плат на сокете 478 (Pentium IV) в сентябре 2001, а также как часть SoC-системы SiS552 в 2003.

Но SiS была далеко не единственным производителем, предлагавшим интересные решения в бюджетном сегменте. Trident также боролась за внимание покупателей с Blade 3D, общая производительность которой была на уровне провальной Intel i740, но цена в $75 с лихвой перекрывала многие недостатки. Позже на рынок вышла Blade 3D Turbo, в которой частоты поднялись со 110 до 135 МГц, а общая производительность вышла на уровень i752. К сожалению, Trident разрабатывала свои решения слишком долго для рынка, где новинки презентовали каждые пару месяцев, поэтому уже в апреле 2000 года это нанесло первый удар по компании VIA, для которой Trident разрабатывали встроенную графику, приобрела компанию S3, и прекратила сотрудничество с прежним партнером.

Впрочем, Trident использовала свою бизнес-модель в максимально выгодном ключе, сочетая массовые поставки и низкую стоимость производства своих бюджетных решений. Мобильный сектор рынка оставался относительно свободным, и специально для него в Trident разработали несколько моделей Blade3D Turbo T16 и T64 (работающих на частоте 143 МГц) и XP (работавшей на частоте 165 МГц). А вот приглянувшийся многим компаниям OEM-рынок уже не был благосклонен к простоте Trident вышедшая чуть позже SiS 315 поставила шах и мат всей линейке продуктов Trident. Не имея возможности быстро разработать достойную альтернативу, в Trident приняли решение продать графическое подразделение дочке SiS компании XGI в 2003 году.

Особняком среди прочих решений в бюджетном секторе стояла S3 Savage4. Анонсированная в феврале и поступившая в продажу в мае 1999 года, новинка предлагала 16 и 32 Мб памяти на борту, 64-битную четырехканальную шину AGP и собственную технологию сжатия текстур, благодаря которой адаптер мог обрабатывать блоки разрешением вплоть до 2048х2048 без особых затруднений (хотя это и было реализовано ранее в Savage3D). Умела карта проводить и мультитекстурный рендеринг, но даже отлаженные драйвера и впечатляющие технические характеристики не могли скрыть того факта, что прошлогодние предложения от 3Dfx, Nvidia и ATI были значительно производительнее. И такое положение вещей повторилось год спустя, когда на рынок вышла Savage 2000. В низких разрешениях (1024х768 и менее) новинка могла потягаться с Nvidia TNT и Matrox G400, но при выборе более высокого разрешения расстановка сил радикально менялась.

3Dfx Voodoo3 Пафос, шум и пустые оправдания


3Dfx не могла допустить, чтобы их новинка затерялась на фоне прогрессирующих конкурентов, поэтому премьера Voodoo3 в марте 1999 года сопровождалась обширной рекламной кампанией карту ярко продвигали в прессе и по телевидению, а смелое оформление коробки притягивало взгляды потенциальных покупателей, мечтавших о новой графической революции.

image

Увы, ставший притчей во языцех чипсет Rampage всё еще не был готов, и архитектурно новинка представляла собой родственника Voodoo2 на основе чипа Avenger. Архаичные технологии вроде поддержки исключительно 16-битного цвета и разрешения текстур всего в 256х256 не порадовали поклонников бренда как и полное отсутствие поддержки аппаратной обработки освещения и геометрии. Многие производители уже ввели моду на текстуры высокого разрешения, мультиполигональный рендеринг и 32-битный цвет, поэтому 3dfx впервые оказалась в числе отстающих по всем параметрам.

Инвесторам убытки в $16 миллионов пришлось объяснять недавним землетрясением в Тайване, которое, однако, почти не отразилось на финансовых успехах ATI и Nvidia. Понимая очевидные преимущества свободного распространения библиотек DirectX и OpenGL, компания еще в декабре 1998 года объявила о том, что их API Glide будет доступен как open-source. Правда, на тот момент желающих едва ли было слишком много.

Riva TNT2 и G400 Конкуренты впереди


Одновременно с пафосной премьерой Voodoo3 от 3Dfx Nvidia скромно представила свою RIVA TNT 2 (с первыми в своей истории картами серии Ultra, где геймеры получали более высокие частоты ядра и памяти), а Matrox презентовала не менее впечатляющую G400.
Riva TNT2 производилась по 250 нм технологии на фабриках TSMC, и смогла обеспечить Nvidia беспрецедентный уровень производительности. Новинка разгромила Voodoo3 практически везде исключением стали лишь несколько игр, в которых использовалась технология AMD 3DNow! В сочетании с OpenGL. Не отстала Nvidia и в плане технологий на картах серии TNT2 присутствовал DVI-разъем для поддержки новейших мониторов с плоским экраном.

Настоящей неожиданностью для всех стала Matrox G400, которая оказалась еще более производительной, чем TNT2 и Voodoo3, отставая лишь в играх и приложениях с использованием OpenGL. За свою демократичную цену в $229 новинка от Matrox предлагала отличное качество изображения, завидную производительность и возможность подключения двух мониторов через спаренный разъем DualHead. Второй монитор был ограничен разрешением в 1280х1024, но сама идея многим пришлась по душе.

Для G400 также была реализована технология рельефного текстурирования (Environment Mapped Bump Mapping, EMBM) для повышения общего качества прорисовки текстур. Для тех, кто всегда предпочитал приобретать лучшее, существовала G400 MAX, носившая титул самой производительной карты на рынке вплоть до выхода GeForce 256 с DDR-памятью в начале 2000 года.

Matrox Parhelia и 3DLabs Permedia Последние посредственности


Большой успех на рынке игровых графических ускорителей не слишком вдохновил Matrox, которая вернулась на профессиональный рынок, лишь однажды соблазнившись повторить успех G400 с Parhelia, но в 2002 году конкуренты уже вовсю осваивали DirectX 9.0, а поддержка трех мониторов одновременно меркла на фоне плачевной игровой производительности.
Когда публика уже успела переварить громкие релизы трех компаний, 3DLabs представила давно заготовленную Permedia 3 Create! Главной особенностью новинки было нишевое позиционирование 3DLabs рассчитывали привлечь внимание профессионалов, предпочитающих коротать свободное время в играх. Компания сделала акцент на высокую производительность в 2D, и привлекла к проекту специалистов из приобретенной в 1998 году Dynamic Pictures, авторов профессиональной линейки адаптеров Oxygen.

К несчастью для 3DLabs, в профессиональных картах приоритетом было сложнополигональное моделирование, и зачастую высокая производительность в этом направлении обеспечивалась серьезным снижением скорости обработки текстур. Игровые адаптеры с приоритетом в 3D работали с точностью до наоборот вместо сложных вычислений во главу угла ставилась скорость рендеринга и обработки текстур с высоким качеством изображения.

Значительно отставая от Voodoo3 и TNT 2 в играх, и не слишком опережая конкурентов в рабочих приложениях и задачах, Permedia оказалась последней попыткой 3DLabs выпустить продукт на рынок игровых адаптеров. Далее знаменитые графические инженеры продолжали расширение и поддержку своих специализированных линеек GLINT R3 и R4 на архитектуре Oxygen, где изобилие моделей варьировалось от бюджетных VX-1 за $299 до премиальных GVX 420 за $1499.

Была в репертуаре компании и линейка адаптеров Wildcat, основанная на разработках Intense3D, купленной у Integraph в июле 2000 года. В 2002 году когда 3DLabs активно заканчивала разработку передовых графических чипов для новых адаптеров Wildcat, компанию выкупила Creative Technology со своими планами на линейки P9 и P10.

В 2006 году компания покинула рынок настольных компьютеров, сосредоточившись на решениях для медиа-рынка, а позже вошла в состав Creative SoC, и стала известна как ZiiLab. История 3DLabs окончательно закончилась в 2012 году, когда компанию купила Intel.

ATI Rage MAXX Двухчиповое безумие в роли отстающего


С момента выхода успешной Rage 128 ATI испытывала ряд трудностей с дальнейшим развитием линейки. В конце 1998 года инженерам удалось успешно реализовать поддержку шины AGP 4x в обновленной версии адаптера Rage 128 Pro, дополнив число разъемов ТВ-выходом. В целом графический чип показывал себя примерно на уровне TNT 2 в плане игровой производительности, однако после выпуска TNT 2 Ultra первенство вновь перешло к Nvidia, с чем канадцы мириться не хотели, началась работа над Project Aurora.

Когда стало очевидно, что гонка за производительностью проиграна, инженеры прибегли к трюку, который в будущем станет одной из особенностей многих поколений красных карт они выпустили Rage Fury MAXX, двухчиповую графическую карту, на плате которой трудились две Rage 128 Pro.

image
Rage Fury MAXX

Внушительные спецификации и возможность параллельной работы двух чипов сделали карту с одиозным названием достаточно продуктивным решением, и вывели ATI вперед, долго лидерство удерживать не удалось. За титул лучших боролась даже S3 Savage 2000, а представленная позже GeForce 256 с DDR-памятью не оставила флагману ATI никаких шансов несмотря на угрожающие цифры и прогрессивные технологии. Nvidia понравилось быть первой, и уступать место лидера рынка юный Дженсен Хуанг совсем не торопился.

GeForce 256 первая настоящая видеокарта. Рождение термина GPU


Не прошло и двух месяцев с момента, как ATI наслаждалась пирровой победой в бенчмарках с анонсом Rage Fury MAXX, когда Nvidia представила ответ, закрепивший за компанией статус лидера рынка GeForce 256. Новинка первой в истории выходила с разными типами видеопамяти 1 октября 1999 года свет увидела версия с чипами SDR, а уже 1 февраля 2000 года начались продажи обновленной версии с памятью типа DDR.

image
GeForce 256 DDR

Графический чип из 23 миллионов транзисторов изготавливался на фабриках TSMC по 220 нм техпроцессу, но, что куда более важно, именно GeForce 256 стала первым графическим адаптером, получивший название видеокарта. Заметили, как тщательно мы избегали этого термина на протяжении всего повествования? Смысл неловких замен был именно в этом. Термин GPU (Graphics Processing Unit, чип обработки графики) появился благодаря интеграции отдельных прежде конвейеров обработки текстур и освещения в качестве составной части чипа.

Широкие возможности архитектуры позволяли графическому чипу видеокарты проводить тяжелые вычисления в операциях с плавающей запятой, преобразовывая сложные массивы 3D-объектов и составных сцен в красивую 2D-презентацию для впечатленного игрока. Прежде все подобные сложные вычисления проводил центральный процессор компьютера, что служило серьезным ограничением детализации в играх.

Статус GeForce 256 как пионера в использовании программных шейдеров с поддержкой технологии трансформации и освещения (T&L) часто подвергался сомнению. Другие производители графических ускорителей уже внедряли поддержку T&L в прототипах (Rendition V4400, BitBoys Pyramid3D и 3dfx Rampage), или на стадии сырых, но работоспособных алгоритмов (3DLabs GLINT, Matrox G400), или в качестве функции, реализованной дополнительным чипом на плате (геометрический процессор Fujitsu на борту Hercules Thriller Conspiracy).

Тем не менее, ни один из вышеперечисленных примеров не вывел технологию на этап коммерческой реализации. Nvidia первой реализовала трансформацию и освещение в качестве архитектурных преимуществ чипа, подарив GeForce 256 то самое конкурентное преимущество и открыв для компании прежде скептически настроенный профессиональный рынок.
И интерес профессионалов был вознагражден всего через месяц после выхода геймерских видеокарт NVidia презентовала первые видеокарты линейки Quadro модели SGI VPro V3 и VR3. Как можно догадаться из названия, карты были разработаны с применением проприетарных технологий компании SGI, договор с которой Nvidia заключила летом 1999 года. Иронично, что немного позже SGI пыталась отсудить у Nvidia свои разработки, но потерпела неудачу, оказавшись на грани банкротства.

Nvidia завершила последний финансовый год уходящего тысячелетия ярко прибыль в размере $41.3 миллиона при общем обороте в $374.5 миллиона порадовала инвесторов. По сравнению с 1998 годом прибыль выросла на порядок, а общие обороты более чем вдвое. Вишенкой на торте для Дженсена Хуанга стал контракт с Microsoft на сумму $200 млн, в рамках которого NVidia разработала чип NV2 (графическое ядро для будущей консоли Xbox), увеличив общие активы компании до $400 млн при выходе на биржу в апреле 2000 года.

Конечно, в сравнение с $1.2 миллиардами оборота и $156 миллионами чистой прибыли ATI цифры набирающего обороты конкурента казались скромными, но канадский производитель видеокарт не почивал на лаврах, ведь щедрые контракты ОЕМ-рынка оказались под угрозой из-за выхода прогрессивной интегрированной графики от Intel чипсета 815.

А впереди было падение великих. И начало новой эры в гонке за производительностью.

Автор текста Александр Лис.

Продолжение следует...

Плейлист Графические войны на YouTube:
image
Подробнее..

Перевод Когда дефицита GPU ещё не было

09.04.2021 12:18:12 | Автор: admin


Большую часть времени GPU были не важны


Как, наверно, понимает большинство людей, компьютеры считают числа. Обычно интуитивным способом работы с компьютерами является взаимодействие с какой-нибудь графикой. Или, что более важно, с более красивым отображением чисел.


Реклама Tektronix Interactive Graphics, предполагаемого предшественника технологий GPU. Но так ли это на самом деле?

Пока Windows и Apple приучали публику к своим заточенным под мышь интерфейсам, хардкорным пользователям компьютеров, то есть геймерам, нужно было, чтобы действия мыши регистрировались намного быстрее. А ещё они хотели, чтобы графика была более реалистичной. Затем они стали просить такие функции, как онлайн-мультиплеер, мгновенный обмен сообщениями и множество других возможностей, которые сегодня воспринимаются как должное, но в первой половине 90-х казались чем-то значительным.

Можно было бы заявить, что технически сложному геймплею мы обязаны классическому Doom 1993 года, а также его потомку Quake, вызвавшему интерес пользователей к специализированным графическим картам. Однако пообщавшись со специалистом, наблюдавшим за развитием этой отрасли с самого начала, можно прийти к выводу, что история GPU не была такой уж простой.

Доктор Джон Педди впервые занялся компьютерной графикой в 1960-х. Он находился в составе команды, создававшей топографические 3D-карты по снимкам аэрофотографии, что в дальнейшем привело к созданию его собственной компании Data Graphics. К началу 1980-х он задумался об уходе на пенсию и карьере писателя научной фантастики, но заметил в этой отрасли бум, который сложно было игнорировать. Практическое применение высокопроизводительной графики изначально развивали компании, занимавшиеся CAD и GIS, однако взрывной рост популярности видеоигр в 80-х изменил эту ситуацию.

Игры были (и остаются) локомотивом отрасли благодаря количеству потребителей, сообщил мне Педди в электронном письме. Среди пользователей 3D и GPU были инженерные компании (CAD и молекулярное моделирование), а также киноиндустрия. Но в 80-х и 90-х на этом рынке было примерно 100 тысяч покупателей. А рынок потребительского 3D исчислялся миллионами пользователей. Однако рынок профессионалов платил больше тысячи или десятки тысяч долларов, в то время как потребители платили всего несколько сотен. То есть задача заключалась в том, чтобы встроить достаточную мощь в чип, который в готовом продукте продавался бы за сотни долларов.

На этом этапе истории компьютеров в техническом лексиконе появилась аббревиатура GPU. В статье в журнале Computerworld за 1983 год подробно описывается линейка графических терминалов Tektronix. Но если приглядеться, GPU пока расшифровывается не как graphic processing unit, а как graphic processor unit. Есть ли какая-то разница? На самом деле, GPU не существовало до 1997 года, пусть даже и использовалась похожая аббревиатура. Оказывается, для настоящего GPU обязателен движок трансформации и освещения (transform and lighting, T&L).

Почему термином GPU нельзя называть графический чип или плату, разработанную до 1997 года? Он отрисовывает графику (хоть и только в 2D-пространстве). Обрабатывает ли он графику? Да, в каком-то смысле. Он отрисовывает отрезки и окружности это и есть обработка (processing). Важное отличие заключается в том, что GPU должен быть способен на истинное 3D (а для этого требуется T&L).


Графический 3D-чип Glint компании 3Dlabs, по мнению некоторых, первой создавшей истинный GPU. Он был выпущен в ноябре 1994 года и активно применялся в "мощных 3D-приложениях CAD" (по-прежнему не первый настоящий GPU, но всё равно интересный графический чип). Несмотря на то, что 3Dlabs первой появилась на рынке, она не смогла воспользоваться экономическими масштабами, доступными для её конкурентов, например, Nvidia.

Право первопроходца забирают себе победители


Давайте для начала разберём распространённую ошибку. Оборудование первой PlayStation не было первым GPU на массовом рынке. Такое мнение возникло благодаря мощному маркетингу Sony и Toshiba. Как говорит Педди, У первой PlayStation был движок трансформации геометрии (geometry transformation engine, GTE), являвшийся сопроцессором 2D-чипа, и ошибочно названый (маркетологами) GPU.

Маркетинг был важным элементом той эпохи, то есть незадолго до того, как GPU впервые начали появляться. Создание истинного GPU для 3D было далёким горизонтом, и многие компании хотели добраться до него первыми. Однако эту честь первой получила небольшая контора из Великобритании под названием 3Dlabs. Инновацией, давшей продукту 3Dlabs титул первого настоящего GPU, стала разработка графического процессора из двух чипов, содержавшего обработчик геометрии, называемый движком трансформации и освещения (T&L). В отличие от своих конкурентов, 3Dlabs делала упор на рынок CAD, хоть и пыталась вторгнуться на крупный потребительский рынок, заключив партнёрское соглашение с Creative Labs.


Технологическое демо с показом возможностей чипсета 3Dlabs Glint.

Малый размер 3Dlabs и её специализация на профессиональном рынке означали, что на рынке потребительских GPU появится множество первопроходцев.

Сектор графических карт в тот период был невероятно активен, за благосклонность игроков в Quake сражались такие крупные компании, как Matrox, S3 и 3Dfx.

Но историю пишут победители, и в этот период возник лидер рынка. К концу 1999 года Nvidia была готова выпустить свой первый массовый потребительский GPU с интегрированным T&L, называвшийся GeForce 256.

Так, по мифологии Nvidia, появился GPU, и компания утверждает, что именно она изобрела его, говорит Педди. То есть историю можно перекраивать, как тебе угодно. Nvidia стоит 10 миллиардов долларов и на пути к 50 миллиардам, а о 3Dlabs никто не помнит.

Примечание: название Nvidia всегда было и является существительным, а не сокращением, несмотря на распространённое заблуждение.

Довольно скоро рынок заполнился конкурирующими GPU, каждый из которых стремился занять собственную рыночную нишу. Канадский производитель ATI Technologies, которого позже приобрёл крупнейший конкурент Nvidia компания AMD, попытался обособить свою продукцию на рынке, назвав свои GPU аббревиатурой VPU (video processor unit), хотя на практике они ничем не различались. Но это название не прижилось.

ATI сдалась, она не могла противостоять превосходящим маркетинговым навыкам, масштабам, привлекательности и безжалостному напору Nvidia, рассказывает Педди.

К началу 2000-х на потребительском рынке начали доминировать крупные игроки наподобие Nvidia, быстро ставшие злодеями в глазах геймеров всего мира. Любопытно, что именно эта консолидация рынка позволяет объяснить, почему сегодня так трудно найти и купить мощные графические карты.


Узрите! Один из самых желанных продуктов в мире. И это ведь даже не самая мощная карта в линейке.

Так кого же винить в этом дефиците GPU?


Если вы так далеко углубились в статью об истории и названиях GPU, то вам наверняка интересно, когда я доберусь до Великого дефицита GPU 2020 года (который, вероятно, будет длиться и дальше).

Вкратце для тех, кто не понимает, о чём я говорю: за последние месяцы цена мощных GPU взлетела до небес и их даже невозможно найти в продаже.

Например, у Nvidia есть три модели графических карт, которые обычно стремятся приобрести геймеры:

  • RTX 3090: рекомендуемая производителем розничная цена 1499 долларов
  • RTX 3080: рекомендуемая цена 699 долларов
  • RTX 3070: рекомендуемая цена 499 долларов

Можно спорить о соотношении цены и производительности этих моделей. Однако дефицит вызвал рост стоимости этих GPU на рынке перепродажи. На данный момент цена средней по мощности из трёх карт RTX 3080 равна 1499 долларов, в то время как 3090 и 3070 практически невозможно найти. Один из лотов 3090 продаётся на eBay за более чем 3000 долларов.

Здесь также стоит упомянуть линейку графических карт AMD. Несмотря на не столь высокий спрос, поскольку традиционно они были не такими мощными, на карты AMD тоже повлияли ограничения цепочки поставок производства GPU. Как и в случае с линейкой Nvidia, модели AMD RX 6700, 6800 и 6900 тоже выросли в цене на вторичном рынке в два с лишним раза.

Немного забавного контекста в моём старом Xeon установлена refurbished-версия AMD RX 570, за которую я в середине 2019 года заплатил чуть больше 100 долларов. Та же самая карта, которая, по сути, является бюджетной моделью и уже слегка устарела на момент моей покупки, сейчас продаётся за 599 долларов.

Очевидно, что существует огромный спрос, и капитализм обычно неплохо справляется с устранением таких пробелов. Как и за многие другие проблемы 2020 года, большую часть вины можно возложить на COVID-19. Производственные хабы в Китае и Тайване, как и почти весь остальной мир, были вынужденно закрыты. Хотя многие операции в производстве оборудования можно автоматизировать, тонкая природа GPU требует определённой степени вмешательства человека.


График, описывающий текущее состояние отрасли GPU. (Автор Джон Педди)

Тем не менее, такое объяснение слишком упрощает тенденции процессов, начавшихся в отрасли графических карт ещё задолго до COVID-19. Послушаем доктора Педди:

Примерно пятнадцать лет назад сложился конвейер производства GPU: разрезание кремниевых пластин, тестирование, упаковка в корпуса, повторное тестирование и доставка заказчику. Все компании в этом конвейере, а также ниже по потоку (OEM-клиенты, имевшие похожий конвейер), искали способы более быстрого реагирования и в то же время минимизации своих материально-технических ресурсов. Так была разработана модель производства JIT (just in time, точно в срок). Она предполагала, что все в цепочке поставок дают точные прогнозы, а значит, и делают точные заказы. Если сломается одно звено цепи, то пострадают и все последующие Когда правительства объявили карантин в своих странах, всё производство остановилось, перестали поставляться детали, конвейер был сломан. И когда (если) производство восстановится, то для полной синхронизации потребуется ещё несколько месяцев.

В то же время людей отправили работать из дома, а у них не оказалось необходимых для этого инструментов. Так возник спрос на PC, и в особенности на ноутбуки. В 30-40% PC установлено два GPU, то есть спрос на GPU увеличился ещё сильнее.

А затем начался рост стоимости криптовалют Теперь майнеры (люди, использующие GPU для зарабатывания крипто) стремились скупить каждый доступный им GPU. Это вызвало спекуляции люди покупали все графические карты и продавали их по как можно более высокой цене.

То есть по цепочке поставок ударил спрос, а предложение не увеличивалось.

И такова краткая история. Изготавливающие GPU компании работали с очень малым допуском на погрешность, не имея возможности предсказывать будущее. Это относится и к рынку GPU в целом, но частично касается крупных заказчиков.

Ещё одним фактором разочарования стало время появления в 2020 году нового поколения видеоигровых консолей, а значит, и нового поколения видеоигр. Долгожданная PlayStation 5 вместе с Cyberpunk 2077 встретились в момент выпуска со множеством технических проблем и проблем с поставками. Игроки в Cyberpunk жаловались на то, что производительность игры сильно зависела от оборудования, на котором она была запущена. О различиях игрового процесса на PS4 и на PS5 один ютубер сказал так: По крайней мере, на PS5 она играбельна.

Хотя доктор Педди ожидает, что проблема дефицита разрешится к первому кварталу 2022 года (ура), он не особо оптимистичен относительно того, будет ли отрасль избегать подобных накладок в будущем.

Ещё одной проблемой будет происходящее сейчас удвоение заказов, которое в перспективе приведёт к огромному падению спроса на рынке полупроводников из-за избыточного предложения, заключает он.

Многому научиться можно даже у относительно новой истории. Хотя можно обвинить в неудовлетворении спроса ошибки рынка, очевидно, в целом ситуация намного сложнее. Несмотря на то, что GPU внезапно стали необходимы миллиардам людей для повседневной работы, высокопроизводительные устройства нужны только малой их доле, обладающей нишевыми интересами.

Тем не менее, рынок в целом должен уделить внимание разочарованным геймерам. Именно их потребности толкают отрасль к инновациям, которые становятся стандартом в более широко распространённых устройствах. С каждой итерацией устройства получают всё больше расширенных графических возможностей, которые постепенно достигают людей, не знавших о них, а теперь считающих их обязательными.

В конце концов, сегодня устройство, не обладающее реалистичной 3D-графикой, и телефоном-то мало кто назовёт.



На правах рекламы


VDSina предлагает эпичные серверы это виртуальные серверы с новейшими CPU AMD EPYC. Огромный выбор операционных систем для автоматической установки, есть возможность установить любую ОС с собственного образа. Обязательно попробуйте!

Подробнее..

Недорогая видеостена на 8 мониторов (спойлер NVidia)

23.05.2021 20:21:44 | Автор: admin
Собранная на коленках видеостена на 8 мониторов средствами NVidia Quadro P620Собранная на коленках видеостена на 8 мониторов средствами NVidia Quadro P620

Это мой первый пост на Хабре, прошу не судить строго.

Почему я вообще взялся за написание этого поста? Потому что в интернете навалом предложений по продаже, установке, настройке видеостен по каким-то космическим, запредельным ценам, а вот нужной технической информации мало и её надо поискать. Итак, к сути.

Я работаю в чебоксарском филиале компании Мегапьютер, которая занимается Big Data. Назрел вопрос - как можно быстро-качественно-недорого соорудить видеостену либо для рабочего места аналитика, либо (для внутреннего потребления) для демонстрации проектов внутри офиса.

Что должно демонстрироваться на видеостене?

  • Вкладки браузера (у нас "тонкий клиент")

  • Изображения

  • Презентации

  • Видеоролики

Пораскинув мозгами, приходим к выводу, что нам нет резона покупать супернавороченные видяхи, достаточно простых и, по возможности, недорогих.

Какие есть варианты видеостен (что я знаю теперь):

  1. Встроенные средства Windows (благо, винда позволяет это делать)

  2. Видеостены на картах AMD с использованием AMD Eyefinity Multi-Display Technology.

  3. Видеостены на картах Matrox с использованием Matrox MuraControl Video Wall Management Software

  4. Видеостены на картах NVidia с использованием NVidia Mosaic и NVIDIA RTX Desktop Manager

Порядок в списке лично мой по принципу "нравится/не нравится", никоим образом не настаиваю на своём выборе. Наверное, есть ещё другие варианты, но я пишу о том, что реально щупал, или о чём читал. Давайте по порядку, по пунктам.

У нас есть в наличии две видеокарты Asus GeForce GTX 960 с четырьмя выходами каждая, мы решили начать опыты с них. Смонтировали их в системник и начали.

1 вариант. Встроенные средства Windows

Несмотря на простоту настройки (на картинке ниже) и нетребовательность к железу , этот вариант мне не понравился. Главное, что нельзя сделать - при нажатии F11 окно браузера разворачивается не на всю стену, а только на один экран. Также нельзя развернуть на всю стену видео с ютуба. Приходится возить мышкой по всей стене и растягивать картинку, а это никак нельзя. Видеостена должна быть одним полноценным пространством из 8 мониторов.

Установка 8 мониторов встроенными средствами Windows 10Установка 8 мониторов встроенными средствами Windows 10

Есть и хороший момент - можно перевернуть верхнюю линию мониторов, чтобы сделать тонкие рамки внутри видеостены, а толстые оставить снаружи (картинка ниже)

Поворот верхних мониторов на 180 градусовПоворот верхних мониторов на 180 градусов

Процесс поворота чрезвычайно прост (на картинке ниже)

Поворот дисплеяПоворот дисплея

Итог - несмотря на простоту, такая стена не годится для полноценной работы.

2 вариант. Видеостены на картах AMD

Технология компании AMD AMD Eyefinity (картинка ниже) позволяет развернуть недорогую видеостену на 6 мониторов при использовании видеокарт линейки FirePro. Ссылка на эти видяхи здесь. Но, как ни странно, я не нашёл ни одну из этих видеокарт в свободной продаже, только под заказ с непонятными ценами и сроками.

Если хотите узнать чуть больше про технологию AMD Eyefinity, то вот ссылка на документ:

Технология AMD EyefinityТехнология AMD Eyefinity

Итог: полноценно разобраться с AMD Eyefinity у меня не получилось. Насколько я понял, у этой технологии есть ограничение в 6 мониторов. Дальше разбираться не стал.

3 вариант. Видеостены на картах Matrox

Про Matrox информации побольше и в целом решение мне понравилось. Я нашёл короткий рекламный ролик - ниже.

Найти видяхи Matrox C900 и C680 в свободной продаже сложно, но можно. Стоимость одной Matrox C900 (на 9 мониторов) - где-то 150 тысяч рублей ($2000). Софт Matrox Mura Control для управления видеостеной стоит где-то 100 тысяч рублей. Есть триал 21 день.

Подробнее можно узнать здесь

Итог: решение компании Matrox мне в целом понравилось. Но железки я не щупал, их не настраивал. По ссылке можно найти более дорогие и интересные решения, но я к тому моменту вплотную заинтересовался четвёртым вариантом и остановился на нём.

4 вариант. Видеостены на картах NVidia

Увы, две видяхи Asus GeForce GTX 960 оказались не у дел. NVidia заявляет, что видеостену можно включить утилитой NVidia Mosaic, которая заводится только на картах серии RTX и Quadro. Описание NVidia Mosaic здесь.

С NVidia всё оказалось вполне просто, нужные карты есть в свободной продаже. Я остановил свой выбор на недорогой карте, поддерживающей Mosaic -- NVidia Quadro P620, которая тянет 4 монитора. Стоимость - около 13 тысяч рублей за штуку. Конфигурация моего компа: Core i7-4771, Asus Z87-PLUS, 32 Gb DDR3.

Карты встали, дрова подгрузились, Mosaic идёт в комплекте с дровами. Настройка достаточно проста:

1 шаг - выбираем топологию

1 шаг - выбор топологии1 шаг - выбор топологии

2 шаг - выбираем дисплеи (в нашем случае все восемь). По поводу синхронизации - это отдельная история, долго рассказывать. Работает - и ладно.

2 шаг - выбираем дисплеи2 шаг - выбираем дисплеи

3 шаг - Располагаем дисплеи (картинка ниже)

Обратите внимание, как красиво по порядку стоят номера. Это я выполнил все рекомендации NVidia. Цифра перед запятой - номер видеокарты, цифра после запятой- номер дисплея.

И ещё - все видеовходы, все кабели должны быть одинаковыми. Или восемь HDMI, или восемь DisplayPort. Разнобой не пройдёт, проверено на себе. Мониторы разных марок не тестировал. Уточню, что если вы будете делать стену на одной видеокарте из 4 мониторов, то можно использовать мониторы с разными входами (DP и HDMI). На двух видяхах это не прокатит.

3 шаг - расположение дисплеев3 шаг - расположение дисплеев

4 шаг - тонкая настройка рамок. Картинку прилагать не стал, всё понятно и так.

Есть один недостаток у NVidia Mosaic - она не умеет переворачивать мониторы, а нам очень бы не помешало перевернуть верхний ряд мониторов (картинка в начале поста), чтобы узкие рамки были внутри видеостены. Чтобы решить эту проблему (и не только это) NVidia выпустила API под названием Warp and Blend. Ссылка здесь: https://developer.nvidia.com/warp-and-blend

Готовой утилитки-переворачивалки нет, пришлось разбираться с API, скачать демку и переписать её под себя. Благо она написана на C++, разобраться можно. В конечном итоге за несколько часов была написана и поставлена в автозапуск утилитка, которая переворачивает все мониторы на одной видеокарте. Задача выполнена.

Всё, стена настроена, можно запускать прогу для управления рабочими столами NVIDIA RTX Desktop Manager. Описание здесь.

Всё, подытоживаем вышенаписанное

  1. С моей точки зрения, самое дешёвое рабочее решение для видеостены на 8 мониторов будет на платформе NVidia Quadro стоимостью $400 без учёта мониторов. Мониторы пока отобрали у ковид-удалёнщиков и отпускников, потом вернём и будем покупать моники другой диагонали и с тонкими рамками.

  2. Масштабирование не получится - решение на 9 и более мониторов стоит на порядок дороже, там будут использоваться другие видеокарты и платы синхронизации стоимостью от тысячи долларов за штуку. Предупреждение NVidia: Note: Mosaic with more than 8 displays is available only on Quadro boards which support the Quadro Sync board.

Всем спасибо.

Подробнее..

Видеокарты продолжат дорожать накрутка при помощи посредников, нехватка мощностей и геймеры

11.06.2021 20:19:02 | Автор: admin

О том, что чипы и железо продолжает дорожать, на Хабре писали не раз и не два. И действительно, дорожают чипы памяти, видеочипы и даже жесткие диски с SSD. Сначала причиной были майнеры, сейчас они продолжают поддерживать стабильный спрос на все, что может им пригодиться.

Но по данным экспертов, в последнее время на рост цен влияют далеко не только они. Насколько можно понять, в ближайшем обозримом будущем ни старые, ни новые модели карт дешеветь не будут. Напротив, цены идут только вверх. Почему?

Накрутка посредников


Несколько дней назад эксперты ресурса igor'sLAB пытались найти причину активного роста цен на практически все подели карт. Как оказалось, в цепочке поставок появились некие дополнительные игроки, которые привели к сильному разрыву между рекомендованными производителями ценами и реальной стоимостью графических адаптеров.

Не так давно разобраться пыталась и компания NVIDIA ее глава, Дженсен Хуанг, заявил, что дефицит видеокарт связан с увеличившимся спросом (что, собственно, и так понятно). Но вот цены растут не из-за NVIDIA или ее партнеров. Цена графических адаптеров увеличивается уже ближе к концу логистической цепочки.

Эту точку зрения и подтвердил представитель igor'sLAB. Он раздобыл и опубликовал прайс-лист оптового поставщика комплектующих для ПК. Поставщик является одним из звеньев цепочки компания покупает дешевле, продает дороже. И это несколько странная практика, поскольку поставщик является своего рода теневым. Ранее компания занималась закупкой остатков комплектующих со складов крупных компаний и продавала их чуть дороже.

Теперь же компания каким-то образом получила возможность закупать крупные партии видеокарт. Ей они не нужны это лишь товар для перепродажи. И как раз продаются графические адаптеры уже по сильно завышенной цене, причем ни геймеры, ни майнеры здесь ни при чем.

Понятно, что одна такая компания особой погоды не делает. Но когда подобных звеньев несколько, то цена увеличивается в разы. Вот скриншот прайса, который удалось достать.

Если нет желания рыться в прайсе, то ниже -наиболее интересные примеры цен. Оценивая их, стоит помнить, что это оптовая стоимость товара, а не розничная. До конца цепочки еще несколько подобных звеньев, так что в итоге цена получается оцень высокой.

INNO3D GeForce RTX 3080 iChill X4 $2659
KFA2 GeForce RTX 3080 SG 1-click OC $2379
ZOTAC Gaming GeForce RTX 3080 Trinity OC $2464
ASUS GeForce RTX 3080 TUF Gaming $2562
ASUS GeForce RTX 3080 TUF Gaming OC $2586
Gigabyte GeForce RTX 3080 AORUS Master $2623
MSI GeForce RTX 3080 Gaming Z Trio $2684
MSI GeForce RTX 3080 Suprim X $2745

И еще четыре причины


Как будто искусственной накрутки недостаточно, но эксперты выделяют еще четыре фактора роста цен на видеокарты.

Первый фактор постоянный рост спроса на настольные ПК. Нехватка компьютеров, вызванная пандемией и последующей удаленкой, все еще есть, дефицит достаточно серьезный. И многие пользователи хотят не просто ПК, а игровой компьютер, чтобы можно было поработать и поразвлечься (ну или просто поразвлечься, не будем себя обманывать).

Второй фактор компании не успевают расширить производственные мощности для производства дополнительных карт. Этот фактор влияет почти на все составляющие железного бизнеса, включая оперативную память, процессоры, чипы для SSD. Но заметнее всего, конечно, нехватка видеокарт. Собственно, у производителей особо и стимула-то нет расширяться цены повышаются, так что компании получать сверхприбыли с тем же уровнем производства, что и ранее. Вкладываться в новую инфраструктуру не нужно, увеличивать вовлечение ресурсов тоже красота.

Третий фактор, не слишком известный и явный рост спроса на игровые консоли Microsoft и Sony. Да, архитектура приставок и комплектующие отличаются от чисто компьютерных. Но нельзя забывать, что комплектующие для консолей тоже нужно производить, а этим занимаются все те же производители компьютерного железа. Часть мощностей этих компаний заняты под производство элементов для приставок.

Четвертый фактор увеличение потребностей операторов дата-центров и крупных корпораций. Всем им нужны современные серверы с современными же комплектующими. Особенно востребована серверная память. Под нее занимают не используемые консольщиками производственные линии, вытесняя в некоторых случаях видеокарты.

Каждая из названных причин вроде бы не слишком критическая. Но если собрать все вместе, учитывая проблему с накруткой цен, то ситуация начинает выглядеть не просто плохо, а очень плохо.

Но и это еще не все


О нехватке видеочипов мы говорили ранее. Но теперь стремительно начала расти стоимость видеопамяти GDDR6. Это 6-е поколение памяти DDR SDRAM, предназначенной для обработки графических данных и для приложений, требующих высокой производительности. Память тоже не успевают производить в нужных объемах.


В следующем квартале цена чипов увеличится на примерно 13% от показателей второго квартала 2021 года. И это при том, что в первом квартале цены и так выросли на 10%, во втором еще на 20-25%. На четвертый квартал прогнозов пока нет видимо, аналитики просто боятся их делать. Если учитывать лишь то, что пока есть сейчас, к началу осени 2021 года стоимость только памяти GDDR6 увеличится на 50%.

По словам экспертов, это еще ничего в пике спотовые цены GDDR6 увеличились сразу на 200% по отношению к контрактным. Возможно, к концу года соотношение чуть выровняется но надежды на это не очень много.

Есть ли светлый луч в темном царстве дефицита?


Нет Есть, но пока что очень слабый. Геймеры вряд ли откажутся от возможности поиграть, хотя, конечно, они не готовы покупать карты по любой цене, показанной рынком.

А вот любители криптовалют, если волатильность последних будет такой же, как сейчас или даже более сильной, могут чуть снизить накал страстей. Уже сейчас спрос на карты с DDDR5 чуть ослаб, так что есть надежда на падение стоимости хотя бы старых видеоадаптеров.

Что касается новых вероятно, ажиотаж будет таким же, как и сейчас, по крайней мере, в ближайшее время. И если нужен игровой компьютер то обойдется он в цену чугунного моста, а то и двух. Эксперты, как и раньше, предрекают завершение кризиса с видеочипами, DRAM и видеопамятью не ранее, чем в 2022 году.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru