今天去東南大學參加的NVIDIA校園招聘的筆試,我申請的職位是Graphics Architect,偏向軟體類的。出乎意料的是沒有考OpenGL管線流程圖附帶Programmable Pipeline的結合,那個東西我閉著眼睛都能畫出來。大部分題目都是很基礎的,CS專業的應該都會做。簡單的瞥了周圍一下,彷彿沒有本科生,即使有也是CS、EE專業的Master,我這個學木工的爛校本科生和他們在一起我真覺得很奇怪。
說一下筆試題目。最後十幾分鐘實在懶得抄了,代碼實在比較多。
C++部分大概是這樣
- STL的由幾部分組成,有哪些容器,抽象類別的作用,虛擬解構函式的作用(這個就不說了,我C++好歹也寫上萬行了這些還不曉得就完蛋了)
- 單向鏈表(其實也不是很明白題目的意思,乾脆直接把它的爛程式改正確了寫我的答案)
- C++程式改錯(NV的內部人員代碼寫的是不是都不多,寫個簡單的類都一堆錯誤)
問答題有
- Virtual Memory System虛擬記憶體系統的作用(這個說實在的我不知道它問的是磁碟交換的VMS還是OS的VMS機制,我回答的是後者)
- User-Mode與Kernel-Mode的區別(OS基礎概念,沒寫多少,概念的我實在不擅長)
- TLB Cache的作用(我從GPU執行效率上開始回答的)
- 連續Cache與4-Way Set Cache的區別(我覺得是問GPU和CPU的緩衝特點,我把Intel Larrabee的設計思路也寫了上去做對比)
最後一道智力題,ABCD四個人摸黑過橋,A要1分鐘,B要2分鐘,C要5分鐘,D要10分鐘,一個手電筒,最多兩人同時過橋且時間為比較慢的那個。我給了2種方案附帶全套分析過程,17分鐘,答案和網上的一樣,真奇怪我怎麼能做出來的,Google了一下據說這題目也是以前微軟出過的。
總之我個人覺得自己穩定發揮了自己的水平,沒有空白的,“洋洋洒洒”的寫的滿滿的,連NVIDIA的範例代碼的錯誤我都給指正了出來,因為我實在無法容忍這樣的公司竟然會寫void main()這樣的入口函數。
坐等筆試通知了,手頭的工作繼續。