Идея этого краткого материала-рассуждения родилась из одного чудесного факта. В процессе оптимизации 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
- Все магазины
Россия: