Арина Окшус

+17
с 2021
1 подписчик
37 подписок

МЛ и ДЛ, например. В 3090 всего лишь 24 гига видеопамяти, что не особо дофига для особо жирных моделей, а в M1 Ultra — до 128 гигов Unified Memory. Те же трансформеры ооооочень много памяти кушают, а такая машинка как Mac Pro за всего то 8к долларов это буквально подарок — аналог от нвидии будет стоить сильно дороже и доступен обычным смертным не будет.

2

Совершенно точно нет.

Не стоит множить сущности без необходимости. Но раз нет, так нет.

Так это проблема русской версии, не?

Да не то чтобы это была проблема вообще, имхо. В русской версии он говорит "Хош стих?" и это довольно хорошо подходит под чутка быдловатую личность Геральта.

4

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

И потом, в русской версии же всё равно не было сказано слово "Лимерик".

Оригинал тут и правда смешнее, субверсия, хуё-моё.

5

...

Я в очередной раз поражаюсь фантастической самоуверенности и абсолютной необразованности пользователей дтфа.

Когда мы переносим данные с хоста на девайс, оно идёт сначала в вышеупомянутый буфер, а только потом уже распределяется туда, куда надо — в регистры, в глобальную память, в shared memory всех ALU блока, в текстурную память, etc.

По крайней мере, так было год назад, когда я работал с вычислениями на CUDA и пытался разобраться в Vulkan. Мб сейчас что-то поменялось, если так, то просвети, умник, блядь.

1

Раньше надо было расставить источники света, расставить предметы, которые светят, показать, какие предметы отбрасывают тени, а какие не отбрасывают, Global Illumination, Baked In Lightning, нарисовать кубмапы для отражений...

Ну да. Вулкан вот свободный, OpenGL свободный. А у DirectX половина рантайма несвободна.

Проприетарное? Проприетарное. Опирается на проприетарное железо? Опирается.

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

Господи, бред какой. Наоборот, консоли помогают прогрессу — какой смысл придумывать хитрые упрощения типа checkerboard rendering с четвёртой плойки и новые трюки для снижения потребления ресурсов, если бы всё можно было решить, просто подняв системные требования?

1

Та ни.

Передача данных в видеопамять всегда была через буфер объёмом 256 мб. Сейчас придумали Resizable BAR, который мало где работает, но всё равно, передача данных в видеопамять — это очень медленный процесс. Настолько, что в некоторых случаях считать на CPU быстрее — настолько медленное аллоцирование памяти.

Cuda — проприетарная технология, которой нет на половине консьюмерских гпу. И всё равно выпускали ролики с PhysX, на которые я облизывался.

CUDA — стандарт в обучении нейросетей. Видеокарты от AMD там тупо никому не нужны. Just sayin'.

Я математик по профессии, работаю в сфере. Так что *кое-что* о нейросетях я знаю :)

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

Самым очевидным было бы предположить, что архитектурой нейронной сети, лежащей в основе DLSS была бы генеративно-состязательная сеть, т.н. GAN. В основе сети лежат два модуля — так называемый генератор и так называемый дискриминатор. Генератор генерирует вывод по некоторым входным данным (в нашем случае, входными данными будут motion-вектора, картинка в более низком разрешении, возможно, какая-то ещё информация от движка игры, например, локация или ещё что-то), а дискриминатор осуществляет "контроль качества" — ему подаются картинки и он пытается понять, поданная ему картинка была сгенерирована или была взята из датасета с эталонами. Таким образом, наша сеть как бы сама себя обучает. Результат — генератор генерирует фотореалистичные картинки (thispersondoesnotexist.com), достойно звучащую музыку (https://www.thismusicvideodoesnotexist.com/) или как раз апскейл некоторого изображения.

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

Возможно, кстати, некоторые ранние версии DLSS использовали именно такой подход, но с выходом DLSS 2.0 были новости о том, что необходимость обучать DLSS для каждой конкретной игры отпала. В случае GAN мы должны чётко понимать, какой датасет мы будем скармливать нейросети для обучения дискриминатора и генератора (датасет с реалистичными изображениями будет работать хуже для игр вроде Sea of Thieves, датасет с мультяшными будет работать хуже для игр вроде Call of Duty: Warzone), так что мне кажется, что подход используется всё же другой.

Другим вариантом, уже заточенным конкретно под апскейл видео, является FR VSR. (https://arxiv.org/pdf/1801.04590.pdf). Смысл подхода заключается в ансамбле из двух сетей — одна сеть вычисляет так называемый оптический поток (изменение между двумя изображениями) между апскейлнутым изображением и следующим после него изображением, вторая на основе оптического потока, предыдущего изображения, информации о краях на картинке и прочего уже производит апскейл. 

В случае DLSS у нас есть очень много информации, которую мы можем использовать для апскейла. Во-первых, мы имеем motion-вектора, то есть вычислить оптический поток мы можем гораздо точнее, чем с помощью state-of-the-art классических или нейросетевых методов. Во-вторых, у нас есть датасет от самой Nvidia с рендерами кадров игр, поддерживающих DLSS, прямо в драйверах видеокарты — об этом неоднократно писали в новостях. Это поможет нам восстановить больше информации и получить апскейл гораздо более высокого качества.

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

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

DLSS не использует сглаживание в привычном нам смысле. Внутри работает нейронная сеть, которая по нескольким кадрам и motion-векторам может "предсказать" субпиксельную информацию. Таким образом, оно производит не только апскейл, но ещё и сглаживает картинку - ведь сглаживание - это и есть восстановление субпиксельной информации.

FSR в свою очередь использует CAS, Contrasе Adaptive Sharpening, для того, чтобы восстановить детали в текстурах. Этот подход тоже неплох, судя по результатам из демки, ссылку на которую вы можете найти в моём комментарии выше, но он не способен достать из кадра ту информацию, которой там, очевидно, нет. Поэтому FSR *никогда* не сможет сравниться по качеству с DLSS.

Ну и насчёт неотрубаемого сглаживания: как я и написал в том комментарии, сглаживание неотрубаемо как раз в FSR. Так что весь этот комментарий не имеет вообще никакого смысла.

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

Отличный анализ, но, к сожалению, полностью неправильный.

Дело в том, что AMD FSR апскейлит уже сглаженную с помощью TAA картинку. Оно использует модификацию фильтра Ланцоша (https://en.wikipedia.org/wiki/Lanczos_resampling), который позволяет сделать ресемплингом изображения. Если не применить какой нибудь тип сглаживания, то лесенки тоже будут апскейлиться и картинка будет хоть и в высоком разрешении, но всё ещё с лесенками.

Таким образом, пайплайн такой:

Рендер картинки -> TAA -> FSR -> Пост-обработка (шум, виньетка, прочее) -> Интерфейс

Сравнивать FSR и DLSS вообще бессмысленно. FSR использует классические алгоритмы (фильтр Ланцоша для обработки одномерных сигналов был изобретён ещё в 1970-х, кажется, а двухмерная генерализация для обработки картинок довольно тривиально выводится из одномерной), DLSS - нейронные сети. FSR использует только один кадр, оставляя сглаживание на откуп TAA, DLSS - несколько. FSR умещается в простой шейдер для постобработки, который просто надо применить в пайплайне, DLSS использует комплексный подход, использует motion-векторы и требует интеграции в каждую конкретную игру.

И, наконец, хотелось бы сказать, что оно даже в FHD на значении качества Ultra Quality даёт очень приличные результаты с огромным приростом производительности. На встроенной в мой ноутбук видеокарте я получил прирост в 20 кадров на сцене в ангаре из демки на сайте разработчиков, на внешней GTX 1050 прирост составил почти 80 кадров. Я считаю, это успех.

Если интересно, можешь проверить сам. Скачай вот тут вот демку, подёргай за слайдеры и посмотри что из этого получится.

https://gpuopen.com/fsr-announce/

Аудитория ДТФ снова показала, что не очень понимает, зачем нужны видеокарты.

1

Это безумно дёшево. Сбербанковский кристофари стоит 5750 рублей в минуту, а тут — всего 156 рублей. 

Для компаний, которым срочно надо что-то посчитать, это очень выгодное вложение средств.

4