Abysmally bad performance of opencl_*_amd_win applications
Message boards :
Number crunching :
Abysmally bad performance of opencl_*_amd_win applications
Message board moderation
| Author | Message |
|---|---|
|
Send message Joined: 30 Jul 14 Posts: 5 Credit: 8,395,974 RAC: 11,885 |
Last modified: 19 Jul 2026, 13:19:20 UTC TLDR: OpenCL performance is 4 times lower than Zen4 Win10 application performance /W I'm running Asteroids@Home using 2 application: - GPU OpenCL (Since I have AMD 7900GRE card) - I run **single** A@H GPU task that uses 100% of DP power of my GPU. - GPU uses about 170W of power. - Tasks give about 0.14-0.15 credits/s per GPU task in parallel execution. - This gives 0.085 credits/100W - CPU (Zen4) - I run 16 A@H CPU tasks. - CPU uses about 120W of power. - Tasks give about 0.024-0.026 credits/s per CPU task in parallel execution. - So about 0.4 credits/s for whole CPU (16 parallel tasks) - This gives 0.3(3) credits/100W - so almost 4 times more credits/W. Comparing OpenCL times to CPU times it seems like OpenCL implementation is broken. - OpenCL uses 3GB of GPU RAM, CPU uses 13MB of RAM. - OpenCL performance is about 4 times lower than Zen4 CPU performance. - CUDA (i.e. cuda118_linux run on 4090D) gives 0.13 credits/100W, so while it's better, it's still way behind simple CPU tasks Is this due to A@H not really compatible with GPU parallel processing style? Perhaps some instruction optimizations that are available for CPU aren't still available for GPUs? WTH is going on in here? Right now executing OpenCL AMD tasks is a total waste of energy, while CUDA tasks only waste a little less energy vs (not newest, 1 generation old, Zen4 CPU) CPU tasks. Anyone? |
|
Send message Joined: 1 Jan 13 Posts: 225 Credit: 19,021,575 RAC: 68,068 |
> Perhaps some instruction optimizations that are available for CPU aren't still available for GPUs? CPU optimizations don't translate to GPUs because they operate differently. The app is heavily optimized for CPUs, with a particular focus on Zen 4/5. > Is this due to A@H not really compatible with GPU parallel processing style? Not all applications see huge gains from a GPU. That said, it's true that the GPU version isn't as optimized as the CPU version currently is. We're working on new applications that will significantly improve GPU performance on both AMD and NVIDIA hardware - about 2–3× faster depending on the GPU type. However, I can't promise a release date. |
|
Send message Joined: 23 Apr 21 Posts: 130 Credit: 147,984,237 RAC: 219,145 |
the official applications are very not optimized. but I have created several PRs that will improve that (maybe 2-3x faster than it is now). these changes have been accepted and merged, but the applications will still need to be rebuilt and added to the project which will undoubtedly take time. I also have a custom HIP version of the application, which is even faster. and you can run this under Anonymous platform. get it here: https://github.com/IanSteveC/ps_claude_opt/releases there are Windows and Linux versions there, as well as custom CUDA apps which are even faster. keep in mind that my apps become so fast that FP64 performance becomes the limiting factor, so cards with very high FP64 performance will do best. but high clock speed helps too. still on the AMD side, something like a Radeon VII will probably outperform your 7900GRE.
|
|
Send message Joined: 30 Jul 14 Posts: 5 Credit: 8,395,974 RAC: 11,885 |
Last modified: 19 Jul 2026, 14:58:06 UTC the official applications are very not optimized. Great job. I think I have also seen your E@H applications being run. Still, I'd prefer not to use custom builds, even though I'm perfectly capable of doing so. Do you know how long would it take for A@H team to rebuild/validate applications with your PR? I don't know their workload, but I believe it's of somewhat high priority if they could increase their throughput significantly with just application substitution. I'm also trying "Project Lasso" to properly maintain CPU affinity and will provide results soon'ish (probably a day or so to test 1core affinity and non-HT affinity results). Would it be possible for you to estimate total performance gains of your builds? |
|
Send message Joined: 30 Jul 14 Posts: 5 Credit: 8,395,974 RAC: 11,885 |
Last modified: 19 Jul 2026, 15:12:49 UTC > CPU optimizations don't translate to GPUs because they operate differently. The app is heavily optimized for CPUs, with a particular focus on Zen 4/5. I do understand that GPU applications are totally different :) I was referring to OpenCL release (1.0, 1.1, 2.0, 2.2, 2.2 etc) and CUDA runtimes/SDK versions - perhaps A@H is focused on max compatibility, instead of dropping oldest GPUs in favor of greater performance for everyone. > Not all applications see huge gains from a GPU. That said, it's true that the GPU version isn't as optimized as the CPU version currently is. > We're working on new applications that will significantly improve GPU performance on both AMD and NVIDIA hardware - about 2–3× faster depending on the GPU type. However, I can't promise a release date. 2-3x faster would be almost as good as CPU applications, but that amount of performance improvement IS significant. Right now I aborted my GPU work for A@H, and restricted A@H to CPU only. If GPU applications would be 3times faster (that would probably depend on how big of an improvement I'd have on my 7900GRE) I might consider GPU tasks. Right now I plan to test "Project Lasso" extensively trying to max out my CPU performance. I'll report on my findings. |
|
Send message Joined: 1 Jan 13 Posts: 225 Credit: 19,021,575 RAC: 68,068 |
Just building the app with OpenCL 2 or CUDA 13 doesn't result in any performance improvements. If the newer SDKs introduced useful features or delivered measurable performance gains, it would make sense to drop support for older GPUs. Unfortunately, there are no such benefits, so using the new APIs would only break compatibility with older GPUs without any advantage. Performance improvements come from rewriting the code to better utilize the hardware through improved parallelization, cache utilization, etc. You should see a significant performance boost on your 7900 GRE with Ian’s build, (around 100 seconds per work unit). For comparison, the H100 https://www.techpowerup.com/gpu-specs/h100-pcie-80-gb.c3899 completes a single WU in about 9 seconds (without MPS), thanks to its 25.61 TFLOPS of FP64 performance. Radeon VII should also perform well. Unfortunately, FP64 throughput is significantly constrained on most current consumer GPUs. Either way, the new apps should improve /W efficiency on all supported GPUs. |
|
Send message Joined: 30 Jul 14 Posts: 5 Credit: 8,395,974 RAC: 11,885 |
Last modified: 19 Jul 2026, 18:35:28 UTC > Just building the app with OpenCL 2 or CUDA 13 doesn't result in any performance improvements. If the newer SDKs introduced useful features or delivered measurable performance gains, it would make sense to drop support for older GPUs. Unfortunately, there are no such benefits, so using the new APIs would only break compatibility with older GPUs without any advantage. Understood. > You should see a significant performance boost on your 7900 GRE with Ian’s build, (around 100 seconds per work unit). That's like 4-6x performance improvement, which would bring my AMD GPUs ahead of CPU performance. |
Message boards :
Number crunching :
Abysmally bad performance of opencl_*_amd_win applications