作者armorNoob (pro臭酸肥宅)
看板Soft_Job
标题[请益] compiler engineer跟一般sw engineer差别
时间Fri Dec 3 14:42:58 2021
各位大大好
小弟有几个疑惑
1. 想请问下写compiler的话,跟一般的sw会差很多吗?
C++写LLVM,扩充openCL语法,整个flow都会碰到
如果之後要转纯软不晓得年资会不会重算
2. 大部分时间focus的点会是在软体还是硬体?
听说要很多硬体的东西,不晓得这样会不会大部分都在搞硬体的架构,
软体的部分反而很少碰到。
3. 如果跳其他写compiler的缺,多少知识是可以共用的?
听说韧体如果是不同device资历就会砍很重,compiler
也专攻硬体的知识,也会怕硬体不一样很多东西要重学,年资会被砍
还请各位大大帮小弟解惑
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.177.3.206 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1638513780.A.5C2.html
※ 编辑: armorNoob (180.177.3.206 台湾), 12/03/2021 14:47:49
1F:推 eopXD: 帮你转到 CompilerDev 版 XD 12/03 15:38
2F:→ honochung: 有请蟹老板回答12/03 15:58
3F:推 VF84: 来这边问 compiler 问得到人吗 XD。12/03 16:13
4F:→ VF84: 我不是 compiler engineer,只能算是业余的 LLVM hacker12/03 16:15
5F:→ VF84: 但多少能回答一点12/03 16:15
6F:→ VF84: 2. 看你做哪个部份,基本上只有後端会摸到一些硬体12/03 16:16
7F:→ VF84: 至於你担心的「不太会碰到软体」我觉得是白担心了12/03 16:18
8F:→ VF84: 你可以去 LLVM 看看 CodeGen 程式码有几行。不算 TableGen12/03 16:19
9F:→ VF84: 的话XD12/03 16:19
10F:→ VF84: 3. 回答也跟 2 一样,取决於你做的部份12/03 16:20
11F:推 VF84: 但只要框架没换,大部份的知识绝对都是可以共用的12/03 16:22
12F:→ VF84: (如果说你从 LLVM 换到 gcc 我就不知道会是什麽情况了XD)12/03 16:23
13F:→ VF84: 1. 我不太懂转到纯软是什麽意思。做 compiler 不好吗 XD12/03 16:24
14F:→ VF84: 像 Chris Lattner 在 Apple 搞 swift,跳去 google 搞12/03 16:25
15F:→ VF84: Tensorflow,去年跳去 sifive 搞 riscv。最近还在弄什麽12/03 16:26
16F:→ VF84: MLIR,compiler 能玩的东西可多的咧12/03 16:26
17F:推 VF84: 像是游戏主机公司也有在请 compiler 的人。他们那里在做的事12/03 16:29
18F:→ VF84: 就跟硬体一点关系也没有,你可以去问问 CompilerDev 版主12/03 16:30
19F:→ VF84: 话说为什麽讲到 compiler 大家都会认为在做硬体阿,之前在12/03 16:30
20F:→ VF84: Tech_Job 好像看过类似的...12/03 16:31
21F:推 VF84: 你也可以去 YT 找 LLVM Dev Meeting 的影片来看,看那些 12/03 16:34
22F:→ VF84: Compiler 工程师都在干嘛 XD12/03 16:35
23F:嘘 keyofdejavu: 这删文仔,要回答的人自己评估一下要不要回答 12/03 16:53
24F:→ armorNoob: @VF84 感谢大大分享12/03 17:08
25F:→ VF84: 如果你所谓的「纯软」是指「只做软体的公司」,那还是不要12/03 17:08
26F:→ VF84: 碰 compiler 会比较好12/03 17:08
27F:→ VF84: 需要 compiler 的公司大多都有在做自己的硬体,不管是 CPU12/03 17:09
28F:→ VF84: 还是游戏主机什麽的12/03 17:09
29F:→ VF84: 废话就讲到这,剩下的你就自己判断吧。反正做 compiler 肯定12/03 17:09
30F:→ VF84: 饿不死。只要电脑一天没消失,compiler 就绝对会持续存在12/03 17:10
31F:推 VF84: 阿,我也有在做 compiler 的「纯软」公司了:Amazon 和12/03 17:17
32F:→ VF84: Mozilla,做的是 Rust compiler12/03 17:17
33F:→ VF84: 不过 Amazon 也有在自产 CPU 就是了...12/03 17:18
34F:→ VF84: *我想到也有在做*12/03 17:18
35F:推 noahleft: 如果是compiler前端, 可以转parser相关的sw12/03 17:19
36F:→ noahleft: 所以你第一个问题也要看你是compiler的哪一段12/03 17:20
37F:→ armorNoob: 感谢各位大大,是整个都会碰到,去扩充opencl12/03 17:26
38F:→ freef1y3: 纯软的compiler跟硬体厂的compiler应该差很多12/03 18:05
39F:推 Dracarys: 扩充啥啊 arm有在clang做C++ for OpenCL12/03 18:12
40F:→ armorNoob: @Dracarys 扩充opencl语法12/03 18:34
41F:→ armorNoob: @freef1y3 大大此话怎讲12/03 18:34
42F:推 jhjhs33504: 差不多吧 差别应该在平台支援度而已12/03 18:48
※ 编辑: armorNoob (180.177.3.206 台湾), 12/03/2021 19:03:51
43F:推 VF84: 而且也没人规定你大学/研究所做 compiler,这辈子就不能走 12/03 20:06
44F:→ VF84: 其它领域吧。想那麽多做什麽呢。 12/03 20:07
45F:推 VF84: 研所版之前有个交大编译器实验室招生文,里面提到他们实验 12/03 20:14
46F:→ VF84: 室的毕业生也才一半从事编译器开发工作 12/03 20:14
47F:→ armorNoob: @VF84 其实是有拿到offer,所以想问个清楚才不会将来 12/03 20:15
48F:→ armorNoob: 後悔 12/03 20:15
49F:→ VF84: 原来是已经拿到 offer了。那很好呀。我想做编译器还没人肯 12/03 20:16
50F:→ VF84: 收我哈哈哈哈 12/03 20:16
52F:→ VF84: Chris Lattner 的 talk,你可以看看。 12/03 20:18
54F:→ VF84: 刚刚在 mailing list 上看到的徵才文。找人做 javascript 12/03 20:20
55F:→ VF84: engine 的。在我看来蛮多机会的呀 12/03 20:21
56F:→ armorNoob: @VF84 NV本来就难上,大大这麽强可投IC厂阿,我看nova 12/03 20:25
57F:→ armorNoob: 现在有开缺 12/03 20:25
58F:推 VF84: 你误会了,我只是个菜鸡 12/03 20:29
59F:→ freef1y3: 硬体厂会着重在把自家效能调到最好 或开发只有自家ISA 12/03 21:02
60F:→ freef1y3: 才有的功能 所以应该会比较着重後端 12/03 21:03
61F:→ freef1y3: 动前端大多只是加API而已 比较不会动到语法 12/03 21:06
62F:→ freef1y3: 纯软compiler应该比较有机会扩充语法吧 不过我也没待过 12/03 21:08
63F:推 x246libra: 底层熟悉,应用层软体,很好上手的,但资料库和分散式 12/03 21:23
64F:→ x246libra: 系统的资料一致性,应该花时间认真学 12/03 21:23
65F:推 iamstupid844: 这工作好像跟我的挺像,我是扩充OpenMP (5.0,5.1) 12/04 04:26
66F:→ iamstupid844: 从compiler fronted到openmp专门的middle-end opt到 12/04 04:28
67F:→ iamstupid844: library都要碰 12/04 04:28
68F:推 iamstupid844: 我们只有在optimization 的时候会碰到跟硬体不直接 12/04 04:33
69F:→ iamstupid844: 相关的像是alignment, memory ordering, memory all 12/04 04:33
70F:→ iamstupid844: ocator还有就是gpu的一些新特性 12/04 04:33
71F:推 mithuang: 跟硬体直接相关的是Assembler, compiler绝大多数是处理 12/04 10:46
72F:→ mithuang: 语法扩充的部分,跟硬体无直接相关,除非做硬体最佳化, 12/04 10:46
73F:→ mithuang: 才需要了解CPU指令特性 12/04 10:46
74F:→ qmailtw: 首先,你说的纯软的,可能是指 web frontend/backend? 12/04 11:15
75F:→ qmailtw: 如果是,没所谓纯软,这些工作都要"商业逻辑“,更多是 12/04 11:16
76F:→ qmailtw: 了解用户想要什麽,别的 team 想要什麽。 12/04 11:17
77F:→ qmailtw: 另一方面,只有“纯软”转不进 compiler/kernel/system.. 12/04 11:17
78F:→ qmailtw: 不用担心反向转不过来。问题是,反向转过来时,你会觉得 12/04 11:18
79F:→ qmailtw: 在浪费生命。除非你真的是做纯软,例如 DBMS 本身之类。 12/04 11:19
80F:推 qmailtw: 另一方面,compiler/kernel/system..缺真的比较少。 12/04 11:21
81F:→ qmailtw: 但,人才的供给更少。也就是说,不怕找不到工作。但能 12/04 11:22
82F:→ qmailtw: 能选择的公司就不多了。 12/04 11:22
83F:→ Vitaceae: 差别喔... 就像IC厂打杂的认为系统厂主任帮他提鞋都不 12/08 03:06
84F:→ Vitaceae: 配, 上古时代软工瞧不起web, 写conpiler胜任其他领域都 12/08 03:06
85F:→ Vitaceae: 是一片蛋糕这样 12/08 03:06