Hi Pau! On 2025-03-19T21:53:22-0400, Pau Sum via Gcc <gcc@gcc.gnu.org> wrote: > Hey GCC Community,
Welcome to GCC! > I am interested in contributing to the "Enhance OpenACC Support" project for > Google Summer of Code 2025. Thanks for your interest! I saw you also briefly discussed on GCC IRC. I'm logged in, but usually only able to follow the discussions very, very asynchronously. :-/ You mentioned you "currently have a thinkpad with amd integrated gpu", "AMD Ryzen 7 Pro 4750U", "Advanced Micro Devices, Inc. [AMD/ATI] Renoir [Radeon RX Vega 6 (Ryzen 4000/5000 Mobile Series)]". By now, have you been able to figure out whether that one's supported with GCC/GCN '-march=gfx90c', via building an offloading toolchain, <https://gcc.gnu.org/wiki/Offloading>, and running some simple OpenACC or OpenMP 'target' code? (It really shouldn't be necessary, but... as others have remarked, for stability reasons, when using the AMD GPU for code offloading, you may have to disable other use of it -- like, graphical UI...) Or, indeed, as an alternative to an AMD GPU, a system with any kind of Nvidia GPU should work. > 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. Yes, that's a good start. > I would appreciate any guidance on understanding the init, shutdown, and set > directives, as I have not yet explored them in depth. Do you have specific questions in addition to the "Notes on OpenACC 'init', 'shutdown', 'set' directives" already provided on <https://gcc.gnu.org/wiki/SummerOfCode>? > 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? The good thing about this project is that it can be scaled as we'd like: it consists of several, (mostly) totally independent parts, like those you've mentioned above. Plus, additional features as per the more recent releases of the OpenACC specification, with varying complexity, which we (mostly) can pick individually. Of course, you'd not start with the most complex one first. > 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? That'll certainly be good, to demonstrate that you have an idea what you're doing. Of course, for the more complicated ones, like, indeed, the 'cache' directive, that's maybe not possible to flesh out in full detail, but you could, for example, discuss some ideas about how this might be implemented, at a higher level, and/or which existing GCC infrastructure might be used for it, etc. For example, in your proposal, you could list a number of OpenACC features that are not yet implemented, and your idea how (or, similar to which existing feature) they might be implemented, and a rough guess about the estimated complexity. We strongly recommend that aspiring GSoC contributors submit any kind of GCC code changes in advance of the GSoC selection process. (Need not be directly related to the task you'd like to work on for GSoC.) > Thanks for any guidance! Happy to look into any further questions you may have. Grüße Thomas