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

看板Soft_Job作者 (pro臭酸肥宅)時間4年前 (2021/12/03 14:43), 4年前編輯推噓17(18163)
留言82則, 13人參與, 4年前最新討論串1/2 (看更多)
各位大大好 小弟有幾個疑惑 1. 想請問下寫compiler的話,跟一般的sw會差很多嗎? C++寫LLVM,擴充openCL語法,整個flow都會碰到 如果之後要轉純軟不曉得年資會不會重算 2. 大部分時間focus的點會是在軟體還是硬體? 聽說要很多硬體的東西,不曉得這樣會不會大部分都在搞硬體的架構, 軟體的部分反而很少碰到。 3. 如果跳其他寫compiler的缺,多少知識是可以共用的? 聽說韌體如果是不同device資歷就會砍很重,compiler 也專攻硬體的知識,也會怕硬體不一樣很多東西要重學,年資會被砍 還請各位大大幫小弟解惑 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.3.206 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1638513780.A.5C2.html ※ 編輯: armorNoob (180.177.3.206 臺灣), 12/03/2021 14:47:49

12/03 15:38, 4年前 , 1F
幫你轉到 CompilerDev 版 XD
12/03 15:38, 1F

12/03 15:58, 4年前 , 2F
有請蟹老闆回答
12/03 15:58, 2F

12/03 16:13, 4年前 , 3F
來這邊問 compiler 問得到人嗎 XD。
12/03 16:13, 3F

12/03 16:15, 4年前 , 4F
我不是 compiler engineer,只能算是業餘的 LLVM hacker
12/03 16:15, 4F

12/03 16:15, 4年前 , 5F
但多少能回答一點
12/03 16:15, 5F

12/03 16:16, 4年前 , 6F
2. 看你做哪個部份,基本上只有後端會摸到一些硬體
12/03 16:16, 6F

12/03 16:18, 4年前 , 7F
至於你擔心的「不太會碰到軟體」我覺得是白擔心了
12/03 16:18, 7F

12/03 16:19, 4年前 , 8F
你可以去 LLVM 看看 CodeGen 程式碼有幾行。不算 TableGen
12/03 16:19, 8F

12/03 16:19, 4年前 , 9F
的話XD
12/03 16:19, 9F

12/03 16:20, 4年前 , 10F
3. 回答也跟 2 一樣,取決於你做的部份
12/03 16:20, 10F

12/03 16:22, 4年前 , 11F
但只要框架沒換,大部份的知識絕對都是可以共用的
12/03 16:22, 11F

12/03 16:23, 4年前 , 12F
(如果說你從 LLVM 換到 gcc 我就不知道會是什麼情況了XD)
12/03 16:23, 12F

12/03 16:24, 4年前 , 13F
1. 我不太懂轉到純軟是什麼意思。做 compiler 不好嗎 XD
12/03 16:24, 13F

12/03 16:25, 4年前 , 14F
像 Chris Lattner 在 Apple 搞 swift,跳去 google 搞
12/03 16:25, 14F

12/03 16:26, 4年前 , 15F
Tensorflow,去年跳去 sifive 搞 riscv。最近還在弄什麼
12/03 16:26, 15F

12/03 16:26, 4年前 , 16F
MLIR,compiler 能玩的東西可多的咧
12/03 16:26, 16F

12/03 16:29, 4年前 , 17F
像是遊戲主機公司也有在請 compiler 的人。他們那裡在做的事
12/03 16:29, 17F

12/03 16:30, 4年前 , 18F
就跟硬體一點關係也沒有,你可以去問問 CompilerDev 版主
12/03 16:30, 18F

12/03 16:30, 4年前 , 19F
話說為什麼講到 compiler 大家都會認為在做硬體阿,之前在
12/03 16:30, 19F

12/03 16:31, 4年前 , 20F
Tech_Job 好像看過類似的...
12/03 16:31, 20F

12/03 16:34, 4年前 , 21F
你也可以去 YT 找 LLVM Dev Meeting 的影片來看,看那些
12/03 16:34, 21F

12/03 16:35, 4年前 , 22F
Compiler 工程師都在幹嘛 XD
12/03 16:35, 22F

12/03 16:53, 4年前 , 23F
這刪文仔,要回答的人自己評估一下要不要回答
12/03 16:53, 23F

12/03 17:08, 4年前 , 24F
@VF84 感謝大大分享
12/03 17:08, 24F

12/03 17:08, 4年前 , 25F
如果你所謂的「純軟」是指「只做軟體的公司」,那還是不要
12/03 17:08, 25F

12/03 17:08, 4年前 , 26F
碰 compiler 會比較好
12/03 17:08, 26F

12/03 17:09, 4年前 , 27F
需要 compiler 的公司大多都有在做自己的硬體,不管是 CPU
12/03 17:09, 27F

12/03 17:09, 4年前 , 28F
還是遊戲主機什麼的
12/03 17:09, 28F

12/03 17:09, 4年前 , 29F
廢話就講到這,剩下的你就自己判斷吧。反正做 compiler 肯定
12/03 17:09, 29F

12/03 17:10, 4年前 , 30F
餓不死。只要電腦一天沒消失,compiler 就絕對會持續存在
12/03 17:10, 30F

12/03 17:17, 4年前 , 31F
阿,我也有在做 compiler 的「純軟」公司了:Amazon 和
12/03 17:17, 31F

12/03 17:17, 4年前 , 32F
Mozilla,做的是 Rust compiler
12/03 17:17, 32F

12/03 17:18, 4年前 , 33F
不過 Amazon 也有在自產 CPU 就是了...
12/03 17:18, 33F

12/03 17:18, 4年前 , 34F
*我想到也有在做*
12/03 17:18, 34F

12/03 17:19, 4年前 , 35F
如果是compiler前端, 可以轉parser相關的sw
12/03 17:19, 35F

12/03 17:20, 4年前 , 36F
所以你第一個問題也要看你是compiler的哪一段
12/03 17:20, 36F

12/03 17:26, 4年前 , 37F
感謝各位大大,是整個都會碰到,去擴充opencl
12/03 17:26, 37F

12/03 18:05, 4年前 , 38F
純軟的compiler跟硬體廠的compiler應該差很多
12/03 18:05, 38F

12/03 18:12, 4年前 , 39F
擴充啥啊 arm有在clang做C++ for OpenCL
12/03 18:12, 39F

12/03 18:34, 4年前 , 40F
@Dracarys 擴充opencl語法
12/03 18:34, 40F

12/03 18:34, 4年前 , 41F
@freef1y3 大大此話怎講
12/03 18:34, 41F

12/03 18:48, 4年前 , 42F
差不多吧 差別應該在平台支援度而已
12/03 18:48, 42F
※ 編輯: armorNoob (180.177.3.206 臺灣), 12/03/2021 19:03:51

12/03 20:06, 4年前 , 43F
而且也沒人規定你大學/研究所做 compiler,這輩子就不能走
12/03 20:06, 43F

12/03 20:07, 4年前 , 44F
其它領域吧。想那麼多做什麼呢。
12/03 20:07, 44F

12/03 20:14, 4年前 , 45F
研所版之前有個交大編譯器實驗室招生文,裡面提到他們實驗
12/03 20:14, 45F

12/03 20:14, 4年前 , 46F
室的畢業生也才一半從事編譯器開發工作
12/03 20:14, 46F

12/03 20:15, 4年前 , 47F
@VF84 其實是有拿到offer,所以想問個清楚才不會將來
12/03 20:15, 47F

12/03 20:15, 4年前 , 48F
後悔
12/03 20:15, 48F

12/03 20:16, 4年前 , 49F
原來是已經拿到 offer了。那很好呀。我想做編譯器還沒人肯
12/03 20:16, 49F

12/03 20:16, 4年前 , 50F
收我哈哈哈哈
12/03 20:16, 50F

12/03 20:17, 4年前 , 51F

12/03 20:18, 4年前 , 52F
Chris Lattner 的 talk,你可以看看。
12/03 20:18, 52F

12/03 20:20, 4年前 , 53F
12/03 20:20, 53F

12/03 20:20, 4年前 , 54F
剛剛在 mailing list 上看到的徵才文。找人做 javascript
12/03 20:20, 54F

12/03 20:21, 4年前 , 55F
engine 的。在我看來蠻多機會的呀
12/03 20:21, 55F

12/03 20:25, 4年前 , 56F
@VF84 NV本來就難上,大大這麼強可投IC廠阿,我看nova
12/03 20:25, 56F

12/03 20:25, 4年前 , 57F
現在有開缺
12/03 20:25, 57F

12/03 20:29, 4年前 , 58F
你誤會了,我只是個菜雞
12/03 20:29, 58F

12/03 21:02, 4年前 , 59F
硬體廠會著重在把自家效能調到最好 或開發只有自家ISA
12/03 21:02, 59F

12/03 21:03, 4年前 , 60F
才有的功能 所以應該會比較著重後端
12/03 21:03, 60F

12/03 21:06, 4年前 , 61F
動前端大多只是加API而已 比較不會動到語法
12/03 21:06, 61F

12/03 21:08, 4年前 , 62F
純軟compiler應該比較有機會擴充語法吧 不過我也沒待過
12/03 21:08, 62F

12/03 21:23, 4年前 , 63F
底層熟悉,應用層軟體,很好上手的,但資料庫和分散式
12/03 21:23, 63F

12/03 21:23, 4年前 , 64F
系統的資料一致性,應該花時間認真學
12/03 21:23, 64F

12/04 04:26, 4年前 , 65F
這工作好像跟我的挺像,我是擴充OpenMP (5.0,5.1)
12/04 04:26, 65F

12/04 04:28, 4年前 , 66F
從compiler fronted到openmp專門的middle-end opt到
12/04 04:28, 66F

12/04 04:28, 4年前 , 67F
library都要碰
12/04 04:28, 67F

12/04 04:33, 4年前 , 68F
我們只有在optimization 的時候會碰到跟硬體不直接
12/04 04:33, 68F

12/04 04:33, 4年前 , 69F
相關的像是alignment, memory ordering, memory all
12/04 04:33, 69F

12/04 04:33, 4年前 , 70F
ocator還有就是gpu的一些新特性
12/04 04:33, 70F

12/04 10:46, 4年前 , 71F
跟硬體直接相關的是Assembler, compiler絕大多數是處理
12/04 10:46, 71F

12/04 10:46, 4年前 , 72F
語法擴充的部分,跟硬體無直接相關,除非做硬體最佳化,
12/04 10:46, 72F

12/04 10:46, 4年前 , 73F
才需要瞭解CPU指令特性
12/04 10:46, 73F

12/04 11:15, 4年前 , 74F
首先,你說的純軟的,可能是指 web frontend/backend?
12/04 11:15, 74F

12/04 11:16, 4年前 , 75F
如果是,沒所謂純軟,這些工作都要"商業邏輯“,更多是
12/04 11:16, 75F

12/04 11:17, 4年前 , 76F
瞭解用戶想要什麼,別的 team 想要什麼。
12/04 11:17, 76F

12/04 11:17, 4年前 , 77F
另一方面,只有“純軟”轉不進 compiler/kernel/system..
12/04 11:17, 77F

12/04 11:18, 4年前 , 78F
不用擔心反向轉不過來。問題是,反向轉過來時,你會覺得
12/04 11:18, 78F

12/04 11:19, 4年前 , 79F
在浪費生命。除非你真的是做純軟,例如 DBMS 本身之類。
12/04 11:19, 79F

12/04 11:21, 4年前 , 80F
另一方面,compiler/kernel/system..缺真的比較少。
12/04 11:21, 80F

12/04 11:22, 4年前 , 81F
但,人才的供給更少。也就是說,不怕找不到工作。但能
12/04 11:22, 81F

12/04 11:22, 4年前 , 82F
能選擇的公司就不多了。
12/04 11:22, 82F
文章代碼(AID): #1XgRnqN2 (Soft_Job)
文章代碼(AID): #1XgRnqN2 (Soft_Job)