[請益] compiler engineer跟一般sw engineer差別

作者: armorNoob (pro臭酸肥宅)   2021-12-03 14:42:58
各位大大好
小弟有幾個疑惑
1. 想請問下寫compiler的話,跟一般的sw會差很多嗎?
C++寫LLVM,擴充openCL語法,整個flow都會碰到
如果之後要轉純軟不曉得年資會不會重算
2. 大部分時間focus的點會是在軟體還是硬體?
聽說要很多硬體的東西,不曉得這樣會不會大部分都在搞硬體的架構,
軟體的部分反而很少碰到。
3. 如果跳其他寫compiler的缺,多少知識是可以共用的?
聽說韌體如果是不同device資歷就會砍很重,compiler
也專攻硬體的知識,也會怕硬體不一樣很多東西要重學,年資會被砍
還請各位大大幫小弟解惑
作者: eopXD (eopXD)   2021-12-03 15:38:00
幫你轉到 CompilerDev 版 XD
作者: honochung (http://lol.moa.tw)   2021-12-03 15:58:00
有請蟹老闆回答
作者: VF84 (Jolly Roger)   2021-12-03 16:13:00
來這邊問 compiler 問得到人嗎 XD。我不是 compiler engineer,只能算是業餘的 LLVM hacker但多少能回答一點2. 看你做哪個部份,基本上只有後端會摸到一些硬體至於你擔心的「不太會碰到軟體」我覺得是白擔心了你可以去 LLVM 看看 CodeGen 程式碼有幾行。不算 TableGen的話XD3. 回答也跟 2 一樣,取決於你做的部份但只要框架沒換,大部份的知識絕對都是可以共用的(如果說你從 LLVM 換到 gcc 我就不知道會是什麼情況了XD)
作者: keyofdejavu (海洋)   2021-12-03 16:53:00
這刪文仔,要回答的人自己評估一下要不要回答
作者: armorNoob (pro臭酸肥宅)   2021-12-03 17:08:00
@VF84 感謝大大分享
作者: VF84 (Jolly Roger)   2021-12-03 17:08:00
如果你所謂的「純軟」是指「只做軟體的公司」,那還是不要碰 compiler 會比較好需要 compiler 的公司大多都有在做自己的硬體,不管是 CPU還是遊戲主機什麼的廢話就講到這,剩下的你就自己判斷吧。反正做 compiler 肯定餓不死。只要電腦一天沒消失,compiler 就絕對會持續存在阿,我也有在做 compiler 的「純軟」公司了:Amazon 和Mozilla,做的是 Rust compiler不過 Amazon 也有在自產 CPU 就是了...*我想到也有在做*
作者: noahleft (NoahLeft)   2021-12-03 17:19:00
如果是compiler前端, 可以轉parser相關的sw所以你第一個問題也要看你是compiler的哪一段
作者: armorNoob (pro臭酸肥宅)   2021-12-03 17:26:00
感謝各位大大,是整個都會碰到,去擴充opencl
作者: freef1y3 ( )   2021-12-03 18:05:00
純軟的compiler跟硬體廠的compiler應該差很多
作者: Dracarys (MayShowGunMore)   2021-12-03 18:12:00
擴充啥啊 arm有在clang做C++ for OpenCL
作者: armorNoob (pro臭酸肥宅)   2021-12-03 18:34:00
@Dracarys 擴充opencl語法@freef1y3 大大此話怎講
作者: jhjhs33504 ( )   2021-12-03 18:48:00
差不多吧 差別應該在平台支援度而已
作者: VF84 (Jolly Roger)   2021-12-03 20:06:00
而且也沒人規定你大學/研究所做 compiler,這輩子就不能走其它領域吧。想那麼多做什麼呢。研所版之前有個交大編譯器實驗室招生文,裡面提到他們實驗室的畢業生也才一半從事編譯器開發工作
作者: armorNoob (pro臭酸肥宅)   2021-12-03 20:15:00
@VF84 其實是有拿到offer,所以想問個清楚才不會將來後悔
作者: VF84 (Jolly Roger)   2021-12-03 20:16:00
原來是已經拿到 offer了。那很好呀。我想做編譯器還沒人肯收我哈哈哈哈https://www.youtube.com/watch?v=4HgShra-KnYChris Lattner 的 talk,你可以看看。https://reurl.cc/xEVdRe剛剛在 mailing list 上看到的徵才文。找人做 javascriptengine 的。在我看來蠻多機會的呀
作者: armorNoob (pro臭酸肥宅)   2021-12-03 20:25:00
@VF84 NV本來就難上,大大這麼強可投IC廠阿,我看nova現在有開缺
作者: VF84 (Jolly Roger)   2021-12-03 20:29:00
你誤會了,我只是個菜雞
作者: freef1y3 ( )   2021-12-03 21:02:00
硬體廠會著重在把自家效能調到最好 或開發只有自家ISA才有的功能 所以應該會比較著重後端動前端大多只是加API而已 比較不會動到語法純軟compiler應該比較有機會擴充語法吧 不過我也沒待過
作者: x246libra (楓)   2021-12-03 21:23:00
底層熟悉,應用層軟體,很好上手的,但資料庫和分散式系統的資料一致性,應該花時間認真學
作者: iamstupid844 (iamstupid844)   2021-12-04 04:26:00
這工作好像跟我的挺像,我是擴充OpenMP (5.0,5.1)從compiler fronted到openmp專門的middle-end opt到library都要碰我們只有在optimization 的時候會碰到跟硬體不直接相關的像是alignment, memory ordering, memory allocator還有就是gpu的一些新特性
作者: mithuang (阿明)   2021-12-04 10:46:00
跟硬體直接相關的是Assembler, compiler絕大多數是處理語法擴充的部分,跟硬體無直接相關,除非做硬體最佳化,才需要瞭解CPU指令特性
作者: qmailtw (愛八卦的主管滾遠點)   2021-12-04 11:15:00
首先,你說的純軟的,可能是指 web frontend/backend?如果是,沒所謂純軟,這些工作都要"商業邏輯“,更多是瞭解用戶想要什麼,別的 team 想要什麼。另一方面,只有“純軟”轉不進 compiler/kernel/system..不用擔心反向轉不過來。問題是,反向轉過來時,你會覺得在浪費生命。除非你真的是做純軟,例如 DBMS 本身之類。另一方面,compiler/kernel/system..缺真的比較少。但,人才的供給更少。也就是說,不怕找不到工作。但能能選擇的公司就不多了。
作者: Vitaceae (Vit)   2021-12-08 03:06:00
差別喔... 就像IC廠打雜的認為系統廠主任幫他提鞋都不配, 上古時代軟工瞧不起web, 寫conpiler勝任其他領域都是一片蛋糕這樣

Links booklink

Contact Us: admin [ a t ] ucptt.com