https://bugs.llvm.org/show_bug.cgi?id=38610

            Bug ID: 38610
           Summary: ThinLTO doesn't use all virtual cores as advertised
           Product: new-bugs
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: new bugs
          Assignee: unassignedb...@nondot.org
          Reporter: mh+l...@glandium.org
                CC: llvm-bugs@lists.llvm.org

The ThinLTO documentation (https://clang.llvm.org/docs/ThinLTO.html) says:

  By default, the ThinLTO link step will launch up to
std::thread::hardware_concurrency number of threads in parallel. For machines
with hyper-threading, this is the total number of virtual cores.

That appears not to be true. On a machine with 8 cores and 16 hyper-threads,
std::thread::hardware_concurrency returns 16, but the linkage (with lld) only
uses 8 threads. I have to manually pass --thinlto-jobs=16 for 16 threads to be
used. This does make a difference, where the linkage with 16 threads takes 75%
of the time the one with 8 threads takes.

Tangentially, GCC has (opt-in) Make jobserver support, which is even better.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to