МЛ и ДЛ, например. В 3090 всего лишь 24 гига видеопамяти, что не особо дофига для особо жирных моделей, а в M1 Ultra — до 128 гигов Unified Memory. Те же трансформеры ооооочень много памяти кушают, а такая машинка как Mac Pro за всего то 8к долларов это буквально подарок — аналог от нвидии будет стоить сильно дороже и доступен обычным смертным не будет.
Ну я прост не знал, потому и предположил :D
Совершенно точно нет.
Не стоит множить сущности без необходимости. Но раз нет, так нет.
Так это проблема русской версии, не?
Да не то чтобы это была проблема вообще, имхо. В русской версии он говорит "Хош стих?" и это довольно хорошо подходит под чутка быдловатую личность Геральта.
Ну, слушай, Геральт же не Лютик, я вообще сомневаюсь, что он знает что такое лимерик. Так что тут просто для красивого словца сказано.
И потом, в русской версии же всё равно не было сказано слово "Лимерик".
Оригинал тут и правда смешнее, субверсия, хуё-моё.
Хороший прокат
...
Я в очередной раз поражаюсь фантастической самоуверенности и абсолютной необразованности пользователей дтфа.
Когда мы переносим данные с хоста на девайс, оно идёт сначала в вышеупомянутый буфер, а только потом уже распределяется туда, куда надо — в регистры, в глобальную память, в shared memory всех ALU блока, в текстурную память, etc.
По крайней мере, так было год назад, когда я работал с вычислениями на CUDA и пытался разобраться в Vulkan. Мб сейчас что-то поменялось, если так, то просвети, умник, блядь.
Раньше надо было расставить источники света, расставить предметы, которые светят, показать, какие предметы отбрасывают тени, а какие не отбрасывают, Global Illumination, Baked In Lightning, нарисовать кубмапы для отражений...
Ну да. Вулкан вот свободный, OpenGL свободный. А у DirectX половина рантайма несвободна.
Проприетарное? Проприетарное. Опирается на проприетарное железо? Опирается.
Ну и потом, если делать игру, опираясь только на рт, то количество работы художников уменьшится вчетверо.
Господи, бред какой. Наоборот, консоли помогают прогрессу — какой смысл придумывать хитрые упрощения типа checkerboard rendering с четвёртой плойки и новые трюки для снижения потребления ресурсов, если бы всё можно было решить, просто подняв системные требования?
Ладно. Рейтрейсинг.
Та ни.
Передача данных в видеопамять всегда была через буфер объёмом 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 кадров. Я считаю, это успех.
Если интересно, можешь проверить сам. Скачай вот тут вот демку, подёргай за слайдеры и посмотри что из этого получится.
Аудитория ДТФ снова показала, что не очень понимает, зачем нужны видеокарты.
Это безумно дёшево. Сбербанковский кристофари стоит 5750 рублей в минуту, а тут — всего 156 рублей.
Для компаний, которым срочно надо что-то посчитать, это очень выгодное вложение средств.
ML, DL. Machine Learning, Deep Learning.