Simple File System for Nvidia and AMD GPU Code Generation Testing
2. Project Description and Goals
-
This project aims to enhance the GCC testing framework for GPU-targeted
code generation by developing a simple "in-memory" file system or an RPC
mechanism for devices to access host files. These features are necessary to
support file operations in GPU test cases that currently fail due to the
lack of I/O support.
-
Key Deliverables:
-
Implement a volatile, in-memory file system (initially empty or with
preloaded files).
-
Extend test harness functionality to handle additional test case
files.
-
Investigate and, if feasible, implement an RPC mechanism to enable
device-host file interactions.
-
Test and document the changes for seamless integration into the GCC
framework.
3. Why This Project is Worthwhile
-
Testing infrastructure is critical for ensuring the robustness of
GPU-targeted code generation, especially in HPC workloads where GPUs
dominate. By addressing this gap in GCC, the project enhances its utility
for developers using Nvidia and AMD GPUs in high-performance computing.
-
With the growing adoption of OpenACC/OpenMP offloading and the rise of
GPU-based workflows, this improvement ensures GCC remains a competitive and
reliable compiler for modern heterogeneous hardware
4. Introduction and Skills
-
Who I Am:
My name is Ambika Sharan, and I am a Computer Science and Data Science
student at the University of Wisconsin-Madison, graduating in December
2025. My primary interests lie in high-performance computing (HPC), GPU
programming, and compiler optimization.
-
Relevant Skills:
-
Programming Languages: Proficient in C, C++, Python, and Bash.
-
GPU Programming: Experience with CUDA and OpenMP.
-
Linux Systems: Advanced knowledge of Linux-based systems and
compiling software from source.
-
Research Experience: Conducted AI/ML research with Wisconsin Science
and Computing Emerging Research Stars (WISCERS).
-
Internship Experience: At AMD, contributed to AI/ML initiatives
involving performance engineering and benchmarking.
-
Why I’m a Good Fit:
My background in HPC, coupled with my experience in low-level GPU
programming and Linux-based workflows, equips me to address the technical
challenges of this project. My ability to work collaboratively with diverse
teams and adapt quickly to new tools and environments ensures I can
contribute effectively to the GCC community.
5. Preparation and Research
-
Current Progress:
-
Engaged with the GCC community on mailing lists and IRC to clarify
technical details.
-
Reviewed the paper "A Modern Compiler Infrastructure for OpenMP"
<https://arxiv.org/pdf/2110.10151.pdf> and relevant GCC documentation.
-
Built and tested GCC on my local machine, gaining familiarity with
its codebase and test harness.
-
Next Steps:
-
Continue engaging with the community for feedback on this application.
-
Finalize the design for the in-memory file system or RPC mechanism,
ensuring alignment with GCC’s existing architecture.