[flang-dev] Comparing build times for flang

Peter Steinfeld via flang-dev flang-dev at lists.llvm.org
Tue Dec 15 12:10:50 PST 2020


I forgot to mention this, but note that I share this machine with other users, so these times vary with the load on the machine.

I use gcc 8.3.

I use the build tool Ninja with no options to do my builds.  That is, after running cmake, I do a build with the command:

  (time ninja) >build.log 2>&1 &

Ninja has some magic to determine how many threads it will use that (I assume) is based on the machine on which it's running.  Here's a fragment of the contents of /proc/cpuinfo for my build machine:
vendor_id	: GenuineIntel
cpu family	: 6
model		: 85
model name	: Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
stepping	: 4
microcode	: 0x2006906
cpu MHz		: 2276.007
cache size	: 28160 KB
physical id	: 0
siblings	: 40
core id		: 0
cpu cores	: 20

I've never monitored memory usage during a build, but here's a fragment of the contents of /proc/meminfo for my build machine:
MemTotal:       394871304 kB
MemFree:        208450524 kB
MemAvailable:   385842340 kB
Buffers:            1768 kB

As other points of reference, when I do an incremental build after modifying a .cpp file on which no other files depend, my time for a recent build was 1 minute 5 seconds.  Ninja just takes 0.046 seconds to determine that a build is not needed if I try to do a build after changing nothing.

Pete

-----Original Message-----
From: Michael Kruse <llvm at meinersbur.de> 
Sent: Tuesday, December 15, 2020 10:46 AM
To: Peter Steinfeld <psteinfeld at nvidia.com>
Cc: flang-dev at lists.llvm.org
Subject: Re: [flang-dev] Comparing build times for flang

External email: Use caution opening links or attachments


Thank you for the comparison. Could you provide some more details? How many threads/cores does the "powerful lab machine have"? How much memory does the build use? What version of gcc?

Michael

Am Fr., 11. Dez. 2020 um 12:43 Uhr schrieb Peter Steinfeld via flang-dev <flang-dev at lists.llvm.org>:
>
> I've been playing around with the scripts I use to build flang in and out of tree.  I don't think I used to be able to do this, but I can now build the front end by only specifying "flang" in the define for "DLLVM_ENABLE_PROJECTS".  Here's my full build script for doing in in-tree build of the front end:
>
>
>
> #!/bin/bash
>
> cmake -G Ninja ../llvm \
>
>   -DCMAKE_BUILD_TYPE=Release \
>
>   -DFLANG_ENABLE_WERROR=On \
>
>   -DLLVM_ENABLE_PROJECTS="flang" \
>
>   -DCMAKE_CXX_STANDARD=17 \
>
>   -DLLVM_TARGETS_TO_BUILD=host \
>
>   -DLLVM_LIT_ARGS=-v \
>
>   -DLLVM_INSTALL_UTILS=On \
>
>   -DCMAKE_INSTALL_PREFIX=../install
>
>
>
> When I build clang, flang, and mlir, it takes 6 minutes, 8 seconds and produces an install area of 1.9 GB.  When I do in in-tree build of just the flang front end, it takes 4 minutes, 33 seconds and produces an install area of 1.3 GB.  When I do an out-of-tree build, it takes 1 minute 52 seconds, and produces a build area of 651 MB.
>
>
>
> All of these times are running on a powerful lab machine using the GNU C++ compiler.
>
>
>
> Pete
>
> _______________________________________________
> flang-dev mailing list
> flang-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev


More information about the flang-dev mailing list