GIMP is an open-source image manipulaton program. This test profile will use the system-provided GIMP program otherwise on Windows relys upon a pre-packaged Windows binary from upstream GIMP.org.
The test uses the gimp installed on the system to run three different batch commands with the -b option, in the following order:
- batch-resize-image
- batch-auto-levels
- batch-unsharp-mask
The test is single threaded and all cases were run pinned to core 1.
Metrics (Intel) - phoronix/gimpsh - pid 18788 // resize On_CPU 0.112 On_Core 0.896 IPC 1.716 Retire 0.361 (36.1%) FrontEnd 0.230 (23.0%) Spec 0.165 (16.5%) Backend 0.244 (24.4%) Elapsed 3.84 Procs 34 Minflt 123239 Majflt 0 Utime 2.27 (66.0%) Stime 1.17 (34.0%) Start 180719.39 Finish 180723.23 sh - pid 18942 // auto-levels On_CPU 0.134 On_Core 1.071 IPC 1.861 Retire 0.380 (38.0%) FrontEnd 0.169 (16.9%) Spec 0.211 (21.1%) Backend 0.240 (24.0%) Elapsed 7.48 Procs 34 Minflt 308478 Majflt 0 Utime 6.18 (77.2%) Stime 1.83 (22.8%) Start 180745.88 Finish 180753.36 sh - pid 19064 // unsharpen-mask On_CPU 0.128 On_Core 1.026 IPC 1.577 Retire 0.357 (35.7%) FrontEnd 0.285 (28.5%) Spec 0.158 (15.8%) Backend 0.200 (20.0%) Elapsed 16.16 Procs 39 Minflt 361041 Majflt 0 Utime 11.99 (72.3%) Stime 4.59 (27.7%) Start 180783.29 Finish 180799.45
Overall, stalls in front end and speculation are higher than average. The On_Core amount is slightly high if this is pinned to a single core, so I suspect the OS is giving me some extra time somewhere.
Metrics (AMD) - phoronix/gimpsh - pid 19143 // resize On_CPU 0.055 On_Core 0.875 IPC 1.794 FrontCyc 0.132 (13.2%) BackCyc 0.199 (19.9%) Elapsed 3.69 Procs 42 Minflt 123477 Majflt 0 Utime 2.20 (68.1%) Stime 1.03 (31.9%) Start 486072.57 Finish 486076.26 sh - pid 19290 // auto-levels On_CPU 0.066 On_Core 1.059 IPC 1.965 FrontCyc 0.116 (11.6%) BackCyc 0.235 (23.5%) Elapsed 7.23 Procs 42 Minflt 309126 Majflt 0 Utime 6.15 (80.3%) Stime 1.51 (19.7%) Start 486099.33 Finish 486106.56 sh - pid 19437 // unsharpen-mask On_CPU 0.063 On_Core 1.011 IPC 1.640 FrontCyc 0.095 (9.5%) BackCyc 0.191 (19.1%) Elapsed 15.28 Procs 47 Minflt 362568 Majflt 0 Utime 11.71 (75.8%) Stime 3.74 (24.2%) Start 486136.66 Finish 486151.94
Process Tree - phoronix/gimp
Process Tree
While my test seemed to run single-threaded, it looks like gimp itself creates a pool of backend processes. Also the test seems to run several scripts.
18788) sh elapsed=3.84 start=0.00 finish=3.84 cpu=1 18789) gimp elapsed=3.84 start=0.00 finish=3.84 cpu=1 18790) gimp elapsed=3.82 start=0.00 finish=3.82 cpu=1 18800) script-fu elapsed=3.37 start=0.25 finish=3.62 cpu=1 18801) script-fu elapsed=2.72 start=0.55 finish=3.27 cpu=1 18802) file-glob elapsed=0.01 start=0.88 finish=0.89 cpu=1 18803) file-jpeg elapsed=0.33 start=0.89 finish=1.22 cpu=1 18804) metadata elapsed=0.06 start=0.90 finish=0.96 cpu=1 18807) file-jpeg elapsed=0.03 start=1.35 finish=1.38 cpu=1 18808) file-jpeg elapsed=0.34 start=1.38 finish=1.72 cpu=1 18809) metadata elapsed=0.07 start=1.39 finish=1.46 cpu=1 18810) file-jpeg elapsed=0.03 start=1.86 finish=1.89 cpu=1 18811) file-jpeg elapsed=0.28 start=1.89 finish=2.17 cpu=1 18812) metadata elapsed=0.04 start=1.90 finish=1.94 cpu=1 18813) file-jpeg elapsed=0.03 start=2.31 finish=2.34 cpu=1 18814) file-jpeg elapsed=0.29 start=2.34 finish=2.63 cpu=1 18815) metadata elapsed=0.05 start=2.34 finish=2.39 cpu=1 18816) file-jpeg elapsed=0.02 start=2.77 finish=2.79 cpu=1 18817) file-jpeg elapsed=0.32 start=2.79 finish=3.11 cpu=1 18818) metadata elapsed=0.06 start=2.80 finish=2.86 cpu=1 18819) file-jpeg elapsed=0.03 start=3.24 finish=3.27 cpu=1 18820) script-fu elapsed=0.34 start=3.27 finish=3.61 cpu=1 18791) pool elapsed=3.76 start=0.06 finish=3.82 cpu=1 18792) pool elapsed=3.76 start=0.06 finish=3.82 cpu=1 18793) pool elapsed=3.76 start=0.06 finish=3.82 cpu=1 18794) pool elapsed=3.76 start=0.06 finish=3.82 cpu=1 18795) pool elapsed=3.76 start=0.06 finish=3.82 cpu=1 18796) pool elapsed=3.76 start=0.06 finish=3.82 cpu=1 18797) pool elapsed=3.76 start=0.06 finish=3.82 cpu=1 18798) pool elapsed=3.76 start=0.06 finish=3.82 cpu=1 18799) font-cacher elapsed=0.00 start=0.23 finish=0.23 cpu=1 18821) gimp elapsed=0.01 start=3.83 finish=3.84 cpu=1 18822) head elapsed=0.01 start=3.83 finish=3.84 cpu=1 18823) awk elapsed=0.01 start=3.83 finish=3.84 cpu=1
Plots from /proc/stat suggest lower On_CPU than getting the metrics from the process. Otherwise a bit spiky as processes/start and finish and presumably as I/O is done.
The overall IPC ranges between 1.5 and 2.0 but varies through the benchmark.
Overall stalls as they contribute to the IPC.
Next steps: Drill down to next level on front end and speculative areas.