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

Reply via email to