Качественное ускорение работы в новом Photoshop CS4

Всего 73 сообщ. | Показаны 21 - 40
Re[maslm7]:
Цитата:
от: maslm7
Всё что можно раскидать по сотне процессоров и исполнять параллельно. Например, самое простое для переноса на ускоритель: поворот и уменьшение(увеличение)


Я вообще про параллельность не спрашивал, я спросил, что будем пихать в ускоритель от НЕТ ВИДЕО.

Цитата:

от:maslm7
Это вы о чем вообще, какие "до" и "после"?

Если про реализацию, то обычно в подобных случаях пишутся разные реализации одной и той же функции, а конкретная выбирается в зависимости от настроек.

Подробнее


Я про докосмическую эру и посткосмическую...
Вы предстваляете сегодняшний процесс написания коммерческого софта ? Никто не даст вам делать по 2 функции. Вы не понимаете сути, это не адаптация с/без, это 2 принципиально разных алгоритма ( особенно учитывая архитектуру и принципиально другие сферы применения процессоров), иначе нафиг его ускорять то ? Проще именно параллелить на 4 ядра, да и лишнее ядро дещевле лишнего ускорителя..
Re[Gregory S. Linschitz]:
Цитата:
от: Gregory S. Linschitz
И еще так запихать, что если он софтверный ( типа чистА драйверный ), что бы все не померло.


Чисто софтверный честно сознается в списке битиков поддерживаемых фич что нишиша-то он не умеет после чего будет принято здравое решение им не пользоваться.

Ну не знаю, Вы что - никогда 3D Mark какой-нибудь не видели? Он там честно сообщает всю подноготную про карту через оные битики поддерживаемых расширений. Ну а нынче и того проще - скажем карта или заявляет что умеет хардверно 100% от DirectX 10.1 скажем, или ей придется заявлять что она умеет только 10.0, а не умеет и тот - 9.0с скажем :D
Re[Saturn]:
Цитата:
от: Saturn
Чисто софтверный честно сознается в списке битиков поддерживаемых фич что нишиша-то он не умеет после чего будет принято здравое решение им не пользоваться.


Опять двадцать пять.... вы задумались над тем что написали ? А фот уншарпен маск мы делать не будем у вас карта неправильная, так ?


Цитата:

от:Saturn
Ну не знаю, Вы что - никогда 3D Mark какой-нибудь не видели? Он там честно сообщает всю подноготную про карту через оные битики поддерживаемых расширений. Ну а нынче и того проще - скажем карта или заявляет что умеет хардверно 100% от DirectX 10.1 скажем, или ей придется заявлять что она умеет только 10.0, а не умеет и тот - 9.0с скажем :D

Подробнее


И что мне от вашего 1, 2...., 9.0с, ... 10.1, .... 34765873.34xxx DirectX если мне нужен высококачественный Lens Blur ? с каких это пор ускорители озобочены 2д фичами ? Даже всягие 3Д типа 3Д макс пользуют ускорители, только для preview. так что в фотографии делать с этими пародиями на графику... :-(
Re[Gregory S. Linschitz]:
Цитата:

от:Gregory S. Linschitz

Я вообще про параллельность не спрашивал, я спросил, что будем пихать в ускоритель от НЕТ ВИДЕО.
....
Проще именно параллелить на 4 ядра, да и лишнее ядро дещевле лишнего ускорителя..
...
И что мне от вашего 1, 2...., 9.0с, ... 10.1, .... 34765873.34xxx DirectX если мне нужен высококачественный Lens Blur ? с каких это пор ускорители озобочены 2д фичами ? Даже всягие 3Д типа 3Д макс пользуют ускорители, только для preview. так что в фотографии делать с этими пародиями на графику... :-(

Подробнее


Похоже кто-то кого-то не понял, возможно я недостаточно правильно объяснил тему.
Забудьте про понятие "ускоритель", 3D, 2D, DirectX и OpenGL, обсуждаемая технология к ним не имеет никакого отношения. В отличие от более старых, новые видеокарточки (серии 8xxx и выше) дают не просто лишнее одно ядро, а несколько десятков (более сотни) ядер на которых может исполняться довольно произвольный программный код также как и на обычном CPU в компьютере. Не без некоторых ограничений, например, не поддерживается рекурсия, из вещественных типов только float, double обещают в новых видеоплатах этим летом, но в целом более-менее любой. Именно возможность писать программы на таких ядрах и лежит в основе обсуждаемого ускорения Photoshop.

То есть, несколько упрощенно говоря, берётся и пишется программа на языке Си (C++ слишком много оверхеда требует и в данном случае снизит производительность), компилируется в ассемблер этих процессоров и исполняется на них. Это не функции DirectX, это программный код, работающий не на CPU, а на GPU, то есть о GPU можно думать как о сотне CPU.

Цитата:
от: Gregory S. Linschitz
Вы предстваляете сегодняшний процесс написания коммерческого софта ? Никто не даст вам делать по 2 функции.
Странная постановка вопроса. Менеджеры вполне могут решить, что сокращение времени работы приложения в несколько десятков раз, даст продукту достаточно весомые конкурентные преимущества, чтобы оплатить работу по написанию двух функций.

Тем более, что существенно разного кода на самом деле и не понадобится, если его распараллелили на сотню процессоров в GPU, потребуется совсем минимальные переделки и чтобы работать ему на нескольких ядрах CPU. Об этом, кстати, прямо говорят представители NVIDIA и даже имеются планы по выпуску библиотеки эмулятора, что-то наподобие эмуляции FPU в старых процессорах до i486DX (когда математический сопроцессор был отдельно), тогда разные функции вообще не потребуются.
Re[maslm7]:
Цитата:

от:maslm7
Похоже кто-то кого-то не понял, возможно я недостаточно правильно объяснил тему.
Забудьте про понятие "ускоритель", 3D, 2D, DirectX и OpenGL, обсуждаемая технология к ним не имеет никакого отношения. В отличие от более старых, новые видеокарточки (серии 8xxx и выше) дают не просто лишнее одно ядро, а несколько десятков (более сотни) ядер на которых может исполняться довольно произвольный программный код также как и на обычном CPU в компьютере. Не без некоторых ограничений, например, не поддерживается рекурсия, из вещественных типов только float, double обещают в новых видеоплатах этим летом, но в целом более-менее любой. Именно возможность писать программы на таких ядрах и лежит в основе обсуждаемого ускорения Photoshop.

То есть, несколько упрощенно говоря, берётся и пишется программа на языке Си (C++ слишком много оверхеда требует и в данном случае снизит производительность), компилируется в ассемблер этих процессоров и исполняется на них. Это не функции DirectX, это программный код, работающий не на CPU, а на GPU, то есть о GPU можно думать как о сотне CPU.


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

Тем более, что существенно разного кода на самом деле и не понадобится, если его распараллелили на сотню процессоров в GPU, потребуется совсем минимальные переделки и чтобы работать ему на нескольких ядрах CPU. Об этом, кстати, прямо говорят представители NVIDIA и даже имеются планы по выпуску библиотеки эмулятора, что-то наподобие эмуляции FPU в старых процессорах до i486DX (когда математический сопроцессор был отдельно), тогда разные функции вообще не потребуются.

Подробнее



Давайте по порядку.

1. Оверхед С++ :-) Петросян просто отдыхает.
2. Обычный код распараллелить на сотне процессоров, эмуляторы .Net/Java от NVIDIA ?
3. Вы вообще представляете как это работает, 2 функции это в 3-4 раза дороже чем 1. Это в 3 раза больше работы программистам (код+интеграция) в 4 раза больше работы тем кто проверяет ( 2*(код+интеграция) ), кстати стадию архитекта я опустил....
4. В среднем добваление второго ядра дает 25-30% производительности, третьего это + еще 10% и так далее.... Или надо точить код под архитектуру, этого не делается даже в более дорогом и серьезном оборудовании.
5. У ФШ даже конкурентов нет на ближайшие 3-4 года, так что пункты 3 и 4 просто нереально, им это не надо. Как эксперимент да но не как рабочая версия
6. Попробуйте отниситься более критично к тому что читаете, в обзорах популярной фантастики.
7. Сейчас говорил с народом который пишет игры ( серьезно пишет ) если надо очень быстро рисовать 3Д для игр то FPU одтыхает, даже с 2-3-4 ядрами, но если надо просто 2+2 складывать с нелинейной коррекцией, то дополнительное ядро современного FPU уделает любой и даже спаренный GPU.
8. Я готов поверить, что матричные фильтры можно перенести в GPU, все понятно как оно работает, но самое главное это интерективные инструменты и отрисовка при сложении 10-100 слоев + маштабирование. А это сомнительно, потому как там все не так линейно и тривиально как в GPU привыкли.
Re[Gregory S. Linschitz]:
Цитата:
от: Gregory S. Linschitz

Опять двадцать пять.... вы задумались над тем что написали ? А фот уншарпен маск мы делать не будем у вас карта неправильная, так ?


Вы как маленький, блин :D Вы что - на фотошопе только вчера? Или Вы не видели как улучшали поддержку P4 выпустив плагин в виде нового .8bi, ускорив на P4 (но не P3) вот именно что всякие Ваши lens blur :D

Что, думаете народ не писал код "если в проце нет MMX, делать так, а если есть MMX - сяк" и то же самое про все эти многочисленные SSE?

Это их рабская работа, им за это деньги платят.

Ну так с использованием GPU то же самое - есть нормальный GPU - будут использовать, нет - перетопчутся через альтернативный код на обычном CPU.
Re[Saturn]:
Цитата:

от:Saturn
Вы как маленький, блин :D Вы что - на фотошопе только вчера? Или Вы не видели как улучшали поддержку P4 выпустив плагин в виде нового .8bi, ускорив на P4 (но не P3) вот именно что всякие Ваши lens blur :D

Что, думаете народ не писал код "если в проце нет MMX, делать так, а если есть MMX - сяк" и то же самое про все эти многочисленные SSE?

Это их рабская работа, им за это деньги платят.

Ну так с использованием GPU то же самое - есть нормальный GPU - будут использовать, нет - перетопчутся через альтернативный код на обычном CPU.

Подробнее


Плагин говоришь под новый процессор...
Я не ребенок, а ядро не плагин :-) Код под MMX и SSE генерит компмлятор, и он действительно генерит, периодически, разный код для разных процессоров. Писать такое руками..... реально интересно посмотреть на проект размера ФШ написанный руками под 3-4 проца... + виртуальный альтернативный код :-)

Re[Gregory S. Linschitz]:
Цитата:

от:Gregory S. Linschitz
Плагин говоришь под новый процессор...
Я не ребенок, а ядро не плагин :-) Код под MMX и SSE генерит компмлятор, и он действительно генерит, периодически, разный код для разных процессоров. Писать такое руками..... реально интересно посмотреть на проект размера ФШ написанный руками под 3-4 проца... + виртуальный альтернативный код :-)

Подробнее


Начинаешь играть в мысленные игры.

"проект размера ФШ написанный руками" - такого нет, а вот в директории с файлами .8bi я думаю что много что так и написано.

Разумеется компилятор генерит SSE, ибо нынче x87-stack в немилости, но это не означает что он может это сделать очень хорошо.
Re[Saturn]:
Цитата:

от:Saturn
Начинаешь играть в мысленные игры.

"проект размера ФШ написанный руками" - такого нет, а вот в директории с файлами .8bi я думаю что много что так и написано.

Разумеется компилятор генерит SSE, ибо нынче x87-stack в немилости, но это не означает что он может это сделать очень хорошо.

Подробнее


Да не начинаю я играть в мысленные игры. Скорее это ваша прироготива. Что-то там ускорят, только что именно это секрет века.

Плагины - руками ? если только кому-то надоели женщины...

Про компиляторы... ну-ну.. если ничего не помогает прочтите наконец инструкцию
Re[maslm7]:
Я может что-то не то нашел, но все новости, которые я по этой теме прочитал, как-то вскольз ссылаются на 3Д возможности фотошопа, которые и будут ускорены новой технологией. И ни слова об ускорении работы фильтров и т.п.
Re[Gregory S. Linschitz]:
Цитата:
от: Gregory S. Linschitz
Давайте по порядку.

Давайте :)

1. Оверхед С++ :-) Петросян просто отдыхает.

Ну скажите, пожалуйста, зачем на видеокарточку тащить все эти таблицы виртуальных методов, конструкторы-деструкторы
и прочую семантику, выливающуюся в совершенно лишний для выполняемой задачи код? Мало того, чтобы это было более
похоже на C++, еще нужно, хотя бы, всю стандартную C++ либу со всеми её стандартными классами. Nvidia и без того
реализовала стандартную библиотеку языка Си, что для базиса к вычислительным применениям более чем достаточно.
Хотя, никто не запрещает, если очень хочется. Кроме того, на Си пишется только код, непосредственно работающий на карточке.

2. Обычный код распараллелить на сотне процессоров, эмуляторы .Net/Java от NVIDIA ?

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

Или возвращаясь к фотографической тематике, дебайеризации RAW файла, например. Сейчас она естественным образом
делается на основе матрицы из четырёх элементов (RGGB), но никто не мешает применить матрицу ( 8 x 8 )
или даже (16x16), чтобы добиться лучшего качества изображения. В GPU это должно элементарно получиться.

3. Вы вообще представляете как это работает, 2 функции это в 3-4 раза дороже чем 1. Это в 3 раза больше работы
программистам (код+интеграция) в 4 раза больше работы тем кто проверяет ( 2*(код+интеграция) ),
кстати стадию архитекта я опустил....


Ну не так всё страшно, можно подумать, весь проект в 3-4 раза подорожает.
Тем более, что в реальности получаются не 2 функции, а одна с небольшими модификациями
и таким образом на самом деле давно пишут. А если использовать эмуляцию, то вообще строго
одна функция.

Или вот, почитайте: http://kosmoflyko.blogspot.com/2008/05/geforce-9800-gx2.html
Здесь вообще софт для томографа не поленились переписать, чтобы использовать компьютер за $5300 вместо $4.6M.

Исследовательской группе Vision Lab удалось создать компьютер
на базе четырёх двухчиповых видеокарт GeForce 9800 GX2, который при стоимости
не более $5300 способен приблизиться по быстродействию к суперкомпьютеру стоимостью $4,6 млн.,
если речь идёт о скорости обработки результатов компьютерной томографии.

Например, на построение среза изображения органа настольная система Fastra PC тратит 35,1 секунды, а
суперкомпьютер на базе 512 процессоров - 23,4 секунды. Реконструкция срезов отображается после 67,4 секунды на
суперкомпьютере, и после 52,2 секунды на системе Fastra PC.


4. В среднем добваление второго ядра дает 25-30% производительности, третьего это + еще 10% и так далее....

Это средняя температура по больнице. Многое зависит от конкретных ядер и конкретных программ. Например, для 3D рендеринга производительность с добавлением ядер растёт практически линейно и у меня на 4-х ядрах сцена считается почти точно в 4 раза быстрее, чем на одном.

Или надо точить код под архитектуру, этого не делается даже в более дорогом и серьезном оборудовании.

Делается. Там где нужен реальный результат, очень даже делается, пример с томографом я уже привёл. Но есть и более простые случаи. Например, компьютерные игры, которые выпускаются в версиях для Xbox и для PC, а уж в них действительно надо точить под совсем разные архитектуры (современный Xbox даже не x86)

5. У ФШ даже конкурентов нет на ближайшие 3-4 года, так что пункты 3 и 4 просто нереально, им это не надо. Как эксперимент да но не как рабочая версия

Вот это очень возможно. Монополизм :(

Хотя заманчиво ускорить хотя бы некоторые виды работы в десятки раз и конкуренты у фотошопа, всё-таки, имеются. Если не сделают в фотошопе, кто-то все-равно реализует. Хотя бы в виде специализированного софта, ориентированного на конкретные функции или в виде плагинов к фотошопу.

6. Попробуйте отниситься более критично к тому что читаете, в обзорах популярной фантастики.

Ну почему же сразу фантастики. Я заинтересовавшись этой технологией, взял нужную карточку и поставил nvidia cuda sdk. Там в этом sdk немало примеров программ, действительно работающих с серьёзной скоростью. В частности, imageDenoising фотографию 3000x2000 обрабатывает менее чем за секунду, визуально результат шумоподавления возникает мгновенно после нажатия клавиши. Мне понравилось :D

7. Сейчас говорил с народом который пишет игры ( серьезно пишет ) если надо очень быстро рисовать 3Д для игр то FPU одтыхает, даже с 2-3-4 ядрами, но если надо просто 2+2 складывать с нелинейной коррекцией, то дополнительное ядро современного FPU уделает любой и даже спаренный GPU.
Возможно. GPU не панацея и не 100% замена обычному компьютеру. А что такое 2 + 2 с нелинейной коррекцией?

8. Я готов поверить, что матричные фильтры можно перенести в GPU, все понятно как оно работает, но самое главное это интерективные инструменты и отрисовка при сложении 10-100 слоев + маштабирование. А это сомнительно, потому как там все не так линейно и тривиально как в GPU привыкли.

Общий подход, как я понял, это перекладывание на GPU похожих операций над большими объёмами данных. Дело не в линейности, а именно в одновремённой обработке данных. Сам код может быть и не очень тривиальным, вот кусочек исходников из примера в SDK кода для gpu-процессора в ImageDenoising:


//Find color distance between (x, y) and (x + j, y + i)
float weightIJ = 0;
for(float n = -NLM_BLOCK_RADIUS; n < = NLM_BLOCK_RADIUS; n++)
for(float m = -NLM_BLOCK_RADIUS; m < = NLM_BLOCK_RADIUS; m++)
weightIJ += vecLen(
tex2D(texImage, x + j + m, y + i + n),
tex2D(texImage, x + m, y + n)
);

//Derive final weight from color and geometric distance
weightIJ = expf( -(weightIJ * Noise + (i * i + j * j) * INV_NLM_WINDOW_AREA) );
Re[maslm7]:
Пора сворачивать этот дискусс, скажу только, то что я не верю, что из всего этого выдет что-то за пределы исследовательских лабораторий, потому как ваш пример с томогрофом отчетливо показал, что :
- В Intel - полные придурки вообще не умеют делать процессоры
- В NVIDIA - гении hardware, заранее изобрели самые крутые и гениальные процессоры
- Vision Lab ну просто гении программописания.

Далее думайте и делайте выводы.
Re[real_ratibor]:
Цитата:

от:real_ratibor
Я может что-то не то нашел, но все новости, которые я по этой теме прочитал, как-то вскольз ссылаются на 3Д возможности фотошопа, которые и будут ускорены новой технологией. И ни слова об ускорении работы фильтров и т.п.

Подробнее


Вот и я так думаю, что это все новые фичи которые в 90% никому не нужны, но важны с точки зрения маркетинга.
Re[Gregory S. Linschitz]:
Цитата:
от: Gregory S. Linschitz
- В Intel - полные придурки вообще не умеют делать процессоры


В Intel как раз с некоторых пор начали засовывать все эти SIMD в процессоры, к чему бы это? Может эти инструкции чего-то таки ускоряют? Ну так GPU тоже имеет определенные инструкции - что-то на них ложиться хорошо, а что-то и нет.

Разговаривать с Вами скучно, Вы просто вещаете дурь как советская радиоточка, уж извините
Re[Saturn]:
Цитата:
от: Saturn
... вещаете дурь как советская радиоточка...

Не надо гнать на советские радиоточки, там иногда классные аудиоспектакли шли, классика в исполнении профессиональных актёров ... а ещё суперские сказки :D
Re[OperLV]:
Цитата:
от: OperLV
Не надо гнать на советские радиоточки


А зачем на них гнать?

Они вещали "в режиме радио", спорить с ними было бесполезно, ну как вот с этим господином.

Что ему не скажи, начинает нести полную белиберду в стиле "так что в компании А одни дураки что ли / в компании Б одни гении что ли" и прочую хреноту.
Re[Gregory S. Linschitz]:
Цитата:
от: Gregory S. Linschitz
Проще именно параллелить на 4 ядра, да и лишнее ядро дещевле лишнего ускорителя..

Почему-то мне тоже так кажется, лучше-бы разобрались на 100% с существующими мощностями...
А ещё лучше, сделали бы ФШ 64битным, что-бы с Рам дискаме не заморачивацо...
Re[Gregory S. Linschitz]:
Цитата:
от: Gregory S. Linschitz
Вот и я так думаю, что это все новые фичи которые в 90% никому не нужны, но важны с точки зрения маркетинга.

Вот тянет с этим согласиться отчего-то. Видимо подталкивает общий ход дел вокруг. Вроде пива, полученного методом кристаллизации льда.
Re[Saturn]:
Цитата:
от: Saturn
Разговаривать с Вами скучно, Вы просто вещаете дурь как советская радиоточка, уж извините

Это я так понимаю предоследний аргумент ? Как у буржуйской радиоточки ? :-)
Re[Владимир Медведев]:
Цитата:
от: Владимир Медведев
Почему-то мне тоже так кажется, лучше-бы разобрались на 100% с существующими мощностями...


Это конечно хотелось бы, но фичеры важнее...

Цитата:
от: Владимир Медведев

А ещё лучше, сделали бы ФШ 64битным, что-бы с Рам дискаме не заморачивацо...


Ну вроде как обещали переписать ядро, и даже что на ВИН оно первым появиться, потому как вроде значительно меньше лопатить. Но т.к. я по сути до сих пор на CS сижу, то как-то давно не интересовался...
Вы не авторизованы

Пожалуйста, авторизуйтесь, чтоб иметь доступ к полному функционалу сайта

Обратная связь

Здесь вы можете оставить свои контактные данные, чтобы мы могли связаться с вами.