V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coeus999
V2EX  ›  职场话题

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

  •  
  •   Coeus999 · 2018-11-03 10:49:05 +08:00 · 8292 次点击
    这是一个创建于 2191 天前的主题,其中的信息可能已经有所发展或是发生改变。
    跟客户大佬聊一个高频量化 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   ·   实用小工具   ·   1239 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:14 · PVG 02:14 · LAX 11:14 · JFK 14:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.