test: restore bounded GPU correctness tests - #1026
Conversation
|
The two Fedora Rawhide Packit failures appear unrelated to this PR. Both fail while linking the existing |
I can take care of this. Similar issue also happened with CP2K. Edit: Done with #1027. |
b843ad1 to
4513996
Compare
|
@Stardust0831 thanks for your PR. I must admit, the checks of the GPU kernels are less and less important nowadays since we now provide a generic kernel. The other limitation is that CI doesn't check GPU execution at all, so there is no way to verify it (I will do it manually in the next days). |
|
Thanks @Growl1234 for quickly tracking this down and fixing the Fedora Rawhide/GCC 16 C API linking issue in #1027! After rebasing onto the latest |
Motivation
The
libsmm_acc_unittest_multiplyandlibsmm_acc_unittest_transposeexecutables are built for CUDA and HIP, but their CTest registrations have been disabled because the original tests were not parallelized and were too slow (see #427). As a result, accelerator builds currently compile the tests without running their correctness checks.Fixes #427.
Changes
gpu;libsmm_acc, run them serially to avoid GPU contention, and provide configurable rank and timeout settings.Non-MPI builds continue to execute the same tests directly with one process.
No production DBCSR kernel or accelerator code is changed.
GitHub Actions red/green validation
I ran the same temporary self-hosted workflow against the code before and after this patch. The workflow itself is kept only on validation branches in my fork and is not part of this PR.
developplus only the temporary workflowTotal Tests: 0andtest_rc=8dbcsr-v100-gha-gpu-before-29677536620artifact
libsmm_acc_unittest_multiply: passed in 50.27 slibsmm_acc_unittest_transpose: passed in 3.47 sdbcsr-v100-gha-gpu-after-29677660083artifactAdditional validation
As a separate validation of the MPI/device-sharding approach, I also ran
libsmm_acc_timer_multiplywith a benchmark-only patch on 1, 2, 4, 8, and 16 V100 GPUs. A fixed 1,024-kernel workload reached 1.98x, 3.44x, 4.82x, and 7.59x speedup, respectively, and all CPU checksum validations passed. The timer changes are not included in this PR.CUDA runtime behavior was validated on V100 GPUs. HIP/ROCm remains covered by the existing compile CI, but I did not have an AMD GPU runner for a HIP runtime test. These are DBCSR backend correctness tests rather than CP2K application
regression inputs. The upstream GitHub Actions accelerator jobs currently compile these executables without access to a physical GPU; this PR makes the tests runnable by GPU-enabled CTest environments but does not add a permanent GPU runner.