清华大学何虎:开源通用GPU指令集架构-OpenGPGPU
由天津市人民政府、中国汽车技术研究中心有限公司、中国汽车工程学会、中国汽车工业协会、中国汽车报社共同主办,天津市工业和信息化局、天津经济技术开发区管理委员会特别支持,日本汽车工业协会、德国汽车工业协会联合协办的第十九届中国汽车产业发展(泰达)国际论坛(以下简称“泰达汽车论坛”)于2023年9月1-3日在天津市滨海新区召开。本届论坛以“高质量·新未来”为年度主题,邀请重磅嘉宾展开深入研讨。
在9月3日智能化论坛(下半节):关键技术升级与产业化路线图中,清华大学集成电路学院副教授、博士生导师、上海清华国际创新中心副主任何虎发表了题为“开源通用GPU指令集架构-OpenGPGPU”的演讲。
清华大学集成电路学院副教授、博士生导师、上海清华国际创新中心副主任何虎
以下为演讲实录:
非常感谢泰达汽车论坛邀请我来做报告,我们是一个学术机构,特别渴望跟产业界多进行交流,把我们一些想法和产业界结合起来,共同推动GPU技术发展。刚才倪院士特别提到RISC-V指令级原生是CPU指令级,可能能够在目前CPU指令级格局下成长出来,就是它的开源开放的特性。
目前GPU产业同样也是这个局面,国际上是几个巨头在把持着GPU产业,特别是英伟达占据了绝大部分算力GPU市场。如果我们还希望能够进行全新的自主创新和发展的话,是不是也考虑一种开源的开放指令级架构在目前国际巨头垄断情况下往前发展。
从最早开始计算的需求一直存在,而且不断的推动人类进步,到今天进入人工智能时代以后已经成为一种整个社会的基础架构或基础设施。算力决定了一个国家目前在国际上、科技上人工智能发展上最重要的基础。目前GPU在国际上发展的脉络还是非常清楚的,最早是图形方式,通过扩展以及把它变成可编程器件以后,就变成了一种高性能计算处理期,性能会远远超过CPU。现在进入人工智能时代以后,GPU反而在某种程度上重要性远远超过了CPU。
整个国际巨头主要有三家,英伟达、AMD、Intel。Intel是做集成显卡,图形的GPU量反而非常大;在计算方面最大的是英伟达,然后是AMD。我们国家近几年,特别是2017年、2018年以后,涌现了非常多的GPU公司。因为这个赛道大家也都非常看好,希望我们中国能够在这方面有突破。事实证明这个赛道确实是个非常好的方向,可惜由于大国竞争导致的政局因素,在GPU技术上能够获得的国际上的技术还是比较弱的,大部分还是基于一些IP、海外人员回归等来做,并且都是处于私有状态。别看企业多,每个企业都在玩自己的,完全跟别人是隔绝的,都是在自己系统里来开发。
现在国内GPU面临非常现实的挑战。
第一,高性能处理器进口的受限,现在我们可以通过各种方式进口高性能GPU,如果按照美国出口管制法律最高性能的GPU已经都不能进口了。特别在计算GPU领域,CUDA是事实上的行业标准,大量的企业特别是用户已经非常熟悉和习惯CUDA开发方式了,英伟达也在CUDA生态上投入了巨资来进行建设,所以它的商业价值和商业市场份额都是最大的,形成了一种事实上的垄断。
我们国家大概2017年、2018年涌现了大量企业,CPU技术发展已经远远超过GPU。从零几年开始国内高校、科研院所也都开始进行研发了,但GPU在这个时间之前是没有人做的,突然一下子出现了大量GPU公司,可想而知很多技术并不是从本土研发出来的,一旦遇到一些困难,很有可能首当其冲。参考RISC-V指令级、CPU指令级发展脉络,我们觉得如果能够在GPU架构上有一个开源开放指令级,是不是也可以有机会成为世界第三级。我们现在首先打造开源的软件工具链、开源的指令级和开源的硬件架构,这三路齐头并进。我们软件工具链采用的是开源OpenCL的编程框架,应该说它首先是开源的;第二是目前唯一能够和CUDA相提并论的并行计算框架,只是因为它是开源的,这些大公司支持不太给力,所以就在OpenCL生态方面确实不是那么理想。如果我们中国能够接过这个棒子,能够把OpenCL开发的和CUDA一样好用的话,相信大量的上层建筑也能够基于OpenCL进行。
第二,开源的指令级现在采用的是基于RISC-V的标量和向量扩展来作为GPGPU的基础指令级,目前定义的开源GPU指令级架构大约是90%以上的指令是RISC-V指令,会有一部分是我们自己定义的为GPU专门设计的指令,能够尽可能让更多的人熟悉并且使用这套指令。
第三,在架构上我们也不断增加一些DSA应用,能够支持大算力的计算,最终是希望能够建立一个开源生态,打破技术封锁。中国人其实不担心技术被别人使用,只是希望技术能够被全世界的人公平的使用。OpenCL是一个异构并行的编程框架,其实它的基础思路和CUDA区别不大,都是有一一对应关系,只不过在真正实现时有点不那么给力。在支持OpenCL的企业,特别是国际大厂,一个都不少,关键是属于爹不亲娘不爱的局面,还是个开源的,没有任何一个大公司真正投入心力把它好好来开发。
同时,为了提高通用GPU的计算性能,大的GPU公司也做了一些DSA专门的扩展,就是为了提高性能。英伟达加入了Tensor Core以后能够支持的人工智能的算法和应用,性能得到了一个数量级的提升。
GPU指令级其实跟CPU指令级差不多,但CPU是一开始出现就有指令级,而GPU一出现是没有指令级的,可以说是一些控制命令,因为它主要做图形计算,英伟达做了一个开创性工作先驱,把GPU架构引入了指令变成一个完成可编程的架构。一个专用定制电路加入指令级以后就变成了即有软件站也有硬件站,大家各司其职就可以完成高性能的GPU编程,就变成和CPU一样的指令级架构,所以我们需要有这样一个指令级架构来实现高性能的GPU。
目前指令级架构没有一个统一的开源的GPU指令级架构,都是各个大公司自己在开发自己的,有一些像英伟达、AMD会开放一些指令级,是为了更好的软件适配使用,甚至是一些开源软件来适配使用,本质上都还是闭源的。国内到目前为止还没有见到哪个公司是用开源指令级来构建自己的GPU或者把他们的指令级作为开源的方式贡献出来。如果有了一个统一的指令级架构,意义还是非常明显的。如果是闭源方式,大量软件可以是开源的,就像CPU的X86、ARM,本身指令级只有少数人能用,但软件指令级是开放的,每个软件公司是可以开发相应软件的,但底层处理器就没有办法进行实现。如果指令级架构也是开源的话,就可以从上到下到软件技术站、硬件技术站全都可以,对全世界每个人都是开放的,就可以去开发相应的软硬件,这样能够极大提高生态普及率,同时避免重复制造轮子。30几家GPU公司在不断的重复造同样的轮子,但每一家都认为我是最强的,能够把其他的打败。
我刚收到一个投资机构发来的调研问我GPU公司怎么样,每一个公司都会写我是唯一能够超越英伟达和AMD的公司,其他都不行。有了统一指令级架构,当然我们可以去聚合各种力量,以及构建完整的软件生态,并且可以为我们国家GPU长期发展奠定一个基础。
我们的技术路线首先会有开源的编程框架和工具链,有开源的指令级架构,还有开源的硬件,这是我们指令级架构和其他指令级架构的对比,可以看到我们指令级架构在所有功能上已经具备了高性能GPU指令级所有的必备特点,这是我们在指令级支持和定义的扩展。
RISC-V的CPU只有5位的集成器地址编码,也就是最多32个逻辑集成器,对于GPU来说是远远不够的。我们用创新性的方法能够把集成器堆扩展到256,这是我们实现的一些框架。我们已经完全实现了指令级的V架构的实现,是用Tensor语言实现的,在我们的开源网站上也都有。
我们每一个SM就是流氏多处理器一个基本的架构,它是能够实现SMT的计算和现成的调度。我们目前通过的一些benchmark的测试,其中特别提到就是我们OpenSale的编译器,是由兆松武汉科技有限公司帮我们来开发的,它也是开发了所有的编译器的软件代码,基于LVM的软件代码也都是完全开源的。所以我们有一个开源的GPU的平台,这个平台已经在Github上还有国内GitLink上都已经实现了完全的开源,我们在今年的欧洲峰会上也发了两篇论文,有3篇硕士论文,还有4项的核心专利。
我们现在想在清华大学教育基金会下面设立一个公益项目,能够按照会员的方式来运行GPU的指令集架构。清华大学教育基金会是一个公益的组织,我们也在中国峰会的同期会议上也正式成立了这个社区。
以上就是我介绍的内容,我希望我们的GPU社区是一种共有、共建、共享的一种社区,希望能够共同推动GPU的发展,谢谢大家!
评论