
Intel Ditching Hyper-Threading with New Core I7-9700k Coffee Lake Processor - jhack
https://wccftech.com/intel-ditching-hyper-threading-with-new-core-i7-9700k-coffee-lake/
======
wmf
In general I don't think blow-by-blow Intel SKU rumors are a good use of HN's
time, but it's useful to understand the context here:
[https://www.computerbase.de/2018-07/spezifikationen-
core-i9-...](https://www.computerbase.de/2018-07/spezifikationen-
core-i9-9900k-i7-9700k-i5-9600k/) The i9 is rumored to be 8C/16T, so Intel has
to make the i7 worse in some way. An 8C/8T i7-9xxx is presumably still a
little faster than a 6C/12T i7-8xxx even though it has fewer threads.

------
jron
OpenBSD disables Intel's hyperthreading due to security concerns:
[https://news.ycombinator.com/item?id=17350278](https://news.ycombinator.com/item?id=17350278)

~~~
dmix
Note: it wasn't found to be insecure, it was merely suspected of being
insecure

(FWIW, this comes from people who tend to know what they are talking about.
But also people who value security over everything else)

------
dogma1138
More likely that HT was disabled on that system than Intel scrapping HT on i7s
unless they are shifting the entire product line one peg down and having a
mainstream i9 on the desktop that isn’t a part of the HEDT platform.

~~~
lagadu
That is the Occam's razor choice to explain this yea.

------
Symmetry
HT is easy to implement but hard to debug. It wouldn't be at all surprising if
an Intel engineering sample had HT disabled during the testing of some early
samples. And really an Intel heavyweight core is wider than it needs to be in
most cases where it isn't running two threads.

------
SketchySeaBeast
Assuming this is true (which I doubt - HT was the main differentiation between
the i5 and i7), this seems like the exact opposite approach you'd think they'd
take with Ryzen breathing down their necks and boasting high core counts-
AMD's i7 equivalents are all 8 core / 16 threads - Intel would want to return
fire in some way.

~~~
alkonaut
If they really wanted to make a consumer/prosumer divide between i5 and i7/9
then they’d make virtualization and ECC available only for the latter.

------
aasasd
> Most applications can usually handle a maximum of 8 threads efficiently

I just wonder if I'm in the minority running more than one app at a time.
Specifically, a dozen apps that are never closed and just stay in the
background until I need them. Even more specifically, listening to music on
YouTube while working in the IDE, wherein the browser pops up regularly on the
CPU usage chart.

For the same reason, the norm of 4 or 8 gb RAM is baffling to me.

~~~
simias
Do you find that you're CPU limited in your workflow? Apps that are mostly
idle don't need a dedicated CPU thread. Firefox playing a Youtube video on a
rather old i7-5820K @3.3GHz takes about 20% of one CPU on my machine. Emacs
takes a negligible amount of CPU most of the time, so do my terminals.
Compilation is really the only situation where I max out my machine.

In general if you only care about raw performance you'll run one heavy app per
machine. You won't use the same server to render video and build your code at
the same time, it will be more efficient to use two different servers for
that.

~~~
aasasd
To me it seems that modern apps don't really stay frozen in the background
like it was ten years ago, at least not on Mac. Something always keeps
bubbling up in the process manager. Especially, JS GUIs seem to constantly
occupy the CPU with something, even if a little―despite the supposedly event-
driven nature.

~~~
AstralStorm
Even then, the CPU utilisation is low, having one or two spare cores is enough
to reap any latency benefits.

~~~
geezerjay
How do you arrive at that conclusion considering that nowadays browsers tend
to run each page in dedicated threads and in some cases even processes? In
that scenario your assertion would only hold if you assume no one has more
than a couple of pages open at any given time.

~~~
dragontamer
"Running Threads" in Windows and Linux don't use any CPU time unless there is
something to do.

Most of the time, threads and processes are in the blocked state. For example,
waiting for mouse movements, or network traffic.

Check your CPU utilization, I bet you its below 20% if you have anything close
to a modern processor. Even with 30+ tabs open

------
daveguy
This seems like a terrible move just as AMD is getting more competitive. AMD
cpus are just going to be that much bigger bang for the buck. I don't buy that
they're going to limit ht to only their top end cpus.

------
adigonionio
This form of "segmentation" is something I've always found appalling. A part
like this is no different from a high-end part; it's an identical design that
is _intentionally damaged_ so it doesn't cut in to high-end sales. It comes
out of the factory fully-featured and Intel charges you extra if you want them
to skip breaking it.

The free market, in its beautiful efficiency, leads to the intentional
crippling of millions of state-of-the-art chips.

~~~
nilsbunger
I understand it seems weird with hardware, but I think it's similar to how we
charge for software.

Try this thought experiment:

1\. Based on market analysis, Intel decides it could sell a part with
hyperthreading for $1K, and one without for $500.

2\. Engineers start building both chips.

3\. Because the chips themselves cost little to make ($45 and $50 for non-HT
vs HT let's say?), and it costs $10M of engineering time to design each chip,
engineers realize it would actually be far more efficient to design one chip
with hyperthreading, and disable it for the lower-end SKU.

I'm curious which part you object to in this sequence. The sale price of chips
is mostly amortizing very high R&D costs, not unit distribution costs. There
are a variety of different types of customers to serve with different price
points, while designing different chips is expensive, so it ends up being
logical to make one chip with different features enabled.

Software and web services are the ultimate expression of this kind of
economics. It costs almost 0 to serve an additional customer, but a lot of R&D
and operations to build it.

Would you call a web service "intentionally damaged" when they don't give you
all features for the same price (or for free?)

~~~
p1necone
This market where they can build chips for $50 and sell them for $1000 only
exists because there is a (near) duopoly on x86 (afaik mostly due to patents).

If the HT chip costs almost the same as the non HT chip then maybe they should
just be selling HT chips for $500 instead, that would probably be what would
happen if there was actually competition in the x86 market.

------
lostmsu
Is this a trusted source? The previous post about i9 there has a different
information altogether.

~~~
csdreamer7
No, Wccftech has a reputation of posting any rumors and not bothering to
verify them.

~~~
muro
Or just making things up.

------
djsumdog
Are there any scheduling experts on here? So I've always been under the
impression that HT just schedules instructions on the unused functional units.

So say your CPU has 100 adders, and when you resolve all your dependencies for
incoming instructions, you can only use 60 of those adders when running
instructions in parallel (out of order), so the HT/logical core uses the other
40 adders for another thread (so the HT cores get a lower priority than the
standard cores; hence why operating system that are HT aware can be more
efficient by scheduling lower priority threads on the HT cores).

Is that correct or am I way off? (HT wasn't a thing when I took architecture
class. I had a dual AthlonXP back then, where I had two physically separate
processors).

~~~
w0utert
Yes I think it more or less works that way. A hyperthread has its own set of
registers and stack and everything, but for doing any actual work it shares
the same functional blocks as any other thread running on the same core. I do
think that the hyperthreading parts increase the numbers of some functional
blocks like load/store units and such compared to non-hyperthreading parts
though, to reduce contention (someone correct me if I'm wrong).

What this means is that hyperthreading does not really work so well on
sustained, homogenuous workloads. For example doing very heavy computation on
8 threads of a 4-core CPU with 8 hardware threads, can actually reduce
performance, because all threads will be contending for the same functional
blocks of the CPU.

~~~
pizza234
> hyperthreading does not really work so well on sustained, homogenuous
> workloads

what would distinguish this description from, say, compression and compiling?
based on the experience on my machine (which of course is limited), HT does
give a boost in those two cases, which could be classified as homogeneous and
sustained.

~~~
dragontamer
Compiling isn't homogeneous IMO. Lots of branches, lots of waiting of RAM,
lots of corner cases. Lots of ways to get those hyperthreads working in
parallel.

Compression would be closer to homogeneous. But something REALLY homogeneous
is like, Prime95. You're only hitting SSE and/or AVX instructions over-and-
over again. All threads try to only use AVX instructions, so hyperthreading
doesn't help too much.

~~~
berti
HT also doesn't help as much on FP workloads simply because there are less FP
execution units to share, e.g. Skylake:
[https://en.wikichip.org/wiki/intel/microarchitectures/skylak...](https://en.wikichip.org/wiki/intel/microarchitectures/skylake_\(client\)#Individual_Core)

------
fulafel
Its funny how HyperThereading is such a widely used term, being an Intel
marketing trademark. (SMT is the computer architecture term - cf. mmx vs simd)

~~~
naikrovek
They are different. HyperThreading is where one core acts as two by _rapidly_
switching contexts. It isn't actually two hardware threads, and the one core
never does two things at once.

SIMD is one thread doing one instruction on multiple pieces of data at the
same time.

SIMD can give higher throughout from the CPU, and you must organize your data
types to use SIMD.

Symmetric multithreading is where software takes advantage of multiple logical
hardware threads to do multiple pieces of work per clock cycle.

SMT can use HyperThreads and/or multiple physical cores, and/or multiple
physical CPUs with one or more logical hardware threads each.

~~~
fulafel
> They are different. HyperThreading is where one core acts as two by rapidly
> switching contexts.

This would be quite the opposite of Intel's actual SMT implementation, which
aims to keep all the parallel execution resources of an OoO core fed and busy.

There have been some machines that do what you describe too (eg Tera/Cray MTA,
many GPUs, Sun's Niagara), to combat memory latency and reduce the need for
cache. Those machines have a big thread count since they want to have a lot of
outstanding memory operations in flight. You will notice that these machines
are not called SMT, since the S stands for "Simultaneous".

------
vbezhenar
I wonder if they fixed meltdown on those new processors. If they didn't, a lot
of people probably would wait for upgrade (or switch to AMD).

~~~
detaro
Has AMD fixed meltdown on any processors?

~~~
benchaney
AMD never had meltdown to begin with. That was an Intel exclusive. Spectre is
the one that affects everyone

~~~
muxator
Has AMD fixed Spectre in its processors?

~~~
dragontamer
As much as Intel has.

The issue with Spectre is that it is a new "buffer overflow". You can't "fix"
a buffer overflow through hardware alone. You need software + hardware... and
at best, you only get mitigations.

And within the next few months, some researcher is going to come up with a new
Spectre-based attack that current mitigations won't work on. Its a bit
annoying. Just sit tight and stay up to date on Spectre, its a moving target.

------
yellowapple
"Most applications can usually handle a maximum of 8 threads efficiently, any
more than that is diminishing returns anyways."

That's only relevant if you only plan on running one application at a time.

------
negus
But HT was the main (or only) difference between i5 and i7. What will be the
difference among 5/7/9 in 9th generation?

~~~
dsr_
Core counts from i3 through i7, threading for i9. According to the article,
anyway.

------
xkcdefgh
This is very unlikely just when amd's making them panic with super competitive
ryzen procs

------
dnautics
is this because of meltdown?

~~~
kingosticks
> This is now going to be a feature limited to the i9 branding,

So their goal would be to limit meltdown to the flagship i9 series? Seems like
a strange plan.

~~~
dnautics
I suspect that without hyperthreading the OS kernel has more explicit
knowledge and control over thread tenancy so it is easier to mitigate a cache
timing attack. But that is just speculation on my part.

~~~
bonzini
L1 cache is shared between threads on the same core so, with SMT, you can
attack the code that runs on the sibling thread too.

However, that is more for Spectre, which abuses the reads done from foreign
code to observe the effect they have on the cache. That foreign code can be
the kernel, another process, the hypervisor, etc. running on the same core.
Meltdown can read the entire comments of memory without needing foreign code
and therefore SMT doesn't matter for it.

~~~
dnautics
Maybe my understanding is wrong but with smt though the kernel.is not informed
of which virtual CPU is in residence at any given time. IIRC, With smp only,
the kernel is responsible for scheduling onto the processor so it can
invalidate the cache exactly when it needs to.

~~~
bonzini
The threads look exactly like real processors to the kernel. The only
difference as far as the kernel is concerned is that they share the L1 cache.

~~~
dnautics
Exactly. So you can have insecure boundary between threads because they share
L1 cache. Is my understanding of how meltdown works incorrect?

~~~
bonzini
You're thinking of Spectre. Meltdown doesn't need to share cache, a thread can
just read kernel mappings into its own L1. Kernel mappings typically include
the whole physical memory (on 64-bit machines where virtual address space is
huge).

------
mtgx
It's because it's one of the few ways Intel can cut costs/remain profitable in
the face of new AMD competition without disrupting the company's operations in
the long term.

Of course this doesn't mean its brand/sales won't be hurt further due to this
move.

~~~
strictnein
Honest question: How does disabling Hyper-Threading cut costs?

~~~
pizza234
Transistors, I guess; HT adds extra registers for each core. However, I have
some doubts that removing them would make a tangible impact on the final
price.

~~~
kingosticks
Or you could leave it all in there (cheaper and easier) just disabled and
instead enjoy better yields:

* Parts with broken HT can be shipped as fully working non-HT parts.

* High-leakage parts can be shipped as they now pass the power screening.

~~~
wtallis
> Parts with broken HT can be shipped as fully working non-HT parts.

It's unlikely that they ever get parts with broken HT on an otherwise
salvageable core. Too much of that functionality is simply partitioning
existing resources in half. There aren't that many transistors that are simply
HT overhead that the core can do without when HT is not in use.

