Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

As a software developer, by far the most imortant advantage of SMT is the reduction in compilation time for big software projects.

I have not encountered any other application that benefits so much from SMT as a compilation that uses all available threads.

On older CPUs, such as Skylake derivatives, a 25% compilation speed improvement from SMT was frequent. On newer CPUs, e.g. Zen 3 (presumably also on Zen 4, which has a very similar microarchitecture), the benefits of SMT are smaller (due to improved out-of-order execution), but a 20% compilation speed improvement is still frequent.

However, doing compilation on a device with Lunar Lake, a CPU with only 4+4 cores, would be a waste of time, so it clearly does not need SMT.

On the other hand, doing compilation on a bigger laptop, with an AMD Strix Point 12-core/24-thread CPU or with whatever Arrow Lake CPU will be launched by Intel to compete with it (presumably having much more smaller Skymont cores than Lunar Lake, to compensate for the lack of SMT) would certainly be useful.



I've moved to almost entirely remote dev workflow for similar reasons. Out of curiosity how much RAM do you need per build thread?


When compiling an entire Linux distribution, there are a few outliers, all of which are derivatives of the Google Chrome code base, which may fail when less than 2 GB is available per build thread (e.g. for a 16C/32T CPU with make -j32, 64 GB of DRAM are required).

For most other software projects 1 GB per build thread is enough.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: