登临科技联合创始人王平:创新+自研“双核”驱动,GPU+赋能AI落地生根(2)
扫一扫
分享文章到微信
扫一扫
关注99科技网微信公众号
既然提到选择,我们就来看看对比方案。 第一个不得不说的对比方案,就是GPU和通用GPU(GPGPU)。 GPU对于从业人员而言,是非常优秀的架构,它为游戏、为并行计算而生,其比较主流的生态CUDA已经成为了并行计算的标配,而且这些年它还在不断地进行改进。但是无论它怎么样改进,它还是有一些根本的问题不能够在架构层解决的。他的效率是在多条产品线上的均衡,在AI场景下效率一般,改进效率较低。 GPU整个产品线比较广,所覆盖的领域其实非常多。从公司理念或者产品理念上,它也是希望用一个架构解决各个领域的问题。所以,在它没有办法在任何特定领域下实现最优的情况下,给其他产品提供了特定领域里的优化空间,甚至是创新空间,我们则是思考的是如何在特定领域里面实现更高的效率。 GPU在AI领域有一些局限。主要几个问题是计算效率、存储子系统和片上延迟,这些基本问题导致它的能耗比较高,但性能比较有限,效率一般。 从我们走访客户的反馈可以看出,他们对GPU是又爱又恨。GPU的确为他们创造了价值,但是他们购买的GPU存在性价比不高的问题:即高价买到一些冗余的通用设计组件,但这些组件无法在他们所需的领域发挥能效,这就增加了产品部署的成本。 客户急需的是更高能效的处理器,那么有没有呢?在登临GPU+之前,有非常多的Paper、Demo来展示一些更高效的方案。这些高效方案更多展示的是在矩阵或者卷积运算这些方向上的提升,有更高的能效比以及创新。 但是根据我们在客户中的调研结果,矩阵和卷积运算固然重要,但这并不是全部:这些方案或许能够在矩阵加速方面解决一些问题,甚至能够在一两个特定的应用里面有一些不错的效果,但这并不是一个处理器的方案,因为处理器这个词本身就代表某种通用性;这些方案并不能够为客户提供一套完整的通用解决方案。 某个网络或者某个应用中的部分加速在客户的业务线里连不起来,他为了适应这个业务线又要做很多的变动,而这些部分加速只能适用于部分业务。这对客户来讲,是非常难用的方案,而且现在客户的应用其实是在不断演变的,客户在不断的进步,但如果你只能解决一个问题,哪怕这是一个比较主要或者是算力比较集中的问题,也很难在客户端实现落地。 客户通常不会为了你的一个小小的提升来改变他整个方案的框架。提升方案的能力其实也不一定完备,到了不能支持的部分就是一种灾难。从这个角度来讲,加速方案虽然看起来很美,但是并不能够很好地融入客户框架,或者融入客户框架的成本实在太高了。 我们应该探索能不能有一些好的方案,能够基于客户基本的应用框架比较好地融入,并且能够支持客户使用他比较熟悉的语言或者编程方式来实现定制式需求。达到了这两点,客户的接受度就会比较高,他会更愿意接受你的产品,他的创新也可以用比较通用的语言进行表达,而不需要学习专用的语言。 总结下来,其实最关键的两点就是: 高效率 ,硬件的高效率,以及整个解决方案的 通用性和应用性 。这个就是我们在AI领域要解决的最主要的问题,这两个问题再总结成一个问题, 其实就是高效率问题 。 一个是机器要高效率,就是说我们要能够提供一个高性能、低功耗,高能效比的系统。另外一个是要实现人的高效率,能够提升整个客户公司的高效率,而且灵活易用。达到这个目标,首先是集成,其次是优化,并且是用客户熟悉的办法优化,这样就可以实现很迅速的落地。 这是客户的“既要又要”。那么从我们自己对架构的设计需求,或者一个基本要求出发,我们是怎么解答“既要又要”这个问题的呢?那就是,我们的产品方案既要ASIC高效率,又要GPU的通用性。 进行了刚才问题的分析后,我们可以看到在AI计算领域异构系统应该是片内异构的系统,是一个水到渠成的选项。 刚才我们也提到了Dark Silicon(暗硅),传统片上无法把堆砌的大量的中效率核全部打开,但登临在片上选择一些异构的高、中、低效率不同核来结合,共同完成提高算力的任务,让不同的核实现各司其职。 那么在AI这个领域,我们做的是,用高密度的处理器解决高密度的计算需求,解决客户的硬件能力高效率问题。 当然另外一个非常重要点中密度的并行计算的需求,争对并行计算我们选择用GPU加速,并且采用硬件兼容CUDA/OpenCL等现有软件生态。考虑兼容现有软件生态是从客户端出发,让客户比较容易的编写自己的自定义算子,使其快速的实现方案的集成。 综上,我们最终设计开发了基于GPGPU的片内异构计算体系:GPU+,其兼具GPU的通用性及ASIC的高效率。 以下我深入介绍下GPU+的软硬件细节。 GPU+的核心是片内异构,在特定应用领域里,比如说我们现在落地的AI场景,实现我们的高能效的一个计算需求。以AI计算为例,AI计算中传递的数据是Tensor,操作是算子,尤其是绝大多数算子的算法是结构化的。我们基于这个特征设计一个高效的处理单元,对应的软件栈也只需要对这些算子进行特别加速,这部分专用既易用又能提供高能效的基础。而且,我们的内存子系统使用CUDA/OpenCL语言编写,能够让客户的生态的代码实现无缝接入。此外,我们采用了片上的高速数据交换网络,和软件管理的片上内存,最大程度的解决低带宽、低延迟,这样GPU+也就是实现了低功耗、高能效。 从一开始就在AI计算上还有一个什么好处呢?举一个例子,今年H100发布的一些Feature,可以看到他们试图解决一些访存、效率的问题并且引进了相关的编程模型,而这些问题在我们的原创架构可以做到一开始就不存在,或者说从一开始就可以有简单的解法。我们通过架构创新,让复杂的问题变简单。 此外,针对客户需求,GPU+通过使用片上不同的计算单元以及扩展xU进一步加速解决行业的共性计算问题。
99科技网:http://www.99it.com.cn
