Re: [請益] 資工碩士專攻編譯器台灣找得到工作嗎?

看板 Tech_Job
作者 Lipraxde (靜夜)
時間 2024-04-24 08:44:40
留言 39則留言 (10推 1噓 28→)

: 想請教大家的是 : 如果資工碩士專攻compiler編譯器 : 在台灣有公司有這樣的工作嗎? : 好像沒有台灣公司的產品是編譯器 : 那有公司是內部需要編譯器的嗎? 你應該是想問 compiler 這條路出路如何嘛? 限定台灣的話,努力找,應該還是找得到 (104 搜一下嘛) 底下容小弟依經驗幫忙分析幾個你可能也會想知道的面向: 1. 做 compiler 門檻高不高? 想像一下高階的語法到低階的指令,例如: python -> C++ /C -> 組語 同樣用途的一支程式,用 python 寫,轉換成用 C 怎麼寫、甚至熟悉某個 ISA 的話,多花 些精力,轉換到組語也多少寫的出來。一般來說 "人" 來做應該不算難做到。 Compiler 的角色就是替換這個 "人",變成一隻程式,要把 "人" 怎麼分析語法、語法檢查 ?怎麼轉換出組語?一步步拆解,寫演算法來完成。 而且最好要有條理、高效的來做這件事,順便做些優化,那自然是有不低的門檻的。 2. 做 compiler 是不是要很強? 能夠達到前面說的門檻,從高階語言可能各種亂七八糟的寫法都要能編譯,error msg 能清楚,到編譯出來的程式有優化、效能好,那自然是要很強的! 但也不是說一定要強者才能做,舉個例子:有個 ISA 可以做加減乘除,已經有強者做好 加減怎麼生指令了,那...照著把乘除做出來...稍微不那麼強的人也做的到,而且,也總是 有這些事可以做的。 所以,前面說的門檻高,不至於不到門檻就洗洗睡,只收菁英的程度啦XD 達到門檻的自然強,不到的也能生存。 3. 做 compiler 爽不爽? 爽啊!當然爽! 假設你改善了某個演算法的複雜度,讓編譯速度快 10 倍好了,像我一天多的時候可能 compile 個 100 次,原本等 10 分鐘變成等 1 分鐘就好,那代表我今天可以更早下班耶! 那如果是做個優化,編譯出來程式快 10%、提前一分鍾能出結果,這隻程式將來可能要 跑一萬次,你幫大家省了 7 天耶!!這都還只是單純就省的時間來說。 這麼有成就感的事情,要是做得到,能不爽嗎? (不過如果說是看錢的話...在台灣可能還是 HW design 才是王道!) --- 所以,我們總結一下:做 compiler 呢,門檻高,不過只要夠強,就會爽! ...恩?到哪不是都是這樣嗎? -- 不會...所以我其實...有點難過 舉例嘛...不然我要講些晦澀難懂的東西直接勸退嗎? 確實,如果是 target-independent 或是成熟的 backend 裡再做什麼優化,那都是撿到寶 AI compiler 紅歸紅,但...還是 SW 職缺... 要是他 ASIC 正在開發中,要幫他 codegen,生些奇妙的用法,還要優化,隨便一個異想 天開的特殊作法,可能整個 pipeline 都要調整過,有時間限制的欸...操死 驅動程式說的比較是偏 runtime 嗎?也算是 compiler 的範圍,通常立即能發現的都還 好修,怕的是 user 拿到才發現某版 release 壞了,找到問題看一看才發現原來不能這 樣用...半個月能解決都要謝天謝地了 我反而覺得 codegen 那是最有趣的地方,了解硬體才能做的好,這地方就可以看到誰願 意實打實的把硬體的特殊能力相關的優化用 low-level IR 做出來,反應在演算法裡,把 硬體能力榨乾。 不過有些人可能會更想抽象化到更 high-level,乾乾凈凈漂漂亮亮的做...只是刻個殼 子叫別人處理底層細節的那種...我常常覺得這樣有點不夠水準,阿不,是不夠有趣! 用 C 硬刻...太硬了啦,不過印象中有些語法 lex & yacc 不太好刻,直接硬刻可以不受 限 LALR 這種難懂的東西,也不是說沒有好處
※ 批踢踢實業坊(ptt.cc), 來自: 180.177.3.135 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1713919482.A.A9E.html

pponywong : 現在都用llvm 比以前簡單很多 以前是front-end還要04/24 09:19

pponywong : 自己硬刻04/24 09:20

wcre : 行業的趨勢是愈接近基層架構,收入愈低04/24 09:34

wcre : 程式快10%,老闆會多給10%年薪?04/24 09:35

pponywong : 沒有吧 基層還是比較多 ML的職位也不多04/24 09:47

pponywong : 那種調整pytorch參數的就不要說自己是做ML的了04/24 09:47

mmonkeyboyy : ....有llvm還可以 但....低層老板不加薪啊XD04/24 10:28

CoNsTaR : 這篇怎麼有種小學生在教博士生怎麼寫論文的感覺04/24 10:32

CoNsTaR : 編譯器重點最好是你講的這些啦04/24 10:32

labbat : 聽君一席話,如聽一席話04/24 11:03

pponywong : 看哪種編譯器吧 如果是高階語言就很多最佳化問題04/24 11:12

pponywong : 也有ASIC專用的script compiler04/24 11:13

mikasamikoto: 現在優化的論文已經很難生了,大部分都是加個小功能04/24 11:48

Brioni : 以台灣就業市場來說類似EDA領域,穩定但不會有爆發04/24 12:30

Brioni : 期04/24 12:30

a27417332 : 現在AI當頭,去做ML Compiler啊04/24 14:38

a27417332 : 這部分的職缺應該主力還是晶片商04/24 14:43

a27417332 : 沒辦法,有時間壓力哪裡都操,無關領域了04/24 15:01

Lipraxde : 是沒錯啦,但是從客戶過來、designer 的需求過來、 04/24 15:07

Lipraxde : 高層看 benchmark 跑輸燒過來會一起發生... 04/24 15:07

Lipraxde : 同個人做同個優化,能做一個禮拜還是一個月,做起 04/24 15:11

Lipraxde : 來品質有差耶,偏偏 compiler 很要求 code quality 04/24 15:11

Lipraxde : 的...04/24 15:11

eopXD : The golden age for compilers <3 04/24 15:12

profiles : 古早時代,修編譯器課,要交的作業,需用到lex/yac 04/24 16:38

profiles : c,現在是不是有新的tool,就不知道,修完確定我對04/24 16:38

profiles : 這沒有興趣 04/24 16:38

labbat : 其實編譯器需要不少程式碼文本外的資訊才適合優化 04/24 21:22

labbat : 不然單單要序列化或者要清空流水線或者不做事,關係 04/24 21:23

labbat : 到程式碼下特定位址的特定讀寫,可是跨指令集沒有那 04/24 21:24

labbat : 麼單純一對一的關係,變成太保守或太激進的驅動程式04/24 21:25

labbat : 都可以讓除錯工程增加個一個禮拜到半月不等04/24 21:27

pponywong : 要做parser/CFG 還是用lex/yacc (flex/bison)04/24 22:43

pponywong : compiler從頭做到尾太花時間了 尤其是codegen04/24 22:44

csco : 現在還有學生在刻 lex/yacc/flex/bison嗎?我們以前04/25 00:06

csco : 都是自學的 04/25 00:06

a265589 : 有喔 現在還是會出lex/yacc的作業要你寫 話說有老04/25 01:59

a265589 : 教授嫌那個超水 應該要用C全部硬刻04/25 01:59

j0958322080 : 之前有在有做編譯器的公司待過,裡面有用那些工具 04/25 09:52

您可能感興趣