GPU編譯器開發怎麼樣,前景如何?

本人小碩一枚,秋招求職一直想去互聯網公司做後台開發,比較喜歡互聯網公司的開放活躍的技術氛圍,無奈水平太渣,至今互聯網offer一個都沒有。現在手裡有ZTE無線部門軟開offer(工作地西安,LTE開發)和上海兆芯GPU編譯器開發offer(工作地上海),以上兩者之間,個人比較偏向編譯器開發這方面,因為涉及技術比較深(個人關注技術發展這一塊)。請了解這一行的知乎er幫我分析一下,謝謝啦!

-——————–——

9.23更新:今天拒了ZTE的offer,給了12k,回學校的路上雖然有點失落感,但我絕不後悔,希望做出了正確的選擇。


挺不錯的,以後會有做機器學習的公司找你的,到時候你就可以去互聯網公司了。


編譯器 for GPU 沒實際做過,做過 for DSP 的,有些類似,但有些不同。GPU的話,感覺循環優化,主要是循環自動並行化,以及 指令級並行,這二部分優化對 性能提升 很重要。相關的知識會涉及到數據依賴分析,以及指針指向分析。如果機器指令集 (ISA) 支持謂詞寄存器的話,if-conversion 優化也對性能有幫助,但不如 循環變換 提的多。


兆芯就是以前的上海S3/威盛電子。當年被稱為黃埔軍校的地方。為什麼?因為待遇低(起薪不低,但漲幅太慢了,又沒有獎金股票,根本跟不上中國民營或者其他多金外企的漲幅,幾年之後和別人的差距就拉出來了),做的東西也很難賣出去,但是在那個在華外企普遍沒什麼核心技術卻把核心技術拿到大陸來做威盛來說,無疑是各個同行業公司競相挖角的對象,總之還是很受歡迎的,即使現在上海做GPU,圖形,顯示相關的人裡面有不少老S3/威盛人的背景。但長期虧損王雪紅後來才賣給國資了改名兆芯。這樣國資也有了自主x86架構處理器的技術資產,威盛也找到了乾爹,對雙方來說都各取所需。

再說GPU compiler的開發。要學的東西是多,起碼directx,opengl得學吧,然後編譯原理,什麼前端後端中間碼寄存器調度之類的也得學吧,你寫的代碼最終是屬於顯卡驅動棧的一部分,所以怎麼和操作系統驅動不管是內核態還是用戶態整合的圖形驅動架構得了解吧,學了這麼多東西,但拿到工作上,這玩意兒,基本就是維護,改bug,調優之類的事。做久了你會覺得自己離什麼「風口」啊,「前沿」啊很遠很遠,畢竟做這個的公司太少了,要轉去互聯網有點曲線救國的意思。比如,我就認識一個翻牆去國外的MapD了,就是一個做內存資料庫用GPU加速的公司,他做的好像就是SQL到GPU的編譯器,不過這種公司還是少。當然,跳槽去NVIDIA也不錯,NV現在算是人工智慧底層工具提供商的龍頭。不過,你可以考慮直接去NV啊,幹嘛要去兆芯繞一圈呢?

兆芯(威盛)是賣晶元的,現在應該也做解決方案吧,而編譯器只是晶元的驅動的一個子集,這個看你個人的性格,有些人做這種工作做久了以後,畢竟自己的努力工作,是非常非常間接地反映在產品的銷售上,那麼難免會對個人的價值感不能得到滿足,自己這麼努力,做了這麼這麼多工作,優化了這麼這麼指標,但,好像客戶並不關心嘛。。。如果公司本身業績還不錯就不說了,公司一旦開始走下坡路,這種沒有反饋的工作對個人來說長期是產生負面效果的

最後,有些人說這行門檻高,其實,也就那樣吧。我覺得只要是IT行業做軟體做工程的,高門檻和低門檻的技術棧之間的學習時間差相差也就在頭一兩年而已,主要是你有實踐和驗錯的機會,你和一個完全的外行,在知識獲取渠道上其實都是差不多的,到了後期就等神秘感慢慢消失後,和其他行業相比也沒啥區別了,同樣是搬磚而已。。所以,還是選一個從眾面廣的技術棧吧。


兆芯之前也在我們園區找人,我感覺還挺不錯的。不建議去ZTE,通信行業,很苦而且是夕陽產業了,前景不怎麼看好。剛開始找工作不用太在意一點薪資的差別,主要還是看興趣和發展。


自娛自樂做了很長時間,同類產品都少見。

https://github.com/lumpyzhu/nmscc

其中

nms/cuda/engine是代碼生成。

nms/cuda/compiler是包裝

nms/cuda/array是使用方法和單元測試

nms/math/blas有和blas寫法的對比


前景很好,除了GPU編譯器之外,你可以拓展學習GPU的驅動,CPU-GPU異構計算的架構設計。


從行業來選的話,要選兆芯,

從工作地點來選的話,要選兆芯,

從職業發展來說的話,要選兆芯,

關鍵,如果對NV感興趣的話,就去兆芯多學點東西唄,然後來聯繫我~

23333333


我猜你是要做OpenCL的compiler。需要掌握的東西還挺多的,比如GPU架構,需要編譯的高級語言,彙編語言,以及使用的編譯器平台等等。

挺重要的一點是看你想在哪個城市發展,畢竟上海的物價房價非西安能比,各有利弊。個人感覺工資要比西安高出來3-4k才能接受。


我在NV做GPU編譯器,這個learning curve是很長很長(CPU+GPU)的。最大的感受是kernel出了問題不是很好調試。我覺得你拒了offer是有點可惜的,這可以學到非常非常多的東西。


GPU編譯器開發,我也很嚮往。由於是專門處理視頻而生,所以浮點運算能力很強。比特幣的挖礦軟體就是在上面運行的。


沒去ZTE挺好的,毋需失落和後悔。


碩士去做編譯器?別扯了,最多讓你搬磚而已。你的選擇是完全錯誤的。


推薦閱讀:

Android 中的 LLVM 主要做什麼?
C++特性問題?
編譯器本身是如何進行測試的?
如何學習 clang和LLVM(有關於源代碼閱讀),需要哪些知識?
有什麼好用的C/C++源代碼混淆工具?

TAG:圖形處理器GPU | 編譯器 | offer比較 | 編譯器優化 | 編譯器後端 |