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.