今天还在修改Master Thesis的最后几段,然后就收到了两个offer。 softmachines(软鸡)和Fidessa(废呆傻).
废呆傻给80K+bonus,截止这礼拜五,我觉得我应该会拒掉的。
因为软鸡真的好赞阿,虽然办公室很破也不大, 在Santa Clara某个办公楼内,里面大部分人也不是从名校出来的。但是,我面的时候还是碰到了两个我非常欣赏的人。一个写software,binary translator,simulator什么的。这逼能在一个礼拜写一个新的simultaor。虽然这逼面我的题目有点弱智...(一个很简单的IA-32的instruction sequence...),因为我正好在TA intro programming system这课,再加上当时刚刚google on-site好,手感火热...另一个亚洲大胖子,architect,巨牛逼。我和他面的时候差点吵起来,因为他对architecture太熟了,我很多RoB, Reservation Station的细节都记不住。他就想做archtiecture, 所以从nVidia跳到了这个startup。不过软鸡的VISC架构照Yanqi的话来说,是抄袭她和Wentzlaff的idea... 呵呵,到底谁抄谁还说不定呢。所以能进软鸡的话一定能学到很多东西。
这礼拜还有mentor和intel的第一轮电面。 但我已经觉得,我不应该再根据社会的普世价值,名校情节什么的来选公司了。因为来普林是我这辈子最不合适的决定。周三面Intel,基于我现在更本没时间复习architecture课的内容,很可能会挂掉。
恩,不写了。
updates:仔细看了软鸡得到的一些数据,发现还是很扯的。至少我不会给这个idea很大的credit. 简单来说就是缩线程技术。软鸡给的SPEC的ipc虽然很高,但是软鸡的pipeline很短,每个stage所用到的gates就多,每阶delay长,所以自然它的freq不可能scale非常高;absolute performance不可能和superpipeline,high freq的cpu相比。主战的市场肯定是低功耗的手机,手表,嵌入式系统什么的。其次,它的ipc感觉有点水分...因为它更本没有说自己的ISA是什么样子的,它前段有一阶binary translator,能把arm和x86的指令动态转化成自己的指令集...但是...你特么转换的时候如果把本来100条指令变成了200条指令...那特么没理由ipc不高阿,我操...虚就虚在absolute performance这点上,唉...cpu做来做去就这点样子...真是受不了
update2: 刚刚我好像说了点梦话。恩。100条指令是不可能变成200条指令的...因为基本的指令add就add,mul就mul,load就是load,store就是store,不可能有傻逼故意把2+2分解成两个1+1以此提高ipc的...这么说来...它的ipc的数据还是比较可信的...也就是说确实在执行Spec 某些benchmark的时候,有存在issuable instruction,但本core中execution unit不够的情况。这倒确实是个不错的发现。如果可以和其他true dependence比较多的程序放一起执行的话,确实能够提高cpu对整个系统中所有应用程序执行的效率。
问题是在服务器端,低功耗的cpu确实很吸引人。但是server benchmarks架设在虚拟机上,其parallel issuable instructions 是非常少的。server benchmark本身就要经常access network stack, disk subsystem, handle user connections/requests, sync large amount of threads都会让program trap 到kernel里。一是会有非常多的context switches,另一个是kernel codes true dependence多,可同时执行的指令少。所以单thread的性能是没法提高的,这时候单核内多余的execution unit就可以同时给其他program用,增加效率,这就是所谓的SMT。所以是否缩线程的这种技术能够benifits,我觉得有可能,但可能性不大。不过去软鸡学习几年未必是坏事。希望一切都好。
No comments:
Post a Comment