T1 Large companies and unicorns Bilibili Internship Round 1
Bilibili AI Infra internship first round
Real Bilibili AI Infra internship first-round interview questions covering operator optimization and high-performance computing
Operator optimization High-performance computing
Theory
- How do you define process, thread, and coroutine? How do they differ in resource use and scheduling?
- In CPU scheduling, how does fairness differ when you schedule by process versus by thread?
- In distributed training, what data exchange do All-Reduce, All-Gather, and All-to-All each perform? Which parallelism strategies fit each?
- How do you use profiling tools to tell whether a GPU operator is memory-bound or compute-bound? What are the usual optimization ideas?
- Once you know the bottleneck type, what targeted tuning do you apply? For example coalescing memory access, simplifying compute, and choosing block size.
Project deep dive
- Detailed questions about the optimization work you took part in
Live coding
- CUDA: sum-reduce a large array using Shared Memory for intra-block reduction, then multi-level kernels for the global sum