4 ms·
I just upgraded from an 2015 i7 4/8 Core/Thread CPU to a Ryzen 7 3700X 8/16. When I first starting using the new CPU the most striking thing was how /few/ of t
by Someone1234 6y ago
I just upgraded from an 2015 i7 4/8 Core/Thread CPU to a Ryzen 7 3700X 8/16.
When I first starting using the new CPU the most striking thing was how /few/ of the cores were under-load during my compilations due to several bottlenecks in my build I didn't realize I had. Over half of my cores were near idle.
I was able to reduce compilation times by 75% (126~ sec to under 31~ sec), just by allowing several processes to run concurrently, and changing the order of a few others, so they weren't fighting over file system locks.
I went back and tested it on the old i7 machine, and still got a 30%~ improvement. My point is: Upgrade away, but make sure your tooling and scripts are designed for that type of concurrency otherwise you'll be wasting a lot of the potential. Mine weren't.
- keyle 6y agoAre you saying that the AMD stuff doesn't do hyperthreading?
- 411111111111111 6y ago... Considering hyperthreading is a proprietary Intel system: no, AMD doesn't do it. Not sure how that would be in any way relevant to the parents point though.
- gen3 6y agoIt should be noted that AMD has SMT, which is pretty much the same thing. https://en.m.wikipedia.org/wiki/Zen_(microarchitecture) https://en.m.wikipedia.org/wiki/Zen_(microarchitecture)
- willis936 6y agoWhile shoring up nomenclature: I believe “simultaneous multi-threading” (SMT) is the generic term and “Hyperthreading” is Intel’s branding of their SMT implementation. Calling AMD’s SMT “hyperthreading” is like calling all tissues Kleenex. It’s fine imo, but it doesn’t hurt to know these things.
- NotSammyHagar 6y agoNo, they were almost certainly talking about some part of their build process limited it to a few processes (like maybe a 'make -k 6' limitation), or something that could be easily parallelized.
- Someone1234 6y agoIt was worse than even that, several parts of the build process were fully sequential. I only got benefit of multiple cores at all because the tooling in those sequential steps were utilizing it, or related system services were. But, yes, I also did change at least one config to allow it to spawn more than 2 threads.
- chriswitts 6y agoAMD calls it SMT (Simultaneous MultiThreading).
- ralls_ebfe 6y agoSimultanous Multithreading is the actual term. Hyperthreading is just Intel SMT in marketing language.
- littlecranky67 6y agoYepp, SMT is the generic term also used in academia for ages. Source: Old editions of venerable "Computer Architecture" by Hennessy & Patterson.
- aspaceman 6y agoWere there any tools you used to help you with this or did you just look at your build directly?