现在还有人懂汇编语言优化吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coeus999
V2EX    职场话题

现在还有人懂汇编语言优化吗?

  •  
  •   Coeus999 2018-11-03 10:49:05 +08:00 8910 次点击
    这是一个创建于 2590 天前的主题,其中的信息可能已经有所发展或是发生改变。
    跟客户大佬聊一个高频量化 c++的职位,偏底层开发的,说如果真的有人懂汇编语言优化,肯定会要,但国内太少了,都是欧美那边才会存在
    是真的吗?
    51 条回复    2018-11-07 20:37:33 +08:00
    chinvo
        1
    chinvo  
       2018-11-03 10:53:34 +08:00 via iPhone
    写单片机的很多整天在研究这个,不至于都在欧美
    Coeus999
        2
    Coeus999  
    OP
       2018-11-03 10:55:56 +08:00
    @chinvo 好的,谢谢!
    htfy96
        3
    htfy96  
       2018-11-03 10:56:16 +08:00
    有啊 amd64 可以做 但是在国外
    trait
        4
    trait  
       2018-11-03 10:57:04 +08:00 via iPhone   2
    现在很少有人能做到比编译器优化效果更好的了,编译器开发组里这种大佬比较多。
    shijingshijing
        5
    shijingshijing  
       2018-11-03 10:57:32 +08:00   1
    现在估计搞破解的还会继续用,还有用 IDA Pro 搞二进制直接编辑的,玩汇编玩的熟,但价格不便宜。单片机和嵌入式一般也不怎么用汇编了,指令集当然都要看一下的,但是日常开发还是用工具和 IDE 来做的,不会直接手写汇编,毕竟大家都要讲究尽可能少花时间多赚钱。

    你这个需求,要想把活儿干好,得花点钱,搞高频交易的,一般也不差钱,看你怎么跟客户说了。
    Coeus999
        6
    Coeus999  
    OP
       2018-11-03 11:08:37 +08:00
    @htfy96 @trait 谢谢指点,我去看下
    Coeus999
        7
    Coeus999  
    OP
       2018-11-03 11:09:04 +08:00
    @shijingshijing 行家,有兴趣去高频交易吗:))
    cuitor
        8
    cuitor  
       2018-11-03 11:23:34 +08:00 via Android
    pediy 一大推大神
    Coeus999
        9
    Coeus999  
    OP
       2018-11-03 11:34:20 +08:00
    @cuitor 谢谢,已收藏,我去发掘一下大神~
    wafm
        10
    wafm  
       2018-11-03 12:56:56 +08:00
    以前做辅助的时候折腾过汇编,属于能看懂流程和修改,跳转的水平
    kljsandjb
        11
    kljsandjb  
       2018-11-03 12:59:47 +08:00 via iPhone
    一直用汇编知识分析破解不过手写的不多,除了做 lab 实验
    luozic
        12
    luozic  
       2018-11-03 13:07:09 +08:00 via iPhone
    去找 llvm 或者 GCC 搞编译器的不是大把搞优化的。
    Coeus999
        13
    Coeus999  
    OP
       2018-11-03 13:18:15 +08:00
    @luozic 对,客户那边其中一条要求就是对于 GCC 编译器优化有着深入的研究,熟悉各种优化编译选项和每个所对应的
    编译实际效果。。
    感觉 ibm 出来的人会更匹配一些。。
    axeojpwt
        14
    axeojpwt  
       2018-11-03 14:01:43 +08:00
    国内海思那边专门搞编译器的人,他们有个编译器的组应该天天弄这些优化。好像有个 gcc 得 Maintainer 叫杨飞。
    jiang42
        15
    jiang42  
       2018-11-03 14:05:06 +08:00 via iPhone
    @Coeus999 Intel AMD ARM Samsung Oracle IBM MS Google 都有研究编译器的……国内好像比较苦逼吧……没人要……我前上司做了 10 年编译器跳去阿里就被压价了……国内喜欢玩花的,前端 ML 给的多
    Coeus999
        16
    Coeus999  
    OP
       2018-11-03 15:14:11 +08:00
    @jiang42 我有认识的从 ibm 做编译器的去了阿里 感觉很开心 手动狗头
    你上司感兴趣嘛,绝对把差了的好好的补回来。。
    Coeus999
        17
    Coeus999  
    OP
       2018-11-03 15:19:25 +08:00
    @axeojpwt 厉害了大哥 谢谢!海思在武汉和深圳吧?
    话说我感觉你做的事情和我之前一个做硅光芯片的客户有点交集
    agagega
        18
    agagega  
       2018-11-03 15:23:42 +08:00
    @Coeus999 不会是 WZ 吧(滑稽
    Coeus999
        19
    Coeus999  
    OP
       2018-11-03 15:30:19 +08:00
    @agagega 不了解耶 wz 是什么
    Cu635
        20
    Cu635  
       2018-11-03 16:07:51 +08:00   1
    @chinvo
    不不不,写单片机的是有少量需求,但是墙内的水平不够高,写单片机的研究这个的墙内照样很少。
    主要还是研究编译器的多。

    @Coeus999
    “客户那边其中一条要求就是对于 GCC 编译器优化有着深入的研究,熟悉各种优化编译选项和每个所对应的”
    这个客户也是不懂啊,“对于 GCC 编译器优化有着深入的研究”和“熟悉各种优化编译选项和每个所对应的编译实际效果”是两码事。完全可以做到只“熟悉各种优化编译选项和每个所对应的编译实际效果”,却没有“对于 GCC 编译器优化有着深入的研究”,不能“懂汇编语言优化”。
    josephshen
        21
    josephshen  
       2018-11-03 16:08:04 +08:00 via iPhone
    这是个猎头,一看就是不懂行情的猎头,故意写些搞事的内容,别傻傻回复啦,年轻人们。
    Coeus999
        22
    Coeus999  
    OP
       2018-11-03 16:22:21 +08:00
    @josephshen 我是猎头,在文章里就写了是跟客户在沟通职位需求,请问我写了什么故意搞事的内容?
    josephshen
        23
    josephshen  
       2018-11-03 16:31:10 +08:00 via iPhone
    你自己看下 18 楼的回复,然后看你 14、15 楼的话术水平呢,你还要再历练一下,嗯哼,加油哦,你是最棒哒
    Coeus999
        24
    Coeus999  
    OP
       2018-11-03 16:34:59 +08:00
    @Cu635 谢谢,我理解你的意思。这段话是 JD 里的,感觉需要调整一下,以免有些误解。
    guanaco
        25
    guanaco  
       2018-11-03 16:36:14 +08:00
    写汇编都是针对 CPU 的,换一个就需要另外学习,汇编工控用的比较多,多数都懂硬件
    Coeus999
        26
    Coeus999  
    OP
       2018-11-03 16:38:47 +08:00
    @josephshen 嗯,谢谢,我觉得我对讲话阴阳怪气的人容忍度需要历练:)
    Coeus999
        27
    Coeus999  
    OP
       2018-11-03 16:45:12 +08:00
    @guanaco 是,有些原来学自动化的人,目前可能还使用得比较多。客户那边有 fpga 部门,所以底层开发应该是懂配合就好了
    josephshen
        28
    josephshen  
       2018-11-03 16:52:04 +08:00 via iPhone
    嗯哼!小伙子,你有前途!我看好你!
    iPhone8
        29
    iPhone8  
       2018-11-03 16:58:34 +08:00 via iPhone
    大学都学啊,你没学过?
    Coeus999
        30
    Coeus999  
    OP
       2018-11-03 17:35:11 +08:00
    @josephshen 我是女生,猎头大多数都是女的:)谢谢,会加油
    Coeus999
        31
    Coeus999  
    OP
       2018-11-03 17:36:39 +08:00
    @iPhone8 大学学过和工作上真正应用起来还是差别有点大 其实还真的学过 但感觉已经是很久远的事了
    kcats
        32
    kcats  
       2018-11-03 18:48:51 +08:00
    这个得找骨灰级的了吧, 再说现在编译器优化工作已经不是一个两个人能完成的事了, 再加上 CPU 的水平, 与其在这上面耗时间还不如想想怎么优化下网络减少或者稳定延迟
    leavic
        33
    leavic  
       2018-11-03 20:08:36 +08:00 via Android
    @chinvo 别搞笑,搞单片机的有些连读汇编都有困难
    akira
        34
    akira  
       2018-11-03 20:27:56 +08:00
    咦? 楼上好多曾经的同行啊。。
    agagega
        35
    agagega  
       2018-11-03 20:28:48 +08:00
    @Coeus999 哈哈哈,那应该是不认识了,一个人名字拼音的缩写,我以为你说从十八摸去阿里的指的他
    josephshen
        36
    josephshen  
       2018-11-03 21:49:52 +08:00 via iPhone
    @Coeus999 哇哦是个小姑娘呀,好好加油哦
    coderluan
        37
    coderluan  
       2018-11-04 00:10:53 +08:00
    我们公司外企专门做这个,公司一共也没多少人,高手更是没两个,但是跳槽出去确实很抢手。

    另外,写汇编和优化汇编完全是两回事,写汇编你学过 8086,知道基础指令就能写,但是写出来东西一般连普通 C 代码都比不过。优化汇编你得熟悉平台相应的特殊指令,SIMD 之类的,然后用这些指令重写或者优化编译生成的汇编。
    openbsd
        38
    openbsd  
       2018-11-04 01:04:09 +08:00
    这个看行业吧,之前公司做控制板的,开发部 20+个同事,基本上都是汇编 + C 汇编居多
    innoink
        39
    innoink  
       2018-11-04 02:32:45 +08:00 via Android   2
    一般来讲分几个方面。
    1. 并行优化,多线程 /协程,内存屏障,上下文切换,无锁算法,rcu,io hook 之类的,这里的坑数不胜数
    2. SIMD 优化,需要有数学功底和熟悉 SIMD 指令
    3. 编译的优化,需要熟悉 profiling,找到热点代码,分析性能瓶颈的原因,然后改源码
    innoink
        40
    innoink  
       2018-11-04 02:33:32 +08:00 via Android
    据我所知这种人国内也不少,一般都在大厂或者研究所担任比较重要的职位
    innoink
        41
    innoink  
       2018-11-04 02:35:20 +08:00 via Android
    并不是懂破解,汇编,就行了
    这里面好多数学、算法的问题,还有一些工具链、特定平台的坑,需要大量经验积累
    bigtan
        42
    bigtan  
       2018-11-04 07:38:35 +08:00 via Android   1
    汇编优化其实对高频没那么重要,反倒是无锁数据结构和低延时通信比较重要,比如利用 l3 cache 做通信的媒介
    zwyc
        43
    zwyc  
       2018-11-04 07:54:04 +08:00 via Android   1
    做编译器后端的人会对汇编级性能优化很熟。但是针对 cpu 体系架构做手工性能调优就是相当于人肉编译器。从技术上说,做编译器的人反而会觉得做手工优化比较低端。这样的人国内不少的,intel 估计就有不下 50 人。nvidia, arm, ibm 也有不少。新兴 ai 芯片公司里也有这样的团队。华为肯定也是有一大把。腾讯百度还有开源项目做手工优化的,翻翻里面的 committer 就知道有哪些人。当然最直接的就是去 llvm, gcc 等项目的邮件列表里找;)
    zwyc
        44
    zwyc  
       2018-11-04 08:09:43 +08:00 via Android
    @bigtan 赞。不过无锁化基本用 cpu 上提供的内存屏障和原子操作实现的。看来高频交易还不是计算密集型的。
    Coeus999
        45
    Coeus999  
    OP
       2018-11-04 11:17:41 +08:00
    @agagega 哈哈哈哈我认识 缩写压根没反应过来 世界也太小了 你们认识啊
    agagega
        46
    agagega  
       2018-11-04 23:20:21 +08:00
    @Coeus999 我认识他,他不认识我 : ) 他可是曾经的知乎程序员网红啊哈哈哈

    悄悄说,我也要去十八摸做 compiler 了,还不知道工作体验咋样 (
    Coeus999
        47
    Coeus999  
    OP
       2018-11-07 12:16:30 +08:00
    @agagega 哈哈哈真的假的?他是网红啊!
    恭喜恭喜,相信是不错且能有进步空间的,加油!
    Coeus999
        48
    Coeus999  
    OP
       2018-11-07 12:17:31 +08:00
    @zwyc 大神!感谢你的分享!很有用:)记下来了
    Coeus999
        49
    Coeus999  
    OP
       2018-11-07 12:20:25 +08:00
    @bigtan 谢谢你的分享,这个信息特别有用,受教了:)
    Coeus999
        50
    Coeus999  
    OP
       2018-11-07 12:23:07 +08:00
    @innoink 谢谢:)对的,我有个候选人就是从各种大厂一路过来,中间去了高频,觉得太累又回大厂了:((
    jiangbingo
        51
    jiangbingo  
       2018-11-07 20:37:33 +08:00
    TI DSP 平台汇编算法,我之前同科室同事一直在搞。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2774 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 09:08 PVG 17:08 LAX 01:08 JFK 04:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86