I would say that one of the major performance boosts of Zen over Bulldozer is the introduction of real SMT due to the expiration of the patents. Bulldozer had CMT which is not the same technique. CMT vs SMT (very simplified view): https://i.imgur.com/AcZnipK.png As you can see, with CMT, you have the same amount of ALUs than with SMT but a single thread can only use its dedicated ALU leaving the other one useless mea…
"Intel i5 desktop chips don’t have hyper-threading (SMT) and haven’t for the 10 years they’ve been available." That's mostly true, though there have been a few desktop i5 processors with hyperthreads. Like: https://ark.intel.com/content/www/us/en/ark/products/43546/i...
I didn’t spot that one, though it was almost 10 years ago and I don’t see more recent examples. My point was that a large number of users don’t actually have hyper-threading on the desktop.
What about i3 processors. Or laptop processors, AFAIK those all support HT.
How will SMT evolve with the frequency down-clocking required by AVX-512? Might a thread be penalized because it happens to be executed concurrently with a AVX-512 thread on the same score?
This comment is extremely ironic considering it was an Intel processor that spurred the widespread use of JTAG and all the way up to Skylake Intel products had traditional JTAG connectors. These days they do JTAG over a physical USB port but I'm not sure how the shape of the port is supposed to matter. JTAG on the NUCs actually led to a CVE as well IIRC.
JTAG has nothing to do with Intel per-se but everything with BGAs which made it super hard to get to certain signals.
It was (relatively) uncommon until Intel released the 80486, then it became very popular and was found on basically every chip. Not that there weren't devices before and after that used JTAG but none nearly as influential in it's growth.
In my mind, SMT made more sense when core counts were low. These days, desktop use cases can more often run out of threads to run than places to run them. Server use cases can often run more threads, but it might not be useful to run 32 cpu threads if your NICs can only properly run 16 queues.
There are many >100 core POWER8 or POWER9 systems running SAP HANA, Epic or Oracle with SMT4 or SMT8 today.
Flagging this as it's an absurdly shallow article apparently combining about 10 minutes of "research" after hearing something on twitter with conflating typical end user use-cases and an entire technology. The "tuning" and "oh noes my VMs this is surely a new problem nobody doing virtualization has ever thought of" section is too absurd to even bother with. But for the security aspect it's worth pointing out that in…
There aren't really many "performance critical" multithreaded environments in the world. For the most part you either have something that doesn't scale and needs a really fast thread or you have a cost equation about how many servers you need to buy/maintain. The main exception that comes to mind are extremely large databases that heavily resist horizontal scaling due to poor design (of either software or database).…
There are lots of performance-critical environments out there in the embedded world... why else would VxWorks be so popular?
There aren't really many "performance critical" multithreaded environments in the world. For the most part you either have something that doesn't scale and needs a really fast thread or you have a cost equation about how many servers you need to buy/maintain. The main exception that comes to mind are extremely large databases that heavily resist horizontal scaling due to poor design (of either software or database).…
Er, there aren't many performance critical multithreaded environments? Latency sensitive systems disagree, and those are all over the place.
Can you give examples of something that scales via threading but requires in a single thread the function takes 500 microseconds instead of 600 microseconds to compute that actually contradicts that "most" systems aren't this way?
There aren't really many "performance critical" multithreaded environments in the world. For the most part you either have something that doesn't scale and needs a really fast thread or you have a cost equation about how many servers you need to buy/maintain. The main exception that comes to mind are extremely large databases that heavily resist horizontal scaling due to poor design (of either software or database).…
There are lots of performance-critical environments out there in the embedded world... why else would VxWorks be so popular?
Unless you're implying there are a lot of embedded machines running VxWorks on overclocked i9 9900K's because they needed the single core throughput I think we are talking about completely different concepts.
Er, there aren't many performance critical multithreaded environments? Latency sensitive systems disagree, and those are all over the place.
Can you give examples of something that scales via threading but requires in a single thread the function takes 500 microseconds instead of 600 microseconds to compute that actually contradicts that "most" systems aren't this way?
Most professionnal audio software is like that - you can have e.g. a thread per track to make it simple but you also have to ensure that each execution cycle does not take more than 1 millisecond else you get audio glitches. And there is no limit to how hard you have to improve - this is a central factor for people buying your software (see dawbench) and artists really really don't like limits - they will always try to add more effects, etc etc on each track.
This makes me wonder how SMT handled in linux kernel especially on cpu-idle and scheduling then I have found below articles, sharing for those who is also interested in: