← Back to team overview

kicad-developers team mailing list archive

Re: Benchmarking kicad compilation on CPUs released 6 years apart

 

I would have thought that any discussion of performance would have to take
the speed of the diskio into account

executing: (if you get command not found then install the sysstat package)

$iostat -h -x -d 2

whilst compiling would show the diskio utilization factor (last column), if
it is pegged at 100% then your compilation process is io bound and not cpu
bound, if it is less than 100% then you are cpu bound.

SSDs and disk oops would probably have an impact on compilation speed,
especially when searching deep include trees.

On Tue, Oct 29, 2019 at 1:51 PM Henner Zeller <h.zeller@xxxxxxx> wrote:

>
>
> On Mon, 28 Oct 2019 at 22:21, Andrew Lutsenko <anlutsenko@xxxxxxxxx>
> wrote:
>
>> Hi all,
>>
>> This information may be useful to people that are considering an upgrade
>> for their workstations or for general information, feel free to skip this
>> email if you are not interested.
>>
>> I've been using my 6 year old Haswell i7 machine that served me well over
>> the years but kicad compilation times both under msys and in linux vm were
>> frustratingly long. That reason along with a few others pushed me to
>> upgrade.
>> If you've been following the hardware news lately AMD's Ryzen is all the
>> rage lately and for a very good reason. I've been rooting for them since
>> Athlon days but had to begrudgingly buy Intel a few times after that
>> because AMD products just weren't competitive.
>> This definitely has changed with Ryzen series.
>>
>> To not make this too long and so that you don't think of me as AMD shill
>> let the numbers speak for themselves and you decide whether it's worth it
>> to upgrade for you.
>>
>> My previous config: i7 4770 Haswell 4 core CPU, 16gb of DDR3 ram in dual
>> channel, sata ssd.
>> My new config: R9 3900x Matisse 12 core CPU, 32gb of DDR4 ram in dual
>> channel, nvme ssd.
>>
>> I set my master branch to same commit in both cases (846397c69) and did
>> "make clean". Then I compiled all targets to measure time of clean build.
>> Then switched to master~15 and compiled, then switched to master~5 and
>> compiled, and lastly back to master and compiled again. Thus I measured
>> more typical scenario of incremental compilation as well.
>> In case of my old system I did "make -j8" as that is the number of
>> threads that CPU has, in case of new one I did "make -j24" for same reason,
>> maximizing used threads.
>>
>
> For compilation uses, I recently upgraded to a 16 core 1950x and am also
> pretty impressed.
> I find that using a bit more parallelism than can even give a little more
> as not all compile threads might be using the CPU 100% but might be waiting
> on IO. On my 1950X, I use -j50 (on 32 hyper-threaded cores). Something like
> this might in particular work for your network storage connection.
>
> Also highly recommended (when in development with intermediate 'make
> clean') install ccache
>
> Also something of note is that for both configs linux vm was run from a
>> virtual disk located on a network storage device with 1Gbps link, not on
>> local ssd. And I didn't master~15 build for linux, just master~5 and master
>> again.
>>
>> clean master~15 master~5 master
>> i7 4770 msys 36m28.515s 26m51.178s 27m45.738s 14m21.653s
>> R9 3900x msys 6m40.112s 4m56.747s 4m55.271s 3m15.945s
>> i7 4770 linux 44m49.681s - 15m53.635s 15m53.098s
>> R9 3900x linux 6m35.732s - 3m26.773s 3m18.514s
>>
>> I kinda expected 2x maybe 3x decrease because not all computations scale
>> linearly with number of threads. I was pleasantly surprised by almost 6x
>> decrease in clean build time and 5x in incremental builds.
>>
>> Here are the numbers in google sheet in case table above is not readable
>>
>> https://docs.google.com/spreadsheets/d/1UI1aW-FTTI-TncTWhAdG_Ag__5nc2FF1626WaPiL3LE/edit?usp=sharing
>>
>> Regards,
>> Andrew
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>

References