Gpu pingpong test
This creates a simple test that makes data be updated on CPU and on GPUs alternatively.
As part of the test, I found out that HIP was not ported over DTD, and this ports HIP over DTD. It also provides a first test for HIP.
I'm a bit lost with CI here... Another pair of eyes would help. To summarize what I observe:
- When running in shared=OFF / profiling=ON mode, we don't detect CUDA at all (no device, no compiler)
- When running in shared=ON / profiling=OFF mode, we always detect CUDA (device part).
- In the master version, we asked for the slack package [email protected], and that makes
check_language(CUDA)fail, becausenvcccannot work with a gcc > 11.x - In the version proposed in this patch, we load the slack package [email protected]. Now something even more curious is happening:
- We detect CUDAToolkit and enable the cuda device without aproblem
- We still claim that
check_language(CUDA)fails. - To investigate why, I have added some CMake messages that are output of the current failing job (https://github.com/ICLDisco/parsec/actions/runs/5294237295/jobs/9583355256?pr=556).
-
nvccis where it should be based on the CUDA toolkit we have discovered - I can run succesfully
nvcc -c /path/to/some/cufile.cu - No CMakeError.log file is generated. I display the contents of CMakeFiles/ and it doesn't seem it contains any useful information.
-
- In the master version, we asked for the slack package [email protected], and that makes
To conclude, I have no idea why check_language(CUDA) fails in this setup, and I'm now out of ideas to test...
please rebase and reassess the changes to the CI part (not clear they are still needed).
Split this PR in two: one for the tester itself and another for the CI/runners
There has not been a lot of progress on this, and I think we can autogenerate (hipify) the hip testers, lets postpone to 4.1