Я_Нео! (sghpunk) wrote in ru_gimp,
Я_Нео!
sghpunk
ru_gimp

GIMP для Windows оптимизированный под AMD Sempron K8

Как любитель открытого ПО, для обработки фотографий я пользуюсь связкой программ GIMP + Ufraw. И так же, как многие пользователи этого ПО, знаю о его невысокой скорости работы в сравнении с Photoshop + Lightroom.  
Как компьютерщика, меня заинтересовала возможность пересобрать GIMP с нужными мне плагинами, оптимизировав сборку под конкретный процессор, необходимый мне (AMD Sempron K8).
Сразу скажу, что оптимизация для AMD Sempron K8 на этом самом Sempron-е дала прирост производительности от 36% до 50%.
После чего так же было решено протестировать полученную сборку на других доступных процессорах.
На P4 Prescott прирост производительности составил от 12% до 38%

На Intel Atom N270, как ни странно, все мои и стандартные сборки работают с примерно одинаковой скоростью.

Кому интересно, пробуйте, скачать сборку GIMP 2.6.10 для многоядерных систем можно здесь: http://upload.com.ua/get/901904597/  
Для одноядерных здесь: http://upload.com.ua/get/901906248/.
Чтобы установить сборку, достаточно распаковать её в любую пустую папку (запускать gimp.exe).
Есть маленький минус, не получилось собрать библиотеку для DirectInput, но т.к. я ей не пользуюсь, то не стал напрягаться. Думаю, что можно подложить библиотеку libcontroller-dx-dinput.dll из стандартной сборки, но не проверял.

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

Детали для интересующихся.
Тестировались сии сборки относительно выложенных на сайте GIMP-WIN.
Тестирование производилось на Windows XP SP3.
Тестировались функции:
Selective Gaussian Blur (radius = 20, delta = 50)
Motion Blur (Type = Zoom, Length = 5, Blur Outward)

Собрано всё с использованием компилятора gcc:

$ gcc --version
gcc.exe (GCC) 3.4.5 (mingw-vista special r3)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Параметры сборки GIMP:

Extra Binaries:
gimp-console: yes
gimp-remote: no (not enabled)

Optional Features:
D-Bus service: no
Language selection: yes

Optional Plug-Ins:
Ascii Art: no (AA library not found)
Help Browser: no (WebKit not found)
LCMS: yes
JPEG: yes
MNG: yes
PDF: Using PostScript plug-in (libpoppler not found)
PNG: yes
Print: yes
PSP: yes
Python: no
sсript-Fu: yes
SVG: no (librsvg not found)
TIFF: yes
TWAIN (MacOS X): no
TWAIN (Win32): yes
URI: yes (using GIO/GVfs)
Windows ICO yes
WMF: yes
XJT: no (not built on Windows)
XPM: yes

Plug-In Features:
EXIF support: yes
GNOME UI: no (libgnomeui-2.0 not found)
GNOME keyring: no (gnome-keyring-1 not found)

Optional Modules:
ALSA (MIDI Input): no (alsa support disabled)
Linux Input: no (linux input support disabled) (HAL support: no)
DirectInput (Win32): no
Color Correction: yes
Soft Proof: yes


Параметры оптимизации gcc:
-mtune=k8 -march=k8 -msse3 -m80387 -mfpmath=sse -O3


Ко всему прочему для пущей оптимизации были пересобраны все библиотеки для GIMP и пара любимых плагинов, а именно:


atk-1.28.0
babl-0.1.0
bzip2-1.0.5
cairo-1.8.10
dlfcn-win32-r11
exiv2-0.20
expat-2.0.1
fontconfig-2.8.0
freetype-2.3.12
gegl-0.1.0
gettext-0.17
gimp-2.6.10
glib-2.22.2
"gtk+-2.16.6"
gtkimageview-1.6.4
intltool-0.40.6
jpeg-7
lcms-1.19
libexif-0.6.17
libmng-1.0.10
libpng-1.4.2
libwmf-0.2.8.4
libXpm-3.5.8
pango-1.28.0
pixman-0.16.2
tiff-3.9.1
ufraw-0.17
wavelet-decompose-0.1.2
wavelet-denoise-0.3.1
wavelet-sharpen-0.1.2
zlib-1.2.3

Спасибо за внимание, пользуйтесь на здоровье ;)
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

  • 17 comments
Спасибо, попробуем)
Отпишите тогда )
В общем, на Висте x86 и Pentuim DualCore E5200 разницы не увидел. Наверно, этот проц родственник Атому :)
И при загрузке ругается, как у fukurokudzu.
Правда, я тестировал не Gaussian Blur, а Unsharp Mask. Мне именно его скорости часто не хватает.

А вот с набором для сборки поковырялся бы. Хотел однажды собрать Gimp 2.7. Находил некие инструкции по сборке под Windows, но все ссылки на файлы оказались уже мёртвыми...
Уншарп маск протестирую у себя, интересно.
Насчёт ошибки - попробуйте просто распаковать в пустую папку и запустить gimp.exe или удалить всё из той, куда установлен оригинальный и распаковать опять же в пустую.

Набор для сборки выложу чуть позже. )
У меня Уншарп маск выполняется быстрее примерно в два раза. На П4 Прескотт.

Но есть интересная особенность, случайно заметил, что на стандартной версии 2.6.8, Уншарп маск выполняется ещё быстрее, чем на моей оптимизированной... Странно. Что-то они в 2.6.10 сломали, наверное...
Выложил набор для сборки, читайте файлик build/readme.txt, основное написал, в остальном - разберётесь )
http://upload.com.ua/get/901922432/
спасибо, попробую дома на 925-м феноме.
Расскажете, как оно? )
как раз стремительно укачиваю. loading, plz wait...
ну в общем и целом всё очень круто и шустро, существенных багов пока не заметил. но!

  

вылазит дважды во время загрузки. win7 x64, распаковывал с заменой в папку гимпа.
Попробуйте просто распаковать в пустую папку и запустить gimp.exe или удалить всё из той, куда установлен оригинальный и распаковать опять же в пустую.

Так прирост скорости, я так понял, есть?
affirmative, прирост есть. правда пока чисто субъективный, никаких замеров я не проводил, т.к. для этого потребуется две копии гимпа и некоторое количество свободного времени.

что касается установки, то ставил я на вчера поставленный гимп на вчера поставленную венду с дефолтными настройками. но я попробую, конечно.
-march=k8 -mfpmath=sse -O3 можно сделать просто так, остальное избыточно
так же крайне осторожно с -03 и ещё я бы рекомендовал -fomit-frame-pointer
Как вариант можно ещё поиграться с -ffast-math и векторизацией
-msse3 точно не избыточно, т.к. просто -march=k8 не включает в себя добавление инструкций для sse3.
Насчёт -ffast-math, в мануале пишут, что она очень ненадёжна, решил не трогать. И так оно при малейшем шаге в сторону криво компилится )).

А -fomit-frame-pointer в мануале пишут, что включено при -O3.

Остальное может и избыточно... Но я его включил чтобы переназначить поверх, а то есть умные приложения, определяют процессор (а в МинГВ определяют его неправильно) и добавляют опций к ГЦЦ.

А что насчёт векторизации?
Ender грозится официальные сборки в будущем делать с -O2 -momit-leaf-frame-pointer
Да, на атом работать быстрее не захотел... :( К сожалению...
Собирал вот так: -march=prescott -fomit-frame-pointer. -mmmx -msse -msse2 -msse3 -mssse3 -mfpmath=sse
Ubuntu 10.04 Atom N270
Gimp 2.7.1
Да там как ни собирай - одинаково ... Хотя странно.