CPU这边。未来的架构应该是CPU和GPU协同计算,各自处理自己擅长的部分。这个转变不是加几个接口就能完成的,需要从底层设计开始改。”
林子轩不知道什么时候站到了旁边。他手里拿着棒棒糖,但没有吃,就捏着塑料棍。
“你建议从哪开始。”
顾林看了他一眼。“从内存模型。CPU和GPU之间的数据拷贝是最大的性能杀手。你们现在的渲染管线每帧至少拷贝两次顶点数据和三次纹理数据。如果能做到零拷贝,性能提升不会低于百分之三十。”
林子轩把棒棒糖塞进嘴里。沈连河不知道什么时候醒了,从行军床上坐起来,头发翘着,眼睛还眯着,但已经打开了笔记本,翻到空白页。
顾林花了整个下午帮橘猫团队做了一次引擎架构评审。他指出了五个核心瓶颈。CPU和GPU之间的内存拷贝次数过多,着色器编译没有缓存机制,纹理流式加载的预取策略太保守,实例化渲染的批次合并不够激进,还有一个很多人容易忽略的问题,引擎没有为多核CPU做拓扑感知调度。线程绑定到错误的核心上,缓存命中率会大幅下降。
沈连河在笔记本上记了整整七页。林子轩只记了三行,但每一行都是一个模块的名字。
评审结束后,孟缘送顾林到楼下。宝安区的天已经黑了,街对面的夜市刚出摊,炒河粉的锅气飘过来。
“顾老师,你对硬件了解多少。”
顾林停下脚步。“你指什么。”
“显卡。独立显卡。”
顾林没有立刻回答。他看着夜市摊位上那盏忽明忽暗的白炽灯,沉默了几秒。
“我在极光科技做顾问。他们有一个GPU研发部门,已经做了好几年的技术储备,但公司高层一直在犹豫要不要投入商业化。这个项目对外是保密的,但你应该能理解,一个做CPU的公司想切显卡市场,投入不是小数目。”
“如果有一家平台能证明独立显卡对游戏玩家的价值,他们会下定决心吗。”
顾林转过身,看着孟缘。他四十二岁,在学术界待了快二十年,见过很多学生和创业者跟他聊“改变世界”。但孟缘问的不是改变世界,他问的是一个很具体的问题。极光,GPU,下定决心。
“会。”顾林说,“他们缺的不是技术,是最后一个理由。”
孟缘点了点头。他没有说更多,但顾林看到他的手插在兜里,手指在动,像在算一笔账。
回到办公室的时候,沈连河还在写代码。他的笔记本翻开在第七页,旁边放着一杯已经凉透的茶。林子轩坐在他旁边,两个人对着屏幕,一个在说,一个在听。林子轩说话最长的一段达到了十九个字。
“顶点数据的生命周期可以延长到两帧,减少一半的拷贝次数。”
沈连河嗯了一声,开始在代码里找那段内存分配的逻辑。
许知意从设计组探出头,看到两个技术狂人并排坐着的背影,用手机拍了一张照片。她没有发到群里,而是存进了“留档”相册,文件名写的是“引擎迭代夜”。