Nvidia Interview Process - Intern Software Engineer
GPU Performance Engineering internship on NVIDIA's Deep Learning and HPC team in Santa Clara, California. Two rounds in December 2024. I applied cold, directly. To prepare I read Glassdoor interview experiences and practiced Python, object-oriented programming and systems fundamentals.
Round 1: Python, HPC, Linux and Docker
Python: counting occurrences of elements in a list. I used a dictionary to track frequencies, explained the time and space complexity, and we discussed handling an empty list.
HPC: why doubling the number of GPUs might not double performance. I talked about communication overhead, synchronization, and the parts of the workload that can't run in parallel.
Round 2: Object-oriented programming and Python
Design a Python class that stores benchmark results and calculates average runtime. I explained how I'd initialize the class, add measurements, and handle a request for an average before any measurements were recorded. The discussion was about organizing data and behavior, clear method responsibilities, and explaining my design decisions.
Tips
Practice writing Python while explaining your reasoning. Review dictionaries, lists, classes and edge cases.
For systems topics, understand how compute, memory bandwidth, temperature, batching and communication can limit performance.
Hands-on Linux and Docker experience helps.
Be ready to discuss your projects: what you contributed, why you chose your approach, and how you verified your results.
Outcome
Received an offer.
Was this experience helpful?
Be the first to mark it helpful
No comments yet
Be the first to ask the author a question or share your own take.