Hello everyone, I just recently finished NVIDIA All Summer Intern SDE interviews (telephone interview + technical interview + two rounds of VO) have received Positive Feedback. Here I share with you my real experience, the specific questions of each round, the answering process, and the interviewer’s follow-up questions.
Process:HR phone + technical + two rounds of VO
Overall feeling: The requirements are really high. It’s not just about answering questions. Each round has in-depth questions about engineering details. C++ asks about the bottom layer, and the system design is also very practical.

Telephone interview (35 minutes)
This round was led by HR, but mixed with some technical issues.
Project digging
The interviewer focused on a multi-threaded data pipeline project on my resume. I detailed my responsibility for the design of thread pools and task queues, implemented using C++11's std::thread, std::mutex, and std::condition_variable. Special emphasis is placed on implementing the queue by itself to provide fine control over memory allocation and real-time performance.
The interviewer asked about thread safety issues, and I focused on the handling of false wake-ups and why using while instead of if in condition variables.
Other questions
- When to use multithreading and when to use multiprocessing? (Answer based on actual scenarios)
- How to determine if a linked list has a ring? (Speed and slow pointer + ring entry)
This round is not difficult In summary, but it needs to be answered based on real project experience, not just memorizing concepts.
Technical aspects (60 minutes)
This round was led by Senior Engineer, and the C++ questions were very in-depth.
RAII actual combat
The interviewer asked to explain RAII based on actual projects. I gave an example of GPU memory management: in the early days of manual cudaMalloc and cudaFree using raw pointers, it was easy to forget to release abnormal paths and cause leaks. Later, std::unique_ptr was used with a custom deleter, which was automatically released when the object was destroyed.
Asked about the selection scenarios of unique_ptr and shared_ptr, and how to solve circular references with weak_ptr.
Move Semantics Ask what problem move semantics solves, and scenarios where I actually use move in my code. I talked about avoiding copies when returning large objects, and the valid but unspecified state of objects after a move.
Multi-thread synchronization
Topic: Implement three threads to print A1 B2 C3 A4 B5 C6 in sequence... I use three semaphore to implement directional wake-up, and use mutex to protect the shared counter.
Follow-up: How to prevent deadlock when a thread exits abnormally? I proposed a watchdog thread to monitor the heartbeat and reset the semaphore after timeout.
VO first round (GPU direction)
BQ + project
The focus was on CUDA kernel optimization experience. I shared a matrix multiplication kernel optimization process, including Memory Coalescing, Shared Memory Tile cache and Occupancy tuning.
After asking about the handling of bank conflicts, I talked about using padding alignment to solve the problem.
Coding part
- Angle between clock hands Given a time such as "3:45", calculate the minimum angle between the hour and minute hands. I use a formula to calculate the two pointer angles, take the absolute value and take the minimum value of 360, paying attention to floating point precision and boundary processing.
- Multithreaded sequential printing For a similar technical question, I implemented it using semaphore and explained why it is better than a simple mutex + condition_variable.
Follow-up Asked about millisecond precision and thread exception exit handling.
VO Second Round (System Design Round)
System design:High-throughput GPU inference service(LLM service scenario)
Let me start with the overall architecture:
- Front-end Load Balancer + Request Queue
- Dynamic Batching + Continuous Batching
- Worker Pool + Memory Pool manages video memory
- Multiple cards use NCCL communication
The interviewer’s key questions:
- Hot/cold model loading strategy (resident vs LRU swap-in and swap-out)
- Downgrade solution when GPU memory is insufficient
- Applicable scenarios and limitations of CUDA Graph
Coding: Minimizing GPU task scheduling Makespan I first gave the Greedy + Priority Queue solution, and then discussed Critical Path + List Scheduling under DAG dependency.
Write at the end
This NVIDIA interview has come to this point. What I am most grateful for is the help of Programhelp. During the preparation process, their team escorted me throughout the entire process, giving me very practical support from in-depth project research to system design details to interview presentation. If you are also preparing for interviews with NVIDIA or other major manufacturers, you need OA ghostwriting , real-time assistance or face-to-face service, you can contact Programhelp directly for details, and they will give you a plan based on your specific situation.
Thanks for reading and I wish you all can get the NVIDIA Offer as soon as possible!