Hey GCC Community, I am interested in contributing to the "Enhance OpenACC Support" project for Google Summer of Code 2025. In particular, I am excited about implementing acc_memcpy_device and the #pragma acc cache directive.
To prepare, I have started reviewing the OpenACC 2.6 specification and have explored how acc_memcpy_to_device is implemented in GCC. Specifically, I have examined libgomp/oacc-mem.c and libgomp/oacc-mem.h to understand memory operations, as well as c-family/c-pragma.c, omp-expand.cc, and omp-low.cc to see how OpenACC directives are parsed and processed. I have some experience with OpenMP and a compilers course and those are proving to be helpful while I research the requirements of the project. I would appreciate any guidance on understanding the init, shutdown, and set directives, as I have not yet explored them in depth. Additionally, I would like to get a better sense of the scope and challenges of this project. From my research, it seems that implementing the cache directive could be particularly complex. Are there other key technical considerations or design constraints I should focus on? Also, how much technical detail should I provide in my GSoC proposal? Should I already have an idea of how I should be implementing these issues? Thanks for any guidance! Pau