IPB

Добро пожаловать в Блоги!

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

Для удобства рубрикации используйте теги (можно выбрать как существующие, так и добавить свои) - и тогда ваш пост можно будет всегда найти по одной из тем https://www.gameru.net/tags. Также все публикации попадают в общую ленту в наших соцсетях.

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

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

 
>

Новый Резик. Его что 4a games делает?

 
 iOrange
сообщение 15.06.2020, 22:28
Сообщение #41


Половина землекопа
**************

Группа: Припаркованный аккаунт
Сообщений: 1813
Регистрация: 30.03.2010
Из: Planet Earth
Пользователь №: 13811



Цитата(Cossack-HD @ 15.06.2020, 19:48) *
Ссыль с таймкодом на всякий случай

И там ничего нет - "мы совместно с AMD заложили обратную совместимость, и она не пропадет оттуда, как это было с PS3". Ммм, ок.

Цитата(Cossack-HD @ 15.06.2020, 19:48) *
волны всё равно считаются на шейдерах

Эмм, шо? (IMG:style_emoticons/default/o_O.gif)

Цитата(Cossack-HD @ 15.06.2020, 19:48) *
От 2x8 или 4x4 - не важно, шейдеров одинаковое количество

Эмм, шо x2? (IMG:style_emoticons/default/blink.gif)

Ты пытаешься рандомно бросать умные термины чтоб выглядело типа "я в теме" ?

Что значит "волны всё равно считаются на шейдерах" ? Вот мне реально интересен смысл этой фразы.
"Размер волны" - это, грубо говоря, сколько шейдерных инстансов может одновременно обрабатывать потоковый процессор (CU/WGP). Умножаешь на кол-во таких процессоров - получаешь размер "сетки".

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

Ок?

Что произойдет если поменять "ширину" ? - Ну особо страшного в целом ничего - кол-во одновременно считающихся шейдерных инстансов все равно будет wave_size * pu_count.
Отсюда вывод - напрямую "ширина" PU на обратную совместимость не влияет.
Зачем же тогда я про нее писал? А потому что, чтоб выжать максимум перформанса, тебе надо эти самые PU загрузить, иначе простой отдельных потоков, "пузыри воздуха", и недозагруженность GPU.
Для этого надо знать "ширину" PU - чтоб ты мог посчитать "occupancy" - т.е. сколько регистровой памяти и инструкций ты можешь затолкать в шейдер, до того как планировщику прийдется туго ибо ресурсов не будет хватать.
Особенно когда ты юзаешь compute shaders, ведь там ты сам указываешь планировщику какими "кусками" ты бы хотел запускаться (что необходимо, ибо как ты там с памятью работаешь знаешь один ты).

И вот поэтому новые WGP умеют конфигурировать свою "ширину" - чтоб старые оптимизации у PS4 тайтлов не стали анти-оптимизациями.

> От 2x8 или 4x4 - не важно, шейдеров одинаковое количество
Очень важно, ибо как-раз таки "количество шейдеров" будет разное, ибо как я писал выше - играеть сильную роль фактор "occupancy".

> Другое дело - как на них разные матаны будут выжимать разный условный IPC. Тут уже мысли о 16/32/64-bit floating point
Как раз это сильно влияет на "occupancy", ибо 16 регистры меньше памяти занимают, а значит можно более "жирные" шейдеры напихать плотненько не потеряв в загрузке.
Так что прирост производительности будет именно за счет плотности загрузки, а сам IPC (как я уже писал ранее а ты игнорировал) - будет упираться в добавленную latency.
Перейти в начало страницы
 
 
 Cossack-HD
сообщение 15.06.2020, 23:48
Сообщение #42


TECHNOSLAV 80 уровня
********************

Группа: Участник
Сообщений: 4330
Регистрация: 26.01.2014
Из: Стокгольм
Пользователь №: 19142



iOrange, спасибо за разъяснение по waves и инстансы.
Под "шейдерами" в том контексте я подразумевал т.н. шейдерные блоки (у nvidia они называются - CUDA "ядрами"). Таких блоков 128 штук в 1 WGP RDNA 1. Но как я теперь догадываюсь, с точки зрения разработчика - это не особо интересно (IMG:style_emoticons/default/smile.gif)
Перейти в начало страницы
 
 
 iOrange
сообщение 16.06.2020, 00:56
Сообщение #43


Половина землекопа
**************

Группа: Припаркованный аккаунт
Сообщений: 1813
Регистрация: 30.03.2010
Из: Planet Earth
Пользователь №: 13811



Цитата(Cossack-HD @ 15.06.2020, 22:48) *
Под "шейдерами" в том контексте я подразумевал т.н. шейдерные блоки

Ну вот смотри - вот Fermi. Вот то что я называю PU (processing unit) - еще называется SM (streaming multiprocessor) - часто журнашлизды пишут "shader module" что в корне неверно.
Я потому могу нервно реагировать на обсуждения GPU где начинают смешивать шейдеры и PU. Я не с целью наехать если что (IMG:style_emoticons/default/smile.gif)

А то о чем я писал - вот возьмем GTX 580 для примеру - 16 SM по 32 ядра каждое. Я говорю - 16 PU "шириной" 32 каждое.
Это и дает 16 * 32 = 512 Cuda cores которые так любят писать на коробке.
Грубо говоря - одновременно эта видяха может 512 шейдерных инстансов считать. Если представить себе что у нас простенький пиксельный шейдер - то это 512 пикселов одновременно считаются. Остальные в очереди стоят.

Вот там вот на рисунке отдельного PU есть "register file" - это та самая память, из которой выделяются регистры (то с чем уже работают инструкции).
Вот там написано "32768 x 32" - это общее на PU. Разделим на кол-во ядер - 32768 / 32 = 1024.
Возьмем обычные векторные регистры - 4 float по 32-бит каждый в векторе = 1024 / 4 = 256.
Вот мы нашли что у нас 256 векторных регистров на ядро максимум.
Если наш шейдер вылезет за это кол-во - то мы на каждом PU запустим меньше потоков, ибо не влезем по регистровой памяти (точнее GPU умеет "разлить" регистры в память, но это ваще зашквар и сильный просед по скорости).
Это то что я называю "пузырями воздуха" - все PU (SM) вроде заняты, а ядра простаивают.
Т.е. если будет жирный пиксельный шейдер - то уже не 512 пикселей одновременно считаются, а меньше, например половина.

Это "occupancy" - показатель "занятости" ядер. Его желательно держать в 100%, но это не всегда возможно.

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

И вот такое ускорение (+ самих то ядер стало больше) и даст прирост производительности.

(IMG:https://images.gameru.net/thumb/ae1de2348def95b.png)
Перейти в начало страницы
 
 
 iOrange
сообщение 17.06.2020, 17:57
Сообщение #44


Половина землекопа
**************

Группа: Припаркованный аккаунт
Сообщений: 1813
Регистрация: 30.03.2010
Из: Planet Earth
Пользователь №: 13811



Цитата(Борфет @ 13.06.2020, 20:42) *
Да видно же было что не используют


Жду от вас официального посыпания головы пеплом (IMG:style_emoticons/default/wink.gif)
Перейти в начало страницы
 
 
 
 

 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 15.07.2020, 08:38