amd的总部位於桑尼维尔,只是五栋灰色的办公楼。
    实际上这才是硅谷公司的常规形態,甲骨文那种气派的总部不是每个公司都能建的。
    尤其是amd和英特尔相爱相杀得非常厉害,在显卡上也没干过英伟达,资金一直很紧张,根本没资格追求表面的气派。
    陈一然最近见了两个气派的总部,看到amd的这个,甚至感觉有点寒酸。但是真的走进去,感觉也还不错。
    唯一有点特色的,就是大堂里装饰的几个玻璃展柜,里面从k6到最新的推土机架构晶片,按年代一字排开。
    和甲骨文的安静不同,这里更有生气一些,走道里经常有抱著主板显卡以及各种部件的工程师走动,甚至空气里有时是焊锡和咖啡的奇怪混合味道。
    一直跟著项目的哈利和代理ceo托马斯·塞弗特一起接待了陈一然。带著陈一然到处参观了一下,然后领著他去了四楼。
    虽然陈一然不需要天天来上班,只是每周和amd的人对齐一下流程就行了,但是amd还是给他配了一个非常宽敞的四十多平的办公室。
    办公室的窗户正好对著一片低矮山脉,一张l形的大號转角办公桌。边上摆著一个小型工作站,甚至还配了单独的咖啡机,还有个小冰箱里面摆满了可口可乐。
    看得出来,布置得很用心。
    陈一然点了点头:“可以,你们先去忙吧,让对接的小组过来吧,我们直接开始。”
    哈利和托马斯点头出去了,没一会,四个工程师敲门走了进来。领头的是个四十出头的华人,戴著一副金属框眼镜。
    “陈先生,我是马文,opencl编译器团队的技术主管。这三位是林、苏尼尔和艾米,都是我们编译器后端和內存管理组的人。
    我们小组下面,还有几个可以配合的工程师,我们直接开始?”
    陈一然点了点头:“行,你们先说一下你们的想法吧。”
    几个人也没有特意去会议室,马文把一台笔记本电脑接上会议桌上的投影仪,就在边上的白墙上打出了一张架构图。
    上面是amd opencl运行时的完整编译流水线,opencl的c源文件经过前端解析生成中间表示,再经过统一优化器转换成amd il中间语言,最后由gpu后端编译器把il映射到具体的超长指令槽上。
    “这是我们目前的编译流水线,一共是四层,大概六万多行c++。主要瓶颈在后端,超长指令打包这个环节。
    我们的gpu是超长指令字架构,编译器需要把多条独立的指令捆成一个执行束才能充分利用流处理单元,但是捆指令这件事非常依赖输入代码的结构。”
    马文在投影仪上调出另一张ppt,上面是几段用红色標出来的代码。
    “如果是比较规整的计算密集型內核,我们的后端能在百分之七十到八十的指令槽上填满。但一旦內核里有复杂的分支或者非连续的全局內存访问,填充率会掉到百分之四十以下。”
    苏尼尔补充道:“我们现在的思路是分两步走。第一步,给全局內存访问模式识別加一个预分析。第二步,在超长指令调度器里加一个启发式算法。”
    陈一然看著屏幕没有马上说话,实际上是在和茉莉討论。
    【( >p < ”)怪不得amd不行,这都是啥啥啥啊。】
    四个人看陈一然没插话,自顾自地在那討论了半天,一副非常有想法的样子。
    陈一然实在忍不住了,捂著脸问:“你们的amd il中间语言那一层,是自己写的还是沿用之前ati的?”
    马文看了一眼林,林是团队里唯一一个ati出身的人,是在ati被收购后顺势来的amd。
    “是从ati时代继承下来的。我们做过几轮重构,但骨架没变。”
    “中间表示有多少个操作码。”
    “大概四百多个。”
    “里面有多少个是你们现在实际用到的。”
    林想了想说:“大概一半多一点。”
    陈一然喝了口可乐说:“四百多个操作码,用到的就两百个。我记得ati是1985年建立的对吧,然后2006年被amd收购的,“鬼知道这些操作码在里面堆了多少年了。
    你们现在的编译流水线四层。每一层有自己的数据结构,每一层有自己的优化规则,每一层往下一层传的时候要做格式转换。
    你们说的都是经典方法,但现在的问题不在方法上。
    是中间表示太臃肿,会导致层间转换丟失信息,打包阶段可能根本没有足够的依赖信息来做最优调度。。
    这太垃圾了,我来从头重新写一个吧。”
    四个工程师多少有点不服气,但是陈一然的技术权威性太强,而且一直传说他技术涉猎异常广泛,他们也不敢反驳。
    陈一然没管他们,自顾自地说:“超长指令指令打包不是必须放在最后的,如果编译器在它生成的时候就已经知道了每条指令的依赖关係和数据通路,它完全可以在生成的时候就標好哪些指令可以並行。”
    马文推了下眼镜:“是可以的,但意味著amd il中间语言那层要推倒。”
    “有问题?”
    马文不敢贸然说话,想了一下说:“我需要上报,首先如果真要这么做,我们的项目组需要更多人支援。其次,相关的適配工作可能也很庞大。我需要上报,这件事难度很大。”
    陈一然点点头:“你去上报就好了,我就不管你们了,我先回家了。我的狗子不在边上,会影响我的工作效率,我回家去开始工作了。”
    【(??????)??让我们回去开始吧,是时候给他们展示一下什么叫真正的技术了!给我一周,我就嚇死他们。】