Идея этого краткого материала-рассуждения родилась из одного чудесного факта. В процессе оптимизации Premiere Pro и After Effects, и уже после того, как от меня уехала ASUS TUF GeForce RTX 3090 24GB (обзор делал мой коллега Денис Зайченко здесь) я узнал, что из последнего с крайним обновлением пропала возможность оптимизировать программу под многоядерные процессоры — распределять рендер между потоками CPU.

Это объяснялось тем, что Adobe медленно, но верно переходит с оптимизации под CPU на оптимизацию GPU. Это, если что, называется GPGPU, или General Purpose GPU. И с оптимизацией под это дело могут возникнуть громадные проблемы, будь у вас хоть Intel Xe Graphics, хоть ASUS RTX 3090 24GB!



Основы GPGPU

Казалось бы, проблем быть не должно — ведь GPU в современной версии состоит в том числе и из т.н. потоковых процессоров. У NVIDIA они, к примеру, называются ядра CUDA. И эти процессоры работают по тому же принципу, что и ядра привычного CPU.

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

Видеоматериал о GPGPU

Не хотите читать? Смотрите видео:


Аппаратное ускорение

И, скажем, у Premiere Pro обработка эффектов Lumetri на процессоре — да что там, простой энкодинг-декодинг H264 — занимает дикий кусок времени. И это нормально, разные задачи под разное железо выполняются с разной эффективностью. Собственно, даже крошечный аппаратный ускоритель видеообработки в iGPU делает настоящие чудеса, меняя скорость рендера порой многократно!

А учитывая растущую мощность GPU — скажем, у ASUS TUF RTX 3090 целых 24 гигабайта видеопамяти и более десяти тысяч ядер CUDA — вполне логично, что приложения оптимизируются под такое дело.

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

Память видеокарты забивалась под ноль, процессор в рендере почти не участвовал… как и оперативка. А нюанс в том, что ОЗУ у меня 128 ГБ.

И, для примера, в Premiere Pro половина оперативки простаивает, процессор занят наполовину, декодер-енкодер видюхи расслаблен, зато VRAM забита в зюзю и производительность почти на нуле.

Совместная работа

Хуже всего происходит при рендере проекта со смешанными кусками — связанными композициями After Effects, например. Вот там видеопамять забивается в ноль почти сразу, без предупреждения.  И для увеличения скорости рендера необходимо закрывать все поедающие VRAM приложения. Вроде тех же Premiere Pro и After Effects! И оставлять, скажем, только Media Encoder.

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

И да, безусловно, VRAM быстрее, чем DRAM, и порой значительно. Однако в обзорах Transcend и не только я повторял — для рабочих задач лучше много медленной памяти, чем крошечный кусочек супер-быстрой.

Если программа умеет только забивать память, но не освобождать её максимально эффективно — то скорость памяти не поможет. И получается, что в моём ПК для Adobe Creative Suite лежит целая прорва ОЗУ… которую было бы неплохо использовать при рендере.

Читайте также: Обзор ноутбука ASUS ROG Zephyrus G14 2021 — восторг без вау-эффекта

Но нет — это возлагается практически полностью на несчастную GTX 1080 Ti, где объём памяти более чем в ДЕСЯТЬ РАЗ меньше! И можно сказать, мол, есть же вроде те же RTX, вроде той же модели ASUS TUF RTX 3090, которые тянут NVLink с объединением памяти! Но тут снова нюанс.

За стоимость двух RTX 3090, то бишь — за 2x $2000 (MSRP уже не считаем, это не соответствует современной действительности) мы получаем… 24 ГБ памяти. Которую ещё и не факт что можно будет использовать при рендере! Да, единицы программ эту функциональность реализуют. В основном — моделирование и научные вычисления. Да и настройка там лютая дичь.

А за $4000 мы можем забить плашками DDR4 с ECC все каналы памяти даже AMD Threadripper! 256 ГБ будет в ХУДШЕМ СЛУЧАЕ! Да ещё и с коррекцией ошибок, чего нет у RTX 3090.

Единственная причина, которую я вижу, и которая может остановить перед оптимизацией GPU как вычислителя, а RAM как буфера — задержка между ОЗУ и видеокартой будет слишком большой, чтобы перекрыть бонусы от объёма. С другой стороны, нехватка VRAM всё равно процесс замедляет. А RAM хотя бы добавить можно, если что!

Итоги по GPGPU

В этом и опасность. Даже если у вас ASUS TUF RTX 3090, которую вы специально купили под задачи GPGPU, вы всё равно можете упереться в ботлнек, которого можно было бы избежать. Если бы программы чаще использовали RAM вместо VRAM. Я не представляю себе, как это можно изменить — но если тенденция будет продолжаться, то это будет и вправду тупиковое будущее.

Цены на ASUS TUF RTX 3090 24GB

Украина:



Rozetka

Все магазины

Россия:



Все магазины

Post Проблема «CPU против GPGPU»: Тупиковое будущее? На примере ASUS at Root Nation.