News for hackers. Stuff that matters.
Re:Are Experts Real? by ncmncm on Monday January 11, 2021 @08:55PM (#25741276)
What you say about performance on NV 3090 probably applies better to much older GPUs.

NV has put a great deal of recent work into getting their system to execute regular multi-threaded code with the same sort of speedup as they have had with SIMD workloads. It might be better to think of today's NV GPU as a super-threadripper when the data to be processed is already in GPU memory. The coder's job becomes making sure enough threads are ready to run to use up all the compute units at all times.

Re:Are Experts Real? by dragontamer on Tuesday January 12, 2021 @01:00PM (#25750661)
> NV has put a great deal of recent work into getting their system to execute regular multi-threaded code with the same sort of speedup as they have had with SIMD workloads.

I think you're talking about "Independent Thread Scheduling", which has been deployed since Volta.

https://docs.nvidia.com/cuda/volta-tuning-guide/index.html#s...

https://images.nvidia.com/content/volta-architecture/pdf/vol...

You're close... but wrong in a few key areas.

What NVidia has done is make it POSSIBLE to run multithreaded code without deadlocks. There's still the thread-divergence performance problem.

That is to say: you can now do more classical lock/unlock paradigms on NVidia hardware, but the code is serialized and becomes sequential. One 32-wide SIMD unit will execute only 1x thread at a time in that case. (That is: 1/32 utilization. The SM is designed to handle 32 SIMD threads but is only executing one of them at a time)

So you still have the thread-divergence performance problem. On older GPUs, such divergence would have been a DEADLOCK instead. So you've gone from 0% performance utilization to 3% utilization, which means your code actually will finish.

But it doesn't mean that your code actually has any degree of worthwhile performance. Indeed: CPUs have proven that time-and-time again, per-thread branch-prediction and prefetching is best for that kind of code.

If you have a great deal of divergent if/else statements in your code, you'll want to run on CPUs. NVidia GPUs can now handle those situations better (ie: without deadlocking if those if/else statements contain thread-synchronization statements), but they aren't actually high-performance in those use cases.

Re:Are Experts Real? by ncmncm on Wednesday January 13, 2021 @12:29AM (#25758573)
I am corrected.

I made the mistake of believing what the project manager said about it.