KernelTuner / kernel_tuner

Kernel Tuner
https://kerneltuner.github.io/kernel_tuner/
Apache License 2.0
291 stars 49 forks source link

Improved OpenACC support #248

Closed isazi closed 6 months ago

isazi commented 8 months ago

Improved support for tuning OpenACC code. Fixes multiple bugs and adds some functionalities, including automatic data transfers to improve performance measurements.

isazi commented 6 months ago

@benvanwerkhoven this pull request is ready for merge, would be nice if we could merge before CompSys. Two more features, and OpenMP support, are planned for later during the year, but I don't think that waiting for them before merging this is helpful.

sonarcloud[bot] commented 6 months ago

Quality Gate Passed Quality Gate passed

Issues
12 New issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

benvanwerkhoven commented 6 months ago

Awesome work! Thanks a lot! I just ran the tests and examples on my laptop and it worked like a charm.

I noticed all the old C and Fortran examples that use either OpenACC or OpenMP are still working, which is good. We should think about whether to keep those or make the new way the recommended way to tune directive-based code and provide examples for just that. If you have an opinion on how to organize the examples, I'm happy to hear it!

I noticed there is basically no mention of any OpenACC support in the documentation. I've added the examples to list of languages that implement the Vector Add example, but we should expand the documentation in the future.