11.27 NVIDIA SDE |英偉達第一輪 VO 面經

今年投的面試裡,英偉達這輪算是我最能感受到“技術深度差距”的一場。
NVIDIA SDE 不是那種高壓式拷打,但你能明顯感覺到——面試官每問一個問題,都來自他真實踩過的坑,而不是背題庫。

整個流程 45 分鐘左右,前半段是帶技術味的 BQ,後半段是現場 Coding。

下面分環節說。

行為面(其實是技術深挖):講過的每個 GPU 專案,都要經得住拆

面試官一開場就讓我選一個 GPU / 平行計算相關的專案講。我挑了之前做的 CUDA kernel 最佳化。

但剛開講我就意識到:
NVIDIA 的“講專案”不是讓你講故事,是讓你拆工程細節。

對方的問題節奏大概是這樣的:

  • “你在這個專案裡真正負責的是哪部分?kernel 的哪段邏輯?”
    一句話把“泛泛講框架”堵死了。
  • “profiling 的時候你具體看哪些指標?SM occupancy?warp divergence?memory throughput?”
    你看過就看過,沒看過一問就露餡。
  • “你為什麼能判斷瓶頸在 memory bandwidth 而不是 compute unit?”
    這個問題其實是在看你是否知道 bandwidth-bound / compute-bound 的判斷方法。

整個過程給我的感受是:

你可以沒有做得很複雜,但你說的每一句都必須基於真實經驗。

CUDA Kernel 最佳化思路:你會不會“堆概念”,面試官一聽就知道

第二部分繼續順著 CUDA 最佳化問。

這類問題很多公司也會問,但英偉達的角度比較“工程”。比如:

  • 什麼時候用 shared memory?
  • block / grid 為什麼這樣切?
  • warp divergence 在你專案裡怎麼體現?
  • 為什麼這麼最佳化?具體收益多少?

你要能解釋“為什麼這樣做”,而不是“別人都這麼做”。

嵌入式效能瓶頸:Jetson Nano 上的 trade-off 怎麼做?

這題我覺得是英偉達特色題。

面試官直接問:

“如果你的模型要部署在 Jetson Nano,你怎麼在效能、功耗、視訊記憶體之間平衡?”

我提了 quantization、pruning、kernel fusion、batch size 等等。
但面試官追問的方向很實際:

  • 你如何判斷當前瓶頸?
  • 你怎麼知道是 memory bound?
  • 有資料嗎?有 profiling 圖嗎?

我當時心裡想:
英偉達面試官真的都喜歡 Nsight 圖啊……

Coding(共享 codepad):題不難,但“講清楚比寫對更重要”

整體難度不高,但每一步的邏輯、公式來源都要解釋,尤其是第一題。

題 1:Clock Angle(時鐘指標夾角)

給一個時間,比如 "3:45",算時針和分針的夾角。

面試官特別強調:
“公式不能直接寫,要說為什麼是這個公式。”

我按正常的方法講:

  • 分針:一分鐘 6°
  • 時針:一小時 30°;一分鐘額外 0.5°
  • 先算兩個相對 12 點的角度
  • 差值如果 >180°,用 360° – diff

講完面試官點點頭,又丟出 follow-up:

“如果給到秒甚至毫秒呢?”

這其實考你能不能把“離散角度”換成“連續角度”,把每個指標的角速度講清楚。

題 2:多執行緒順序列印

要求三個執行緒 A/B/C 迴圈按順序列印數字。

我用 semaphore 寫的:

  • A 先拿到許可 → 列印 → 放行 B
  • B 列印 → 放行 C
  • C 列印 → 放行 A
  • 計數器用鎖保護,避免 race condition

這裡面試官關注的不是你用什麼庫,而是:

你是否真的理解執行緒之間是怎麼“把執行權交給下一個人”的。

這輪下來,我對 NVIDIA 面試最大的感受

如果用一句話總結:

英偉達想知道你是否真的寫過 CUDA 和 profiling,而不是“知道 CUDA 是什麼”。

他們的問題全是工程化細節,不是八股。

如果你未來要面 NVIDIA 的 GPU / 並行方向崗位,我覺得最該準備的不是 LeetCode,而是:

  • kernel 最佳化的真實經驗
  • Nsight / nvprof 做 profiling 的理解
  • 如何判斷效能瓶頸
  • embedded 場景的功耗/效能 trade-off

Coding 不難,但解釋思路的清晰程度非常重要。

最怕的深挖追問,靠遠端助攻穩了

英偉達 VO 最慌的就是 “突然換角度 + 死磕細節”—— 尤其 CUDA kernel profiling 和 embedded 場景 trade-off,我之前準備得稀碎…

還好面前兩天緊急衝了 Programhelp 的 VO 遠端助攻,體驗直接超出預期!

全程實時語音帶節奏,像身邊站了個冷靜到離譜的教練:卡殼時立刻提醒 “先講 profiling 核心指標”思路跑偏就拉回 “往 compute-bound vs memory-bound 推導”還會補刀 “這裡加個依據,不然必被追問”

對 VO 高密度問答容易慌、GPU/CUDA 背景不紮實的朋友,這波助攻是真能救場,臨場表現直接拉滿!

author avatar
jor jor
END
 0