top | item 17609366

Intel Ditching Hyper-Threading with New Core I7-9700k Coffee Lake Processor

130 points| jhack | 7 years ago |wccftech.com

84 comments

order
[+] wmf|7 years ago|reply
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-... 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|7 years ago|reply
OpenBSD disables Intel's hyperthreading due to security concerns: https://news.ycombinator.com/item?id=17350278
[+] dmix|7 years ago|reply
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)

[+] qop|7 years ago|reply
For the uninformed: concerns don't mean vulnerabilities, necessarily

At least there's no proof so far

[+] dogma1138|7 years ago|reply
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|7 years ago|reply
That is the Occam's razor choice to explain this yea.
[+] Symmetry|7 years ago|reply
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|7 years ago|reply
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|7 years ago|reply
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|7 years ago|reply
> 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|7 years ago|reply
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.

[+] sigi45|7 years ago|reply
I'm not CPU bound at home at all. Still have an i7 for those rare moments of raw file to jpeg export with Lightroom.

I do care about performance at work because I'm using it 8 hours a day but I wouldn't min an i5 at Home at all. Don't think that any normal person needs it. Even with a few apps running in the background

[+] alkonaut|7 years ago|reply
I do, but even with 20 apps running I probably never used more than 3-4 simultaneously that each consumed a meaningful amount of CPU. With 8 cores I can probably easily do without HT for any workload.
[+] daveguy|7 years ago|reply
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|7 years ago|reply
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|7 years ago|reply
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?)

[+] theandrewbailey|7 years ago|reply
What about the dies that aren't 100% perfect, and don't work at those high end specs? If there's a defect in a core or two, or in some area of cache, why not trim it down to a lower spec part and sell it for something (rather than scrapping it)?
[+] dmoy|7 years ago|reply
On the other hand, I'm sitting here perfectly happy with my $90-$100 i3 at home, which would not have been as cheap without price bucketing and all the people buying expensive i7s and server chips subsidizing the R&D.

Do I ever use more than 2 cores? Rarely.

Oh actually it has 4 cores, guess that changed with the newer chips.

[+] oasisbob|7 years ago|reply
Doesn't that viewpoint ignore real-world yields and binning?
[+] pkaye|7 years ago|reply
By having different feature levels, they can downgrade parts that don't pass at a higher class of features. For example, maybe part of the cache is faulty then you can disable half of it and sell as a lower grade part.
[+] lostmsu|7 years ago|reply
Is this a trusted source? The previous post about i9 there has a different information altogether.
[+] csdreamer7|7 years ago|reply
No, Wccftech has a reputation of posting any rumors and not bothering to verify them.
[+] lagadu|7 years ago|reply
Nothing coming out of wccf is even marginally trustworthy, they're infamous for posting every single rumor they hear about.
[+] djsumdog|7 years ago|reply
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).

[+] gpderetta|7 years ago|reply
HT can help fill unused execution units (which are in the order of a dozen not hundreds unfortunately) as they are over-provisioned compared to what a single thread could possibly use [1].

But the biggest win is when HT can fill pipelines holes caused by a single thread waiting for some long latency operation (almost invariably memory accesses). Normally out of order execution can fill these holes by extracting parallelism from a single thread of execution, but that's not always possible when multiple high or unpredictable latency operations are chained together.

[+] w0utert|7 years ago|reply
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.

[+] brudgers|7 years ago|reply
I am certainly not an expert. My high level understanding of hyper-threading comes from having a Pentium 4 with it back in the early 00's [1]. Things may have changed since then, so I could be wrong...anyway, a simple model of hyperthreading would be a CPU with two operations: load and execute. Each operation takes one CPU cycle. Hyperthreading is possible when both load and execute can run each and every clock cycle.

  Cycle 0: Thread 1 loads
  Cycle 1: Thread 1 executes & thread 2 loads
  Cycle 2: Thread 1 loads & thread 2 executes
  Cycle 3: etc.
  
The advantage of hyperthreading is that there is little or no context switching overhead. At least relative to traditional hardware threads. With a real CPU there are more steps in the pipeline and each step takes a variable amount of time. Later CPU's take advantage of those available cycles with parallel, speculative and out of order execution...but those are generally abstractions over a single thread.

[1]: https://en.wikipedia.org/wiki/Pentium_4

[+] cesarb|7 years ago|reply
AFAIK no, HT siblings do not get a lower priority. The core's resources are shared equally between the SMT threads. Operating systems that are SMT aware try to avoid this sharing when possible (a non-SMT-aware OS could schedule a pair of runnable threads on one core while another core is idle; a SMT-aware OS would use the idle core instead, so both threads get a full core for themselves).
[+] fulafel|7 years ago|reply
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|7 years ago|reply
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.

[+] vbezhenar|7 years ago|reply
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|7 years ago|reply
Has AMD fixed meltdown on any processors?
[+] yellowapple|7 years ago|reply
"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|7 years ago|reply
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_|7 years ago|reply
Core counts from i3 through i7, threading for i9. According to the article, anyway.
[+] xkcdefgh|7 years ago|reply
This is very unlikely just when amd's making them panic with super competitive ryzen procs
[+] dnautics|7 years ago|reply
is this because of meltdown?
[+] kingosticks|7 years ago|reply
> 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.

[+] mtgx|7 years ago|reply
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|7 years ago|reply
Honest question: How does disabling Hyper-Threading cut costs?