← Back to team overview

kicad-developers team mailing list archive

Re: Benchmarking kicad compilation on CPUs released 6 years apart


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

Follow ups