← Back to All Placements

Xiong Yi Loh

GPU Modelling Intern

Arm
Cambridge, UK

Summary

During my placement at Arm, I worked as a GPU Modelling Intern within the Performance Correlation sub-team. My placement focused on comparing the performance of Arm's GPU cycle-approximate model against RTL developed by the hardware teams. My main project involved developing new performance metrics for comparing the GPU model and RTL memory systems and investigating performance differences between them. Throughout the placement, I developed and modified scripts to automate the generation and correlation of performance counters. I also worked on aligning newly implemented model performance counters with equivalent RTL counters by investigating mismatches using RTL waveforms and model logs, which gave me a much stronger understanding of GPU architecture and model development.

Role and Contributions

My role was a GPU Modelling Intern in Arm's Performance Correlation sub-team, where my main responsibility was to develop new performance metrics that could be used to compare the GPU cycle-approximate model with RTL within the memory system. I created and modified scripts to automatically generate model performance counters and correlate them with equivalent RTL counters. I completed the automatic generation of performance counter correlation status and extended the implementation to support both validation tests and external applications, allowing the scripts to be used across a wider range of workloads. I also contributed to improving the alignment between the GPU model and RTL by investigating performance counter mismatches. This involved analysing RTL waveforms and model logs to understand discrepancies and determine whether changes to the model were required.

Technical Skills

During my placement, I used Python to develop scripts for publishing and investigating performance counter mismatches, which helped me identify large differences in test cases more efficiently. I also used nightly Jenkins runs to perform performance correlations instead of manually running RTL simulations to reduce simulation and compute time. I developed my RTL debugging skills by analysing simulation waveforms alongside RTL source code to determine the causes of performance discrepancies. I also used model logs during debugging and learned how changes to individual performance counters could affect other counters due to their interdependencies. Through this work, I gained a stronger understanding of GPU RTL implementation, GPU architecture and the GPU model itself. I also gained experience with industry-standard tooling and learned more about model development and the importance of modelling performance for future investigations.

Professional Skills

The placement helped me develop my communication and collaboration when working as a team in industry. Although I worked independently on much of the implementation, I regularly discussed my progress with my manager and other members of the team, which helped me identify where fixes should be made and improved the efficiency of my debugging process. Working within a large software project also taught me the importance of collaborating effectively across multiple teams and writing maintainable code. I gained experience communicating with experienced engineers, asking for advice and responding to feedback to improve my day-to-day work. The placement also gave me a better understanding of Arm's work culture and how software and hardware development differ within industry compared to project work in academia.

Tags

Software Hardware (Digital)