Hacker News new | ask | show | jobs
by chrisper 3088 days ago
So I recently bought an 8700k. I was wondering if I should rather return it and get AMD instead? Not sure how much the recent bugs will impact me performance wise.
3 comments

It looks like you'll see a significant slowdown, PostgreSQL with pgbench sees a 7% to 16% slowdown.

https://www.postgresql.org/message-id/20180102222354.qikjmf7...

Of course, this depends on workload — gaming will see different results than computationally heavy tasks.

It is likely that games using Vulkan, DX12 or OoenGL's AZDO functions will see much lower performance impact (because they usually only do a handful of syscalls per frame) than games using older APIs, or even OpenGLs immediate mode (which does one syscall per emitted vertex, in worst case)

> or even OpenGLs immediate mode (which does one syscall per emitted vertex, in worst case)

Perhaps with drivers written in the 90s for hardware from the 90s. Any OpenGL implementation worth its salt will buffer those requests on the client side until they need to be observed. Indeed this was a big feature in the heyday of DirectX 9 where D3D programmers had to count the drawcalls whereas with OpenGL you have way more leeway with calls since the driver tends to be smarter and caches that stuff.

In theory with a modern driver using OpenGL's immediate mode API shouldn't need any more syscalls than building the vertex buffers in your program, setting up the necessary state and issuing a buffer draw command.

The only time where you'd need a syscall per emitted vertex would be if the GPU had OpenGL-like commands and your OpenGL implementation was a thin wrapper over that. I think one of ATI's very early GPUs worked like that (although the commands were per primitive, not per vertex).

That's why I said in absolute worst case scenario. I know that in the past I actually wrote some program in high school that did use that.

Nowadays, thanks to vulkan and AZDO with glMultiDrawElementsIndirect, you're right, of course — you might even use a single syscall per frame.

That's why I said, in absolute worst case.

No i meant explicitly about the part i quoted: the immediate mode. Stuff like glBegin, glVertex3f, glEnd, etc. Those will not get you a syscall per vertex, they will be buffered by the OpenGL implementation. Modern OpenGL implementations, at least those by Nvidia and AMD (and i also suspect Mesa too) do a lot of optimizations on the client side.
I am also quite annoyed because I paid premium (Intel) prices with the expectation to get premium speed. Now if I can just get the same performance cheaper with AMD, maybe I should just return the whole thing.
Which chip to get depends on your usecase.

If you absolutely need the best single core performance you can, Intel is the way forward.

If multicore performance is important (lots of multitasking, lots of heavy processes running) then one of the 8 core Ryzen 7's will be better, for cheaper.

Thanks. I guess I'll stick to my 8700k then.
Just curious, what do you do that requires a fast single core? I always find it strange when people value that, as most computers nowadays generally run more than 1 process at a time.
A lot of games only run single core. Though finally, more modern games do take advantage of more cores!
Computing things serially, obviously!
Ruby on Rails.
if I had an 8700K (I have a 7700K, btw) and my use case was gaming (that's this cpu's target market) I'd keep it. Otherwise I'd get a Ryzen.
Yes, I am mostly gaming on that PC. Thanks.
But note that that those benchmarks pretty much are the worst case for PTI. Each of the queries is either near trivial (single pkey lookup) or the most trivial (SELECT 1), therefore the send/recv syscalls to/from the clients are taking the most time. If you instead have queries that do a bit more actual work this'd look very different.
The very article mentions at the bottom that AMD has its fair share of nasty bugs recently, too. If anything, I would expect AMD to spend even less effort on validation (because they are not flush with cash).
Or, because they're not flush with cash, they go for a simpler to verify design.

Remember, a lot of the Zen arch was developed by Jim Keller, who is the brains behind the Athlon 64.

I loved my Athlon 64. IIRC, it ran hot as hell, but the price/performance was amazing.
I remember running two of the AthlonXPs on a Tyan SMP board back in the day. That was before we had multiple cores on a single processor.
What bugs?
The article spends 4 paragraphs on them. Just one example:

    Although AMD’s response in the forum was that these were isolated issues, phoronix was able to
    reproduce crashes by running a stress test that consists of compiling a number of open source
    programs. They report they were able to get 53 segfaults with one hour of attempted compilation.
This is only true with Ryzen CPUs that were manufactured before week 25. ThreadRipper wasn't affected, nor was EPYC.
8700k is an "end of the line" CPU in terms of motherboard support. Also AMD Ryzen CPUs give you much better bang for buck.
I can't tell if end of the line is a good or a bad thing here?
Most likely bad. With Intel you tend to need a new motherboard anytime you upgrade your processor since they change sockets frequently. This also makes it harder to find replacement motherboards for old processors.

AMD has committed to the AM4 socket they're using until at least 2020, so if you buy a Ryzen processor and motherboard today, you should be able to use that motherboard with Ryzen class processors until 2020.

Wow, that's .. kinda opposite world from a few years ago. For the Intel chips, the socket remained consistent from the Pentium D all the way up to the Core2Duo. IIRC they had an offboard memory management unit, so the chips wasn't tied directly to a motherboard. The AMDs on the other hand had integrated MMUs and each new chip required a totally different board and the processors themselves were tied to the RAM type (DDR2 vs DDR3 etc).

Intel switched to the AMD model starting with the i3/i5/i7 series, now moving to an integrated MMU themselves.

Ah okay. Thanks. I have been an Intel guy for all the years now, so I was used to getting new motherboards.

Good to know AMD is doing that! Getting new motherboards is annoying.