{"id":310,"date":"2024-01-07T01:58:58","date_gmt":"2024-01-07T01:58:58","guid":{"rendered":"https:\/\/mvermeulen.org\/perf\/?page_id=310"},"modified":"2024-01-07T14:47:12","modified_gmt":"2024-01-07T14:47:12","slug":"compress-xz","status":"publish","type":"page","link":"https:\/\/mvermeulen.org\/perf\/workloads\/phoronix\/compress-xz\/","title":{"rendered":"compress-xz"},"content":{"rendered":"\n<p>Testing the xz tool for compressing and decompressing a Linux ISO image. This is the compression where Intel scores best relative to AMD (1.13x slower). Very much a backend bound task. Interesting that none tests of different compression tools use the same metrics and workload so not easy to compare between tools.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"960\" src=\"https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/01\/amdtopdown-26.png\" alt=\"\" class=\"wp-image-327\" srcset=\"https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/01\/amdtopdown-26.png 1280w, https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/01\/amdtopdown-26-1024x768.png 1024w, https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/01\/amdtopdown-26-768x576.png 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/figure>\n\n\n\n<p>AMD metrics show a memory-bound process with low IPC and not much branch misprediction.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>elapsed              100.692\non_cpu               0.679          # 10.87 \/ 16 cores\nutime                1082.313\nstime                11.855\nnvcsw                5507           # 23.18%\nnivcsw               18252          # 76.82%\ninblock              32             # 0.32\/sec\nonblock              4784560        # 47516.65\/sec\ncpu-clock            1094318856774  # 1094.319 seconds\ntask-clock           1094336999873  # 1094.337 seconds\npage faults          4003695        # 3658.558\/sec\ncontext switches     24024          # 21.953\/sec\ncpu migrations       397            # 0.363\/sec\nmajor page faults    0              # 0.000\/sec\nminor page faults    4003695        # 3658.558\/sec\nalignment faults     0              # 0.000\/sec\nemulation faults     0              # 0.000\/sec\nbranches             305826469983   # 140.424 branches per 1000 inst\nbranch misses        15442205577    # 5.05% branch miss\nconditional          207603757938   # 95.324 conditional branches per 1000 inst\nindirect             24481367087    # 11.241 indirect branches per 1000 inst\ncpu-cycles           5275899989187  # 3.13 GHz\ninstructions         2174535846634  # 0.41 IPC\nslots                10560962539674 #\nretiring             752461733550   #  7.1% ( 8.5%)\n-- ucode             922767045      #     0.0%\n-- fastpath          751538966505   #     7.1%\nfrontend             958596815267   #  9.1% (10.8%)\n-- latency           520474659312   #     4.9%\n-- bandwidth         438122155955   #     4.1%\nbackend              6775989132895  # 64.2% (76.4%)\n-- cpu               166640846018   #     1.6%\n-- memory            6609348286877  #    62.6%\nspeculation          384200934302   #  3.6% ( 4.3%)\n-- branch mispredict 378018914083   #     3.6%\n-- pipeline restart  6182020219     #     0.1%\nsmt-contention       1689708234394  # 16.0% ( 0.0%)\ncpu-cycles           5272870167404  # 3.26 GHz\ninstructions         2176222575312  # 0.41 IPC\ninstructions         725787433025   # 24.967 l2 access per 1000 inst\nl2 hit from l1       12503036149    # 58.73% l2 miss\nl2 miss from l1      5866288583     #\nl2 hit from l2 pf    840727641      #\nl3 hit from l2 pf    1081438228     #\nl3 miss from l2 pf   3695290297     #\ninstructions         724987198135   # 0.163 float per 1000 inst\nfloat 512            51             # 0.000 AVX-512 per 1000 inst\nfloat 256            336            # 0.000 AVX-256 per 1000 inst\nfloat 128            118149446      # 0.163 AVX-128 per 1000 inst\nfloat MMX            0              # 0.000 MMX per 1000 inst\nfloat scalar         0              # 0.000 scalar per 1000 inst<\/code><\/pre>\n\n\n\n<p>Intel metrics<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>elapsed              111.043\non_cpu               0.701          # 11.21 \/ 16 cores\nutime                1235.188\nstime                10.000\nnvcsw                6590           # 38.10%\nnivcsw               10708          # 61.90%\ninblock              1267304        # 11412.76\/sec\nonblock              4784552        # 43087.47\/sec\ncpu-clock            1245213949207  # 1245.214 seconds\ntask-clock           1245224972995  # 1245.225 seconds\npage faults          3999376        # 3211.770\/sec\ncontext switches     17634          # 14.161\/sec\ncpu migrations       611            # 0.491\/sec\nmajor page faults    166            # 0.133\/sec\nminor page faults    3999210        # 3211.637\/sec\nalignment faults     0              # 0.000\/sec\nemulation faults     0              # 0.000\/sec\nbranches             303879312864   # 139.664 branches per 1000 inst\nbranch misses        17380240502    # 5.72% branch miss\nconditional          303879327936   # 139.664 conditional branches per 1000 inst\nindirect             96960741484    # 44.564 indirect branches per 1000 inst\nslots                6462683136008  #\nretiring             1298072778471  # 20.1% (20.1%)\n-- ucode             95216649660    #     1.5%\n-- fastpath          1202856128811  #    18.6%\nfrontend             749757159532   # 11.6% (11.6%)\n-- latency           423443276271   #     6.6%\n-- bandwidth         326313883261   #     5.0%\nbackend              3300833107005  # 51.1% (51.1%)\n-- cpu               567361250552   #     8.8%\n-- memory            2733471856453  #    42.3%\nspeculation          1323336368123  # 20.5% (20.5%)\n-- branch mispredict 1309834630416  #    20.3%\n-- pipeline restart  13501737707    #     0.2%\nsmt-contention       0              #  0.0% ( 0.0%)\ncpu-cycles           13555660857979 # 2.11 GHz\ninstructions         7882561270813  # 0.58 IPC\nl2 access            68241841123    # 16.037 l2 access per 1000 inst\nl2 miss              32692385575    # 47.91% l2 miss<\/code><\/pre>\n\n\n\n<p>Process structure<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>455 processes\n\t 78 xz                   18339.60   175.46\n\t 64 clinfo                  11.52     2.88\n\t 38 vulkaninfo               0.75     1.32\n\t  4 vulkani:disk$0           0.08     0.14\n\t  6 glxinfo:gdrv0            0.05     0.13\n\t  6 php                      0.05     0.09\n\t  6 clang                    0.05     0.02\n\t  2 llvmpipe-0               0.04     0.07\n\t  2 llvmpipe-1               0.04     0.07\n\t  2 llvmpipe-10              0.04     0.07\n\t  2 llvmpipe-11              0.04     0.07\n\t  2 llvmpipe-12              0.04     0.07\n\t  2 llvmpipe-13              0.04     0.07\n\t  2 llvmpipe-14              0.04     0.07\n\t  2 llvmpipe-15              0.04     0.07\n\t  2 llvmpipe-2               0.04     0.07\n\t  2 llvmpipe-3               0.04     0.07\n\t  2 llvmpipe-4               0.04     0.07\n\t  2 llvmpipe-5               0.04     0.07\n\t  2 llvmpipe-6               0.04     0.07\n\t  2 llvmpipe-7               0.04     0.07\n\t  2 llvmpipe-8               0.04     0.07\n\t  2 llvmpipe-9               0.04     0.07\n\t  2 glxinfo                  0.03     0.06\n\t  2 glxinfo:cs0              0.03     0.05\n\t  2 glxinfo:disk$0           0.03     0.05\n\t  2 glxinfo:sh0              0.03     0.05\n\t  2 glxinfo:shlo0            0.03     0.05\n\t  4 rm                       0.00     0.31\n\t  1 lspci                    0.00     0.03\n\t 93 sh                       0.00     0.00\n\t 13 gcc                      0.00     0.00\n\t 10 gsettings                0.00     0.00\n\t 10 sed                      0.00     0.00\n\t  9 stty                     0.00     0.00\n\t  8 stat                     0.00     0.00\n\t  8 systemd-detect-          0.00     0.00\n\t  6 llvm-link                0.00     0.00\n\t  5 phoronix-test-s          0.00     0.00\n\t  4 bash                     0.00     0.00\n\t  4 gmain                    0.00     0.00\n\t  3 compress-xz              0.00     0.00\n\t  3 ls                       0.00     0.00\n\t  2 cc                       0.00     0.00\n\t  2 dconf worker             0.00     0.00\n\t  2 lscpu                    0.00     0.00\n\t  2 uname                    0.00     0.00\n\t  2 which                    0.00     0.00\n\t  2 xset                     0.00     0.00\n\t  1 date                     0.00     0.00\n\t  1 dirname                  0.00     0.00\n\t  1 dmesg                    0.00     0.00\n\t  1 dmidecode                0.00     0.00\n\t  1 grep                     0.00     0.00\n\t  1 ifconfig                 0.00     0.00\n\t  1 ip                       0.00     0.00\n\t  1 lsmod                    0.00     0.00\n\t  1 mktemp                   0.00     0.00\n\t  1 ps                       0.00     0.00\n\t  1 qdbus                    0.00     0.00\n\t  1 readlink                 0.00     0.00\n\t  1 realpath                 0.00     0.00\n\t  1 sort                     0.00     0.00\n\t  1 systemctl                0.00     0.00\n\t  1 template.sh              0.00     0.00\n\t  1 wc                       0.00     0.00\n\t  1 xrandr                   0.00     0.00\n0 processes running\n47 maximum processes<\/code><\/pre>\n\n\n\n<p>Core computation area shows we launch on all cores<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>      36804) compress-xz start=37.55 finish=65.65\n        36805) xz start=37.56 finish=65.40\n          36806) xz start=37.56 finish=37.56\n            36807) xz start=37.56 finish=37.56\n          36808) xz start=37.56 finish=37.56\n          36809) xz start=37.56 finish=37.56\n            36810) xz start=37.56 finish=37.56\n            36811) sed start=37.56 finish=37.56\n          36812) xz start=37.56 finish=37.57\n            36813) ls start=37.56 finish=37.57\n            36814) sed start=37.56 finish=37.57\n          36815) xz start=37.57 finish=37.57\n          36816) xz start=37.57 finish=37.57\n            36817) xz start=37.57 finish=37.57\n            36818) sed start=37.57 finish=37.57\n          36819) xz start=37.57 finish=65.40\n          36820) xz start=37.60 finish=65.40\n          36821) xz start=37.62 finish=65.40\n          36822) xz start=37.65 finish=65.40\n          36823) xz start=37.68 finish=65.40\n          36824) xz start=37.71 finish=65.40\n          36825) xz start=37.73 finish=65.40\n          36826) xz start=37.76 finish=65.40\n          36827) xz start=37.79 finish=65.40\n          36828) xz start=37.82 finish=65.40\n          36829) xz start=37.85 finish=65.40\n          36830) xz start=37.88 finish=65.40\n          36831) xz start=37.92 finish=65.40\n          36832) xz start=37.95 finish=65.40\n          36833) xz start=37.98 finish=65.40\n          36834) xz start=38.01 finish=65.40\n      36835) sh start=65.65 finish=65.77\n        36836) bash start=65.65 finish=65.77\n          36837) rm start=65.65 finish=65.77<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Testing the xz tool for compressing and decompressing a Linux ISO image. This is the compression where Intel scores best relative to AMD (1.13x slower). Very much a backend bound task. Interesting that none tests of different compression tools use <span class=\"excerpt-dots\">&hellip;<\/span> <a class=\"more-link\" href=\"https:\/\/mvermeulen.org\/perf\/workloads\/phoronix\/compress-xz\/\"><span class=\"more-msg\">Continue reading &rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":58,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-310","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/comments?post=310"}],"version-history":[{"count":2,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/310\/revisions"}],"predecessor-version":[{"id":338,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/310\/revisions\/338"}],"up":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/58"}],"wp:attachment":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/media?parent=310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}