Live data from Hacker News

Ryzen Threadripper Pro 3995WX Spotted

guru3d.com

61–70 of 170 posts

Re: Ryzen Threadripper Pro 3995WX Spotted

#61
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…

At the moment, offline rendering is still massively parallel, but you run into memory limitations when trying to render on the GPU. High end VFX scenes using Renderman or Arnold can push up to 100 GB+ of memory and run for multiple hours on standard 12-24 core machines. I believe some GPU renderers can do "out-of-core" rendering, but not all of them support that yet.

The high end renderers usually split up a large image into "buckets" and then perform path tracing on those regions of an image, and combine the results together. If you have more cores, you can increase the number of simultaneous buckets to evaluate.

To put this in perspective, a lot of the recent news around real-time raytracing is when a game engine does 1-4 samples per pixel and then aggressively denoises (in 2D) the result. That's why you often see splotches or errors. On the other hand, high end VFX renders will end up doing hundreds or even thousands of samples per pixel to get a clean, high quality, physically plausible result.

Re: Ryzen Threadripper Pro 3995WX Spotted

#62
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…

https://www.google.com/search?q=gpu+postgres

Re: Ryzen Threadripper Pro 3995WX Spotted

#63

Earlier quoted context omitted.

GPUs can't run the same code you would have written on a CPU. If you had the choice between an equally performing CPU and GPU you would always use the CPU.

Why? Isn't the CPU will cost more than GPU because of more general instruction set?

Not really: the CPU costs more and can handle more workloads because it has more complicated control flow.

These days, arithmetic is cheap and control flow is expensive. GPUs and SIMD achieve high throughput by tying a set of arithmetic units together with the same control flow. As soon as you get complicated data-dependent workflows - as soon as you put "if" in your code or a virtual method - the GPU starts getting less efficient.

It's very much a "train vs car" argument: a train can deliver a large number of execution units , provided they're all going to the same place, whereas a car can re-route far more easily.

Re: Ryzen Threadripper Pro 3995WX Spotted

#64
post #39
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…

CPUs are much more general! Unscientifically, on my 2950X/1070Ti workstation, Cycles takes approximately the same amount of time to raytrace a scene on the CPU vs the GPU. I think this is a great example of a highly parallel workload that is challenging for GPUs due to lack of coherence - extreme props to the Cycles team for making it work on GPU at all. Also, year-on-year performance increases for nVidia GPUs are re…

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/

Re: Ryzen Threadripper Pro 3995WX Spotted

#65
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…

A large SQL database running queries from many users, say a data warehouse or a backend DB for web app like internet banking or something.

You can run on multiple nodes, but that brings its challenges, see Jepsen.

Re: Ryzen Threadripper Pro 3995WX Spotted

#66
post #41
post #40

Earlier quoted context omitted.

I’m not sure about “require”, but we use multi-hundred-gigabytes or RAM instances for our Elasticsearch coordinator nodes, which seems to work well.

Elasticsearch recommends <32GB because of 32-bit per their doc, is it different for coordinator nodes?

The underlying reason is that at around 32GB the JVM internally shifts from 32bit pointers for HEAP management to 64bit. The feature is called compressed object pointers (compressed oops) The increased pointer size uses substantial amounts of RAM, a reasonable estimate is that you need at least ~45GB to not have a loss in total available HEAP. Also, GC cycles get longer the more HEAP you have. However, some workloads may require more heap to even be possible and there’s pauseless garbage collector implementations able to handle substantial amounts of memory, so it is possible. It’s just not something you should be doing unless you know exactly what you are doing.

See https://wiki.openjdk.java.net/display/HotSpot/CompressedOops

Re: Ryzen Threadripper Pro 3995WX Spotted

#67
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…

There’s such a huge difference in the programming paradigm between writing for multi cores on a GPU versus a CPU. It’s really a very different kind of software architecture. I think it’s unfair to compare the two.

And with such a huge CPU core counts, a lot of the very difficult work of organizing an algorithm to run well on a GPU can be avoided because the CPU approaches the same benefits with a more logical architectural design.

Re: Ryzen Threadripper Pro 3995WX Spotted

#68
It’s unclear to me what eight channel memory actually means, I’m not used to seeing that mentioned in casual architecture overviews. What’s the benefit of that? Is that something that a programmer must explicitly take advantage of, or is that just an automatic part of the CPU?

Re: Ryzen Threadripper Pro 3995WX Spotted

#70
post #41

Earlier quoted context omitted.

Elasticsearch recommends <32GB because of 32-bit per their doc, is it different for coordinator nodes?

That recommendation is only for the JVM heap to my knowledge.

For coordinator nodes, only the HEAP is relevant, excess RAM for disk buffers is only of interest for data holding nodes.
Post reply on HN