Live data from Hacker News

Ryzen Threadripper Pro 3995WX Spotted

guru3d.com

81–90 of 170 posts

Re: Ryzen Threadripper Pro 3995WX Spotted

#81
post #12

I feel like 64 cores is getting rather close to a tipping point: What workloads are so massively parallel that they can use 64 cores of x86 but can’t use the thousands of CUDA cores on a Quadro card? I’m sure right now there are workloads that just need particular x86 instructions, but that feels like a temporary problem. Am I wrong about that being a temporary problem (that would feel frustrating)? Are these cores j…

> What workloads are so massively parallel that they can use 64 cores of x86 but can’t use the thousands of CUDA cores on a Quadro card? Thread divergence. CUDA-cores are linked and take if-statements and for-loops together. This means that if one CUDA core takes a for-loop 1-million times, 31-other CUDA cores will take the 1-million loop with them. (32-cores per NVidia SM). EDIT: CUDA keeps things semantically corre…

You have nailed it; I agree this is the biggest reason why the idea of CPU scaling matching current GPU chips is exciting.

Many other replies speak of the difference between “GPU” and “CPU” without describing it—it’s thread divergence. Processing stream-like data (network streams; compilers and other parsers; human input devices) can branch often and unpredictably using normal algorithms. Think for example how you would tokenize JSON without branching. A single GPU core is quite slow for the general case anyway. They are mostly good at math and bitwise operations. They were able to get this way because of the assumption that there would not be thread divergence for the primary workload, i.e. matrix math on contiguous blocks of memory, which harkens back to their origin as actual Graphics Processing Units.

If thread divergence weren’t such a killer for branching programs, you could probably write anything in CUDA. It’s not very limited; you can write most anything that can be expressed in non-exotic C. A lot the work has to do with schlepping textures around, which is an artifact of the expectation that your code will run at a distance from the messy, branching, unpredictable main program state, so everything (textures, shaders, etc.) should be loaded, processed, and ready to go when it’s frame-buffer time.

Re: Ryzen Threadripper Pro 3995WX Spotted

#82
post #76
post #64

Earlier quoted context omitted.

I'm not sure your CPU will be faster. I'm using Blender on a Ryzen 9 3900x with a RTX 2070S. The CPU is never faster than the GPU. CPU + CUDA is way faster, but when I use OptiX (RTX) it is unbelievable how fast it is. The GPU Raytracer just shines here. The Blender benchmarks: https://opendata.blender.org/

The Nvidia 2xxx series are optimized for ray tracing though, so not sure if comparing with their 1xxx cards make sense.

Well the comparison is between CPU and GPU. Will there come a point that an affordable CPU is faster than a GPU?

Maybe that time will come but I am not sure if that will happen soon.

Re: Ryzen Threadripper Pro 3995WX Spotted

#83
post #76
post #64

Earlier quoted context omitted.

I'm not sure your CPU will be faster. I'm using Blender on a Ryzen 9 3900x with a RTX 2070S. The CPU is never faster than the GPU. CPU + CUDA is way faster, but when I use OptiX (RTX) it is unbelievable how fast it is. The GPU Raytracer just shines here. The Blender benchmarks: https://opendata.blender.org/

The Nvidia 2xxx series are optimized for ray tracing though, so not sure if comparing with their 1xxx cards make sense.

They are not "optimized" strictly speaking. Thousands of CUDA cores on them don't do ray tracing, it is done on a separate hardware which just happens to sit on the same chip. Add RTX cores to Threadripper crystal and you will get the same result.

Re: Ryzen Threadripper Pro 3995WX Spotted

#84
post #12

I feel like 64 cores is getting rather close to a tipping point: What workloads are so massively parallel that they can use 64 cores of x86 but can’t use the thousands of CUDA cores on a Quadro card? I’m sure right now there are workloads that just need particular x86 instructions, but that feels like a temporary problem. Am I wrong about that being a temporary problem (that would feel frustrating)? Are these cores j…

Although graphics companies like to talk about "cores" or "processors" to make their GPUs sound powerful, they are really just counting ALUs. If you marketed this chip similarly, you'd end up with something silly like "1024 AVX Core CPU".

A closer analogue of x86 cores is what Nvidia calls a "Streaming Multiprocessor" and AMD calls a "Compute Unit". There's generally only up to 64-80 of those on the highest end GPUs too. However the difference is that each of those cores is able to perform 40-64 SIMD operations at once, compared to x86's puny 8 or 16 or so.

Re: Ryzen Threadripper Pro 3995WX Spotted

#85
post #12

I feel like 64 cores is getting rather close to a tipping point: What workloads are so massively parallel that they can use 64 cores of x86 but can’t use the thousands of CUDA cores on a Quadro card? I’m sure right now there are workloads that just need particular x86 instructions, but that feels like a temporary problem. Am I wrong about that being a temporary problem (that would feel frustrating)? Are these cores j…

> What workloads are so massively parallel that they can use 64 cores of x86 but can’t use the thousands of CUDA cores on a Quadro card?

Building software, for one. C compilers and python interpreters don't run on a GPU. Lots of stuff doesn't run on a GPU. In fact in practice the only things that run on a GPU are the tiny handful of known subproblems that the industry has collectively decided are "GPU problems".

Like it or not general purpose scalar software is, has always been, and will always remain the standard mechanism by which computing hardware is applied to new problems. Everything else is an optimization around the edges.

Re: Ryzen Threadripper Pro 3995WX Spotted

#86

Earlier quoted context omitted.

What a miserable hopeless post - "they're going to fuck us and what can we do????". Answer: quite a lot, if you have even minimal technical understanding (like, enough to use a blocklist or an ad blocker). Are you incapable even of that?

Yes.

Well... upvoted for the honesty.

Re: Ryzen Threadripper Pro 3995WX Spotted

#87
post #85
post #12

I feel like 64 cores is getting rather close to a tipping point: What workloads are so massively parallel that they can use 64 cores of x86 but can’t use the thousands of CUDA cores on a Quadro card? I’m sure right now there are workloads that just need particular x86 instructions, but that feels like a temporary problem. Am I wrong about that being a temporary problem (that would feel frustrating)? Are these cores j…

> What workloads are so massively parallel that they can use 64 cores of x86 but can’t use the thousands of CUDA cores on a Quadro card? Building software, for one. C compilers and python interpreters don't run on a GPU. Lots of stuff doesn't run on a GPU. In fact in practice the only things that run on a GPU are the tiny handful of known subproblems that the industry has collectively decided are "GPU problems". Like…

Interesting. Is there a compiler, that runs on GPU?

Re: Ryzen Threadripper Pro 3995WX Spotted

#88
post #12

I feel like 64 cores is getting rather close to a tipping point: What workloads are so massively parallel that they can use 64 cores of x86 but can’t use the thousands of CUDA cores on a Quadro card? I’m sure right now there are workloads that just need particular x86 instructions, but that feels like a temporary problem. Am I wrong about that being a temporary problem (that would feel frustrating)? Are these cores j…

This is a point I have been trying to make for a few years now to ever-decreasing amounts of criticism. I think the reality is starting to set in that x86 is actually incredibly powerful, and when you have 64+ parallel copies of that computational facility, you can perform some insane magic. Especially when you start to consider the memory/computation domain you are operating within on CPU when contrasted with a GPU:

With a GPU in the loop, there is an extremely painful hop across PCIe before you can experience any degree of cache coherency. There are protocols, buffering and driver stacks involved. Latency is much higher. You have to plan ahead and think about what memory the GPU needs to mutate vs what memory the CPU needs to mutate. You have to split your application, language, and frameworks across 2 computational domains. How we have tolerated this for so long is beyond me. I think most people who get caught up in it are chasing shiny marketing a lot of the time. This criticism aside, I do think GPUs are still very useful for many applications and users.

With just a CPU, you are looking at L3 as the typical worst case for cache coherency domain. And L3 is getting to be ridiculously large. If your high-performance application's binary image cannot entirely fit within L3 of a modern x86 CPU, you are probably doing something very wrong. The other big advantage with just a CPU is you have 1 cache-coherent memory domain and a single instruction set to answer to. This means you can write 100% of your software in a single language/framework. Well-architected x86 applications can push instructions many times faster than their core clock speed would seem to indicate possible. Using special frameworks that have sympathy with this memory model mean that just a single x86 core can be made to push tens of millions of logical business transactions per second. And then you have 63 other cores to play with. Extremely deep pipelining and OoO execution are what allow for x86 to chew through general purpose computation so easily. Anything with a lot of recursive depth (e.g. raytracing) benefits massively from this style of processor.

I think the next big revolution is developers realizing that they can start porting GPU applications to CPU. Things like raytracing are much better suited for the memory model offered by a pure x86 domain. Sure, a GPU can accelerate some aspects of raytracing, but then you then need to shuttle that information back and forth over a higher latency link, and also fight with 2 completely different technical stacks. Needing to know how to write code for both GPU and CPU is easily the biggest problem with all of this. Especially when you consider how fast GPU APIs move relative to x86. Performance is not the only constraint when dealing with software, especially software as complex as AAA game engines and 3d modeling software. Someone still has to reason with and maintain this stuff over time.

Re: Ryzen Threadripper Pro 3995WX Spotted

#89
post #8

Earlier quoted context omitted.

CPU and motherboard prices aren't really relevant since RAM is so expensive. And only real reason for getting this instead of 3990x is that you need e.g. 1 terabyte of RAM. https://www.amazon.com/Tech-12x128GB-2933MHz-PC4-23400-288-P...

There might be some other cases for less ram. If the rumor that it supports rdimm or lrdimm modules is true then it could enable much easier ecc support since there are not a lot of ecc udimm options out there

I had no problem finding ECC UDIMMs for my TR build. Sure, not that many options but you only need one.

Re: Ryzen Threadripper Pro 3995WX Spotted

#90
post #85

Earlier quoted context omitted.

> What workloads are so massively parallel that they can use 64 cores of x86 but can’t use the thousands of CUDA cores on a Quadro card? Building software, for one. C compilers and python interpreters don't run on a GPU. Lots of stuff doesn't run on a GPU. In fact in practice the only things that run on a GPU are the tiny handful of known subproblems that the industry has collectively decided are "GPU problems". Like…

Interesting. Is there a compiler, that runs on GPU?

GPUs are mainly good at doing matrix multiplication and other math with little branching. Compilers have a lot of if/else statements; training neural networks does not. IIRC (and I may be wrong) the architecture is something like many GPU cores share things like the code cache and branch prediction, so if the different cores have to execute different code paths there is a big performance decrease.

Edit: another reply to this top level comment: https://news.ycombinator.com/item?id=23788755

Post reply on HN