Live data from Hacker News

Ryzen Threadripper Pro 3995WX Spotted

guru3d.com

21–30 of 170 posts

Re: Ryzen Threadripper Pro 3995WX Spotted

#21
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...

What workload do you have in mind?

Scientific computing is what I would be interested in for these types of hardware.

Re: Ryzen Threadripper Pro 3995WX Spotted

#22
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 correct per thread by "throwing away work" (execution mask is disabled, so those 31-other threads effectively execute NOPs), but the cores are wasted.

Worst case scenario, your CUDA cores accomplish 1/32th the work they could do, as they spin idle waiting for the last 1 thread to complete a for loop or its unique combination of if-statements.

Matrix multiplication doesn't have any thread divergence, because all threads loop the same amount of times on all workitems. This means that Tensors / Deep Learning simply ignores the problem, because they're written as matrix multiplication problems.

Avoiding thread-divergence, or mitigating its effects, is possible, but requires advanced programming skill that few have.

--------

Examples:

Chess -- Traditional multithreaded chess algorithms have every thread check out a different branch of the chess search tree. But because each branch has different positions and moves, its very difficult to code it in such a way that all threads are doing useful work.

Web Servers -- If every thread is handling a different request, then every thread probably traverses a different set of if-statements and loops. This is a thread-divergence nightmare.

Databases -- SQL Databases traditionally have each thread running a different, independent SQL query. Like web-servers, its difficult to imagine parallelism from a high-level.

-------

However, elements of Chess, Web-servers, and Databases can probably be efficiently parallelized onto GPUs.

Chess -- This github repo demonstrates that enumerating positions can be done GPU-parallel: https://github.com/ankan-ban/perft_gpu

Web-servers -- Text parsing, Regex, and many other problems common to Web-servers have been parallelized on GPUs. The main question for me, is whether or not the PCIe traversal would be worthwhile (lower bandwidth than RAM, high latency). Web-servers tend to be I/O heavy and less compute heavy... probably not dense enough to benefit from GPU compute.

Databases -- Merge-join and Hash-join probably can be parallelized to GPUs.

Figuring out the optimal CPU + GPU team is going to be a research problem over the next 10, maybe 20 years.

Re: Ryzen Threadripper Pro 3995WX Spotted

#23
I wonder how much the silicon quality differs on a single Threadripper Chip.

It would really be interesting to see if it's feasible to Overclock the best numa node to a degree that gives this a couple of high single thread performance cores comparable to the 3900X or 3950X while retaining stability overall.

Re: Ryzen Threadripper Pro 3995WX Spotted

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

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.

Re: Ryzen Threadripper Pro 3995WX Spotted

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

Fuzzing programs is really a CPU task, although it can usually be horizontally scaled across multiple boxes.

Re: Ryzen Threadripper Pro 3995WX Spotted

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

Fuzzing programs is really a CPU task, although it can usually be horizontally scaled across multiple boxes.

Someone wrote a SIMD-fuzzer across AVX512.

Its quite possible that someone figures out an x86 emulator on GPUs that fuzzes register values, similar to AVX512 fuzzing. https://gamozolabs.github.io/fuzzing/2018/10/14/vectorized_e...

------

Fuzzing is unique in that 99% of code probably traverses the same set of if-statements or branches. Whenever code significantly diverges (usually defined by Fuzzers as a significantly different instruction-pointer path of some kind), you've successfully fuzzed a new result.

Fuzzers... strangely enough... are programs I'd expect to run pretty well on GPUs or SIMD. If enough R&D research effort were put into it.

Re: Ryzen Threadripper Pro 3995WX Spotted

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

Photogrammetry algorithms that process multiple images independently and then combine the results. Unfortunately they tend to be CPU heavy, and what can be is done with GPU help.

Re: Ryzen Threadripper Pro 3995WX Spotted

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

Compiling large projects like the linux kernel is an obvious one.

Re: Ryzen Threadripper Pro 3995WX Spotted

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

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?
Post reply on HN