[lld] r232460 - [ELF] Use parallel_for_each for writing.

Shankar Easwaran shankare at codeaurora.org
Wed Mar 18 10:02:57 PDT 2015


These are the numbers that I got on my machine :-

With patch
-----------------

        3678.663899 task-clock                #    0.995 CPUs 
utilized            ( +-  0.13% )
                198 context-switches          #    0.000 
M/sec                    ( +-  0.91% )
                  1 CPU-migrations            #    0.000 
M/sec                    ( +- 58.63% )
            461,051 page-faults               #    0.125 
M/sec                    ( +-  0.01% )
     13,655,075,694 cycles                    #    3.712 
GHz                      ( +-  0.10% )
      7,880,958,266 stalled-cycles-frontend   #   57.71% frontend cycles 
idle     ( +-  0.17% )
      5,528,478,678 stalled-cycles-backend    #   40.49% backend cycles 
idle     ( +-  0.20% )
     14,231,481,304 instructions              #    1.04  insns per cycle
                                              #    0.55  stalled cycles 
per insn  ( +-  0.01% )
      2,855,286,289 branches                  #  776.175 
M/sec                    ( +-  0.01% )
         48,367,719 branch-misses             #    1.69% of all 
branches          ( +-  0.04% )

        3.697282619 seconds time 
elapsed                                          ( +-  0.22% )

Without patch
----------------------
        3678.045942 task-clock                #    0.997 CPUs 
utilized            ( +-  0.13% )
                182 context-switches          #    0.000 M/sec
                  1 CPU-migrations            #    0.000 
M/sec                    ( +- 92.22% )
            461,009 page-faults               #    0.125 
M/sec                    ( +-  0.00% )
     13,636,665,496 cycles                    #    3.708 
GHz                      ( +-  0.08% )
      7,872,155,198 stalled-cycles-frontend   #   57.73% frontend cycles 
idle     ( +-  0.15% )
      5,520,295,730 stalled-cycles-backend    #   40.48% backend cycles 
idle     ( +-  0.16% )
     14,218,218,499 instructions              #    1.04  insns per cycle
                                              #    0.55  stalled cycles 
per insn  ( +-  0.00% )
      2,851,381,196 branches                  #  775.243 
M/sec                    ( +-  0.00% )
         48,362,236 branch-misses             #    1.70% of all 
branches          ( +-  0.01% )

        3.688849872 seconds time 
elapsed                                          ( +-  0.13% )

This was with self hosting lld. Looks like the patch is not really 
improving from the numbers seen using perf.

Shankar Easwaran

On 3/18/2015 11:32 AM, Rafael EspĂ­ndola wrote:
> As with anything threading related, it might also be worth
> benchmarking it on Windows.
>
> On 18 March 2015 at 12:31, Shankar Easwaran <shankare at codeaurora.org> wrote:
>> It looks like these are the right numbers and Strange, I dont see a huge
>> advantage of the patch trying to parallelize writing output sections in
>> parallel.
>>
>>
>> On 3/18/2015 11:23 AM, Rafael EspĂ­ndola wrote:
>>> On 18 March 2015 at 12:14, Shankar Easwaran <shankare at codeaurora.org>
>>> wrote:
>>>> Does this repeat with the same numbers across similar tries ?
>>> The "-r 20" tells perf to do 20 runs. Repeating the entire thing for
>>> sanity check I got
>>>
>>>
>>> master:
>>>          1850.315854      task-clock (msec)         #    0.999 CPUs
>>> utilized            ( +-  0.20% )
>>>                1,246      context-switches          #    0.673 K/sec
>>>                    0      cpu-migrations            #    0.000 K/sec
>>>                  ( +-100.00% )
>>>              191,223      page-faults               #    0.103 M/sec
>>>                  ( +-  0.00% )
>>>        5,570,279,746      cycles                    #    3.010 GHz
>>>                  ( +-  0.08% )
>>>        3,076,652,220      stalled-cycles-frontend   #   55.23% frontend
>>> cycles idle     ( +-  0.15% )
>>>      <not supported>      stalled-cycles-backend
>>>        6,061,467,442      instructions              #    1.09  insns per
>>> cycle
>>>                                                     #    0.51  stalled
>>> cycles per insn  ( +-  0.00% )
>>>        1,262,014,047      branches                  #  682.053 M/sec
>>>                  ( +-  0.00% )
>>>           26,526,169      branch-misses             #    2.10% of all
>>> branches          ( +-  0.00% )
>>>
>>>          1.852094924 seconds time elapsed
>>>             ( +-  0.20% )
>>>
>>> master minus your patch:
>>>
>>>          1837.986418      task-clock (msec)         #    0.999 CPUs
>>> utilized            ( +-  0.01% )
>>>                1,170      context-switches          #    0.637 K/sec
>>>                    0      cpu-migrations            #    0.000 K/sec
>>>              191,225      page-faults               #    0.104 M/sec
>>>                  ( +-  0.00% )
>>>        5,517,484,340      cycles                    #    3.002 GHz
>>>                  ( +-  0.01% )
>>>        3,036,583,530      stalled-cycles-frontend   #   55.04% frontend
>>> cycles idle     ( +-  0.02% )
>>>      <not supported>      stalled-cycles-backend
>>>        6,004,436,870      instructions              #    1.09  insns per
>>> cycle
>>>                                                     #    0.51  stalled
>>> cycles per insn  ( +-  0.00% )
>>>        1,250,685,716      branches                  #  680.465 M/sec
>>>                  ( +-  0.00% )
>>>           26,539,486      branch-misses             #    2.12% of all
>>> branches          ( +-  0.00% )
>>>
>>>          1.839759787 seconds time elapsed
>>>             ( +-  0.01% )
>>>
>>>
>>> Cheers,
>>> Rafael
>>>
>>
>> --
>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by
>> the Linux Foundation
>>


-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation





More information about the llvm-commits mailing list