q3d

Ускорение Adobe Photoshop CS5: какие железки на что влияют

May 27, 2010 21:03

В ответ на этот комментарий к моему посту про апгрейд решил написать несколько слов касаемо ускорения Adobe Photoshop CS5. Ниже расскажу какое именно железо его ускоряет, в каких операциях, что сделать для увеличения скорости всего процесса.

Подчеркну, что речь идёт о конкретно моём случае, когда на компьютере ведётся обработка стандартных фото - пейзажей, портретов, предметных снимков.  Автор комментария высказал версию, что для Photoshop нет смысла апгрейдить процессоры, но есть смысл проапгредить видеоподсистему, в частности, использовать две видеокарты в режиме SLI. Я с этим не согласен, в рамках своего понимания того, как работает Photoshop и что чем в нём ускоряется. Ниже буду пояснять какие факторы и когда влияют на работу этого фоторедактора.

Текста много, продолжение под катом.

Три основных сегмента обработки, которые можно ускорить

Итак, прежде всего нужно учитывать, что в моём случае (и большинстве других) работу в Photoshop CS5, условно, можно разделить на три основных сегмента. (1) - работа в интерфейсе с инструментами, (2) - выполнение фильтров, (3) выполнение скриптованных операций над массивом фотографий.

Поговорим про сегмент (1). Adobe Photoshop CS5 действительно поддерживает ускорение ряда операций на GPU видеокарты за счёт поддержки OpenGL. Почитать об этом можно на сайте Adobe. Но две видеокарты в SLI (по сравнению с одной) не дадут Photoshop CS5 значительных преимуществ - производительности даже одной современной мощной видеокарты достаточно для значительного ускорения масштабирования, зума, вывода всех этих особых "ускоренных" пипеток и тому подобного. При этом сегменты (2) и (3) видеокарта просто не ускоряет - движок Photoshop CS5 не передаёт эти функции на GPU. Используя аппаратное ускорение мы можем говорить об улучшении плавности основных операций в интерфейсе - Photoshop CS5 быстрее, мягче и лучше масштабирует картинку на экране, лучше вращает, виден эффект от современной видеокарты при использовании healing brush. За счёт этого фотограф меньше времени тратит на интерфейс, больше на процесс. Лучше виден промежуточный результат.

Сегмент (2) это фильтры. Всевозможные наложения, искажения, удаления пылинок, резкость, размытие и т.д. Все эти операции очень и ресурсоёмкие, требуют огромного количества памяти. И вся эта обработка производится на стороне процессора и основной оперативки. Если вы возьмёте какой-нибудь тестовый 20-мегапиксельный снимок, заскриптуете исполнение на нём десятка фильтров и сравните скорость выполнения на компьютере со слабой видеокартой и мощной, но с одинаковыми остальными компонентами, итог будет практически идентичным. С эволюцией фильтры в Photoshop стали лучше использовать многоядерность. Для ускорения этого сегмента обработки фотографий Photoshop CS5 нужен мощный процессор. И многоядерность тут тоже не помешает. Насколько в этом сценарии четырёхядерный процессор типа Core i7 975 отличается от шестиядерного Core i7 980x вы можете прочесть в нашей статье на THG.ru: обзор Core i7 980x. Применительно именно к аппаратному ускорению Photoshop понятнее всего этот график:



Мы на нём видим, что в скриптованном сценарии наложения на один и тот же снимок четырёх фильтров (Radial Blur, Shape Blur, Median, Polar Coordinates) мы получаем ускорение на 27%. Ощутить насколько это приличное ускорение вы сможете не столько тогда, когда нужно что-то делать с одним снимком, а когда вам приходится пустить в обработку по типовому сценарию сотню кадров. Но и конечно, вы меньше времени будете тратить с момента нажатия кнопки "применить фильтр" до выполнения задачи.

Третий сегмент (3) это выполнение скриптованных операций над массивом снимков. Здесь роль играет и процессор (в задачах описанных в сегменте (2), когда на снимок последовательно накладывается несколько фильтров), и дисковая подсистема. Объясню почему. Например, мне не так давно нужно было после ретуширования перевести в несколько типоразмеров JPEG (с разным подшарпливанием, логотипами и т.д.) около 200 фотографий, сделанных Canon 5D Mark II. Поясню обычный мой процесс - после съёмки камерой фото заливаются в Photoshop Lightroom, далее доводятся до промежуточной кондиции и экспортируются на RAID-массив из четырёх жёстких дисков в формате TIFF, при 16 бит цвета на канал, в полном разрешении 21 мегапиксел. Каждая  такая фотография занимает на жёстком диске 120 мегабайт. Двести фотографий занимают 24 гигабайта.

Если мы возьмём скорость современного винчестера за 110 мегабайт/с в начале диска и 60 мегабайт в конце, то получим что просто чтобы скопировать этот объём данных в память нам потребуется от 218 до 400 секунд, в зависимости от того, в каком месте диска эти фото расположились. С производительностью SSD-диска на чтении в 250 мегабайт в секунду нам на ту же операцию потребуется 96 секунд. Под копированием в память я подразумеваю открытие снимка графическим редактором. И давайте ещё не забывать, что до их открытия в Photoshop CS5, эти снимки записывались на жёсткий диск из Lightroom при экспорте. Запись тоже занимает время.

Кстати, скорость моего дискового массива RAID как раз близка к скорости SSD, за счёт того что в нём используется сразу четыре диска в параллели, в режиме RAID0. Поскольку это массив для промежуточного хранения, я не заморачиваюсь по его надёжности. После обработки фото с него переносятся в другое место, а финальные результаты на массив вообще никогда не попадают. Последнее, кстати, ещё один фактор оптимизации скорости - скажем, при пакетной обработке я беру исходные данные TIFF с массива, а записываю результирующие JPEG на второй HDD, чтобы массиву не нужно было одновременно проводить операции чтения и записи.

Вывод
Суммируя всё выше сказанное: ускорение работы Photoshop происходит на трёх уровнях - ускорение интерфейса и тем самым работы фотохудожника, ускорение фильтров и иных математических процедур, ускорение дисковых операций. За первое отвечает мощная современная видеокарта, за второе процессор (и желательно много-много памяти), за третье жёсткий диск. При этом все три уровня могут проседать из-за недостаточного количества >>>оперативной памяти<<<, когда системе придётся "свопать", то есть использовать вместо оперативки файл подкачки.

Общий вывод: система для Photoshop CS5 должна прежде всего иметь достаточно оперативной памяти, затем по важности стоит процессор, на третьем месте видеокарта, и наконец дисковая подсистема. При этом выпячивание одной из этих компонент, например установка SLI вместо одиночной видеокарты, может ничего не дать. Точно также, очень мощный процессор при тормознутом жёстком диске и минимуме оперативки - бесполезен. И конечно, очень быстрая дисковая подсистема становится критична в том случае, если вы работаете со снимками в TIFF16, как это делаю я, а не с JPEG.

Надеюсь, это объясняет почему в моём компьютере два 4-ядерных процессора, 12 гигабайт оперативной памяти, тройная дисковая подсистема (основной системный диск, быстрый массив для исходников, диск временного хранения итогового результата) и видеокарта (с недавних пор) Radeon HD 4890 с гигабайтом видеопамяти, а не SLI, четырёъядерный процессор и один быстрый жёсткий диск?

Я опытным путём убедился, что именно подобная конфигурация компьютера может сберечь часы (!) работы, когда речь идёт о скриптованных операциях над тысячами фотоснимков. Ведь иногда нужно отдавать заказчику не сто, не двести, а пару тысяч фото, и приходится стоять перед выбором, оставлять ли компьютер на ночь хрустеть или пойти всего то поужинать, а потом переслать готовый результат.

Наконец, последний скриншот для тех, кто считает что многоядерный процессор ничего не ускоряет в Adobe Photoshop Lightroom. На снимке экспорт 59 файлов в JPEG после базового пост-процессинга. Обратите внимание на загрузку четырёх ядер, это наш редакционный десктоп на Core 2 Quad Q6600 занимается выводом снимков, сделанных на 8-мегапиксельной Canon 30D:



А пиши я этот пост дома, мог бы выложить скриншот того, как с той же силой загружено 8 ядер :) На них процесс экспорта делается куда как быстрее.
Что ещё посмотреть про ускорение Photoshop CS5
Тем кто хорошо понимает английский рекомендую ещё посмотреть видеоролик от nVidia, где наглядно показывается польза от аппаратного ускорения функций Photoshop СS5 на GPU и демонстрируется какие функции без этого ускорения недоступны.


Adobe Photoshop CS5 и ускорение GPU

Наконец, вот перечень видеокарт, на которых работает ускорение в CS5.

photoshop, ускорение, фото, photoshop cs5, обработка, thg

Previous post Next post
Up