“启智’的试验还在继续,期间也不用周昀每天盯着,不过他也不会闲着。
虽然只有他和陈默两个人,但也还是在九月底的时候完成了第一个版本的aetos,aetos就是周昀计划替代cuda的生态。
当然,现在还远远做不到cuda那样强大。。
而在进行了一系列的算子重写之后,aetos可以实现让一些非英伟达的显卡做到与之相同的矩阵运算速度。
但毕竟只是两个人做的,功能非常少,现如今能做到的只有一些内核基础算子,比如re、sigoid、tanh等激活函数,以及加法、乘法
还有求和、求最大值,矩阵转置,不过最为内核的还是ge,也就是通用矩阵乘法,而ge是深度学习、科学计算等领域的绝对计算内核
掌握了它就代表他们完成了从零到一的突破。
为此他们还专门写了一个专用的编译器,能将某种形式的计算描述转换成高度优化的gpu的机器代码,而这个机器代码可以适配不同的gpu内核,比如ad,英特尔,还有国产的。
简单来说,通过aetos,可以实现在ad平台上训练出一个简单的深度学习模型,例如轻量级的n、lst、dnn等等。
这在以前是很难想象的,最重要的就是其运算速度可以接近甚至持平在同级别n卡上用cuda跑的效果,这都是tie分割所带来的效果,让其足以弥补硬件上的差距。
除了这些优点,缺点自然也是有的,比如他现在还无法直接运行为cuda编写的现有代码,还无法兼容pytorch、tensorfiow等主流框架,同时也缺少cuda提供的成千上万个高度优化的库,如cudnn,cubs,cufft,缺乏nvidiansight那样强大的性能分析、调试工具,而且现在的aetos优化主要集中在ai和线性代数计算上,对图形、物理仿真等其他通用计算任务的支持非常有限或尚未开发。
而且哪怕是坐到了这种程度,就算工程师们知道你的东西是自己,勉强能用,但也不会舍弃已经非常成熟的cuda,除非是玄武’这种国家级别的项目,为了做到完全自研,才会去做这种费力不讨好的事情。
这也能看的出来,想要构建一个完整的生态是多么的困难。
而此时,正是aetos在大众面前的第一次亮相。
因为之前参加了玄武’项目,周昀在接下来的几年之内都不能出国,neurips之类的会议他自然是没法去了,国外的主会场去不了,国内的neurips线下论文分享会却是邀请了周昀。
周昀作为一个年轻学者,在neurips连续发表六篇论文,并且每一篇质量都极高,自然会引起学术圈的注意。
他也答应了,他正愁着该怎么宣传aetos,一个良好的技术生态或者是平台,开源永远都是迭代最快的方式。
而所谓neurips线下论文分享会,主要是为了国内人工智能领域的学者、研究人员、
学生以及从业者提供一个高质量的学术交流平台,因为neurips主会场在国外,很多人不能亲临,这才有了这个线下讨论会,也是为了能让国内的ai社区成员也能近距离接触和讨论最前沿的ai研究成果。
线下交流会的第二天,报告厅内,周昀在为大家讲解他发表在neurips上的论文。
报告厅内座无虚席,周昀站在讲台后,身后的巨幕投影着论文的整体框架图,他则是指着屏幕,不急不缓地讲解着自己的工作。
台下,来自各大高校、研究所和企业的专家学生们还不时有人举起手机拍下照片。
随后的提问环节,周昀都一一作答。
到了这个阶段,这场报告的预定时间才过了一半,不少人都觉得这可能是安排上的一个失误,周昀却是微微笑道:“感谢各位的问题,关于这篇论文的内容就到这里,接下来的时间,我想分享一下我们实验室最近的一个工作,相信各位肯定会感兴趣的。”
这个环节也是提前和主办方说好的。
不过台下的人并不知情,泛起些骚动,大家的好奇心都被勾了起来,毕竞随着周昀论文引用量的不断增加,他在学术圈的名气也是越来越大,至少在多模态这个领域,多数人都看过他的论,他的几篇论,都对多模态模型的发展做出了巨大的贡献。
周昀操作计算机,投影画面切换,一个logo出现在屏幕中间,aetos,下方则是一行小字agpuputgesysteforeveryone。
“在过去几个月里,我和我的学生,完成了一个非常创造性的工作,”周昀的目光扫过台下,朝着陈默点了点头,众人也看向这个有些拘谨的男孩。
“就是大家看到的这个,我们称之为aetos,目标是构建一个不依赖于特定硬件厂商的高性能gpu计算生态。“
话音落下,台下响起一阵阵议论。
gpu计算?生态?这两个词组合在一起,尤其是在当前的技术背景下,其指向性再明确不过cuda和英伟达的统治地位。
周昀也不意外大家的反应,只是继续自己的报告,ppt翻页:“为了实现这个目标,我们主要做了两件事:
第一,设计了一套新的中间表示(ir)层;
第二,创建了一个专用的编译器,负责将高级计算描述通过这套ir,最终转换为高度优化的且能适配不同gpu架构的机器码。
传统的cuda代码,其内核的编写方式与nvidiagpu的硬件特性,如线程层级结构、内存模型深度绑定,这使得它为n卡带来了极致性能,但也导致了其天然的封闭性。
aetos的ir层,试图站在一个更高的角度去描述计算本身,而不是如何映射到硬件,它更关注的是“要计算什么&039;,比如一个矩阵乘法的数据维度、依赖关系、并行粒度,而不是具体有多少个threadblock或warps。”
随后他展示了一个简单的ge在aetosir中的表示方式,它看起来更象是一个数学表达式和数据依赖图的结合体,几乎没有硬件特定的术语。
“这套ir是我们整个生态的基石,它就象普通话,而我们支持的各种gpu架构,就象是说不同方言的人,我们的编译器,就是一个优秀的翻译官。“