0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

国产高性能GPGPU的破局点在哪

lPCU_elecfans 来源:电子发烧友网 作者:吴子鹏 2021-09-14 09:58 次阅读

电子发烧友网报道(文/吴子鹏)GPU诞生的原因是人们需要更好地处理3D游戏中的图形渲染,因此GPU拥有很多很小的内核增加并行处理能力,然后通过图形流水线的模式做图形处理。由于天生核心数量多,因此GPU计算能力增加迅速,业界普遍认为2004年前后GPU计算能力已经超过CPU,此后两者之间的算力差距越拉越大。

拥有强大算力之后,更多的应用开始找上GPU,比如气候检测,还有时下大热的深度学习等。快速增长的计算需求也开始改变GPU,早期用于通用计算的GPU实际上还是遵循图形处理的原则来设计,内部依然有Vertex级处理器以及Fragment级处理器,面向其他运算需求显得“不伦不类”,直到英伟达设计出了统一处理器。

此后,GPGPU在任务清晰且计算量要求大的领域,比如矩阵的计算上优势愈发凸显。受益于人工智能、大数据和万物互联等多层buff加持,越来越多的行业开始提出这样的计算需求,GPGPU前景光明且市场巨大。在这样的背景下,目前国内已经涌现出一批GPGPU企业,沐曦集成威廉希尔官方网站 (上海)有限公司(以下简称:沐曦)便是其中之一,该公司致力于提供高性能GPU。

软件栈决定了用户群大小和用户体验

回顾GPGPU的发展,我们发现市场需求不仅是改变了GPGPU的核心布局,同时为了兼顾通用性,软件端也发展了巨大的改变,从OpenGL演化出统一计算架构CUDA。沐曦光启智能研究院科学家李兆石在接受电子发烧友采访时表示,“GPGPU作为一款通用芯片,在面对不同客户层出不穷的新需求时,需要保证它的可编程性。可编程性是由完善的软件栈来保证的。

对于所有GPGPU来说,软件栈的规划直接决定了GPGPU用户受众群体大小和用户使用体验。因此所有的GPGPU,不论是否国产,都会拥有自己的运算平台,即软件栈。比如AMD面向它的MI系列GPGPU,对标CUDA,开发了RoCM,并在RoCM之上移植了PyTorch等AI软件框架。”

他强调GPGPU上软件栈是至关重要的,对此他通过分析英伟达的CUDA来解释原因。“GPGPU芯片非常庞大,最新的Nvidia A100上有542亿个晶体管,它们构成了6912个并发执行的CUDA内核,以及为了保证CUDA内核的数据供给而设计的一套复杂的存储子系统。

考虑到人的思维方式是串行的,用户很难处理这么多的并发执行单元,因此这么多并发的硬件资源不可能直接暴露给用户。所以我们需要有一套软件栈将底层硬件架构的特征抽象成易于理解的编程模型提供给用户,从而让用户充分开发GPGPU的潜力。”

李兆石讲到,“然而抽象是有代价的:抽象掩藏掉的硬件细节越多,编程模型对用户越友好,那么它会越难充分发挥硬件的全部潜力。因此GPGPU的抽象是分层次的:越靠近用户的层次越易用,同时该层次的性能或者灵活性会越差。这样特定应用领域的用户,如果重心在开发效率,可以选择高层次的编程模型;而需要榨取GPGPU性能潜力的用户可以选择低层次的编程模型。这也正是我们把GPGPU的编程模型称为‘软件栈’的原因。”

目前,国产GPGPU显然还是跟随者的状态,虽然厂商在积极地推进架构创新和软件创新,但和英伟达之间的差距还是巨大的,因此从英伟达身上国产GPU还有很多经验可以汲取。李兆石对英伟达在GPGPU上面的软件实力有着清晰的认识。

他指出:“英伟达的AI软件栈自底向上至少可以分成5层:SASS是硬件实际执行的指令集,类似CPU的汇编;PTX是虚拟指令集,为不同代的Nvidia GPGPU提供了一个统一的编程接口;CUDA是用户在编写高性能GPGPU程序时最主要的编程模型;

cuBLAS, cuDNN, cuFFT, CUTLASS等运算库则让用户可以通过调用Nvidia针对自家GPGPU高度定制的算子库,不需要花费太多精力进行性能调优就可以享受到Nvidia GPGPU最好的性能,但它们灵活性受限;TensorRT, Triton, Megastron则是Nvidia针对特定AI应用场景深度定制,让AI类用户开箱即用的软件平台。”

可以看出,CUDA处于中间层。CUDA提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API接口来实现GPU的访问。CUDA采用C语言作为编程语言提供大量的高性能计算指令开发能力,使开发者能够在GPU的强大计算能力的基础上建立起一种效率更高的密集数据计算解决方案。

李兆石认为:“对于新兴的国产GPGPU而言,构建自己的软件栈时,首要任务是先打好基础,对标CUDA及以下的抽象层次,充分发挥自己芯片的特色,开发出一套用户可用、易用的编程模型,正所谓‘不积硅步无以至千里’。然后再结合目标客户的需求,对标TensorRT等框架,定制开箱即用的高层次编程模型。”

在此,他谈到了沐曦的规划。当前,沐曦GPGPU的芯片架构和软件栈是同时开发的。芯片架构上与现有GPGPU拥有不同的新特性,在设计之初都充分考虑了如何在各个层次的编程模型中进行抽象。这样,沐曦可以保证用户即可以平滑地从现有GPGPU迁移到沐曦的GPGPU上,又能在使用沐曦的软件栈时充分享受到新特性带来的更好体验。

着眼于未来的发展,英伟达CUDA既是国产GPGPU在并行计算架构方面的老师,也是最大的劲敌。目前,CUDA已经能够支持DX12这样的API,也支持C语言、Fortran、OpenCL等计算语言,其生态属性非常强大。

并且根据英伟达官方的说法,CUDA未来的发展是开放性的技术平台,支持更多的并行计算需求。这样的CUDA会给国产GPGPU在软件栈方面的发展造成巨大的困扰,因此李兆石呼吁:“国内各家GPGPU创业公司都有自研IP和软件栈的规划。从公开的信息来看,各家公司的软件栈规划都存在一定的共性。希望未来大家可以多多相互交流,共同进步。”

传统GPU的软件栈很难迁移到GPGPU上

GPGPU在GPU的基础上进行了优化设计,使之更适合高性能并行计算,并能使用更高级别的编程语言,在性能、易用性和通用性上更加强大。相较而言,国产GPU的启动比国产GPGPU要提前一些,是否有经验可循呢?

李兆石认为:“传统GPU主要面向图形渲染类应用。对于Nvidia来说,图形渲染类应用的软件栈与GPGPU的软件栈,只有底层的SASS, PTX和少量CUDA是共享的。再往上走的图形渲染API层,如OpenGL, Vulkan等,目前GPGPU还不需要支持。

国产传统的图形渲染GPU,大多基于自研的汇编层,对提供图形渲染API层提供支持。我们的底层设计(与Nvidia SASS和PTX同层次的汇编)与Nvidia及其它国产GPU是不同的,因此传统的图形渲染GPU软件栈难以直接迁移到GPGPU上。”

应用领域方面,GPGPU将应用扩展到了图形之外,在科学计算、区块链、大数据处理、工程计算、金融、基因等方面都有重要的应用,但更多是以服务器的形态提供高算力。

在应用层面,目前传统GPU和CPU的融合趋势已经显现,比如AMD APU系列,苹果的M1芯片、以及大多数手机SoC芯片等,它们的CPU和GPU都是直接在物理上共享内存。这些芯片通过CPU和GPU的紧密耦合,避免了CPU和GPU之间数据跨芯片搬运的能量消耗。

李兆石表示:“对于GPGPU而言,目前市面上还没有成熟的产品,让CPU和GPGPU在同一个die上紧密耦合。造成这一现象的原因有两个。首先,CPU和GPGPU之间的通信延迟或带宽,在目前流行的GPGPU应用中不是系统的瓶颈。

GPGPU的编程模型中,CPU与GPGPU间的通信用于处理应用中的控制逻辑。而GPGPU通常用来处理计算密集型应用或者访存密集型应用,其瓶颈在于GPGPU上的计算资源、或者GPGPU与显存(GDDR或者HBM)之间的通信带宽。

控制密集型应用很少大规模部署在GPGPU上。其次,GPGPU通常以加速卡的形式部署在服务器上,服务器厂商出于成本、可靠性和可扩展性的考虑,会分别采购CPU和GPGPU。”

“不过,对于CPU和GPGPU的融合,我们还是要以发展的眼光看问题。从应用需求的角度,随着张量加速单元和HBM技术在GPGPU的普及,GPGPU的计算和访存能力快速提升。正所谓‘按下葫芦浮起瓢’,此时CPU和GPGPU的通信代价正在变得越来越显著。

尤其当我们考虑到新兴的Pytorch等AI框架的动态图特性会引入非常频繁的CPU-GPGPU之间的交互时,低延迟的CPU-GPGPU紧耦合架构就变得更有价值了。从系统设计的角度,新兴的Chiplet技术可以有效降低封装内CPU和GPGPU紧耦合的设计成本。所以我们也很期待新的应用需求和封装技术可以使能未来的融合CPU-GPGPU芯片。” 李兆石在采访中讲到。

声明:本文由电子发烧友原创,转载请注明以上来源。如需入群交流,请添加微信elecfans999,投稿爆料采访需求,请发邮箱huangjingjing@elecfans.com。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    455

    文章

    50812

    浏览量

    423586
  • 3D
    3D
    +关注

    关注

    9

    文章

    2878

    浏览量

    107537
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10863

    浏览量

    211751
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4739

    浏览量

    128941

原文标题:国产高性能GPGPU的破局点是什么?

文章出处:【微信号:elecfans,微信公众号:电子发烧友网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于国产化鸿道Intewell操作系统的高性能实时运动控制解决方案

    目前国产化高实时运动控制达到了什么样的控制水平呢?软件+操作系统实时控制如何实现呢?下面,让我们一起看看基于国产化鸿道Intewell操作系统的高性能实时运动控制解决方案,深入了解这一具有历史新使命的自动化控制技术。
    的头像 发表于 12-05 16:03 113次阅读

    国产自主可控高性能车规级MCU芯片发布

    近日,湖北省车规级芯片产业技术创新联合体2024年大会召开,会上由东风汽车牵头组建的湖北省车规级芯片产业技术创新联合体发布了高性能车规级MCU芯片——DF30,填补国内空白。DF30是一款全国产自主可控高性能车规级MCU芯片,基
    的头像 发表于 11-11 13:53 428次阅读

    国产仪器新突破!中星联华高性能误码分析仪震撼来袭!

    2024年10月18日,中星联华科技(SinolinkTechnologies)举办“冲云误,码到成功”2024秋季新品发布会,此次发布会上中星联华推出全新一代高端高速时域仪器----高性能误码
    的头像 发表于 10-19 08:09 460次阅读
    <b class='flag-5'>国产</b>仪器新突破!中星联华<b class='flag-5'>高性能</b>误码分析仪震撼来袭!

    【「算力芯片 | 高性能 CPU/GPU/NPU 微架构分析」阅读体验】--全书概览

    1章 从TOP500和MLPerf看算力芯片格局 1.1科学算力最前沿TOP500 1.2 AI算力新标准 第2章 高性能 CPU 流水线概览 2.1什么是指令 2.2 流水线与MIPS 2.3
    发表于 10-15 22:08

    GPGPU体系结构优化方向(1)

    继续上文GPGPU体系结构优化方向 [上],介绍提高并行度和优化流水线的方向。
    的头像 发表于 10-09 10:03 284次阅读
    <b class='flag-5'>GPGPU</b>体系结构优化方向(1)

    兼容SiTime,国产高性能晶振/温补晶振交换机应用方案

    兼容SiTime,国产高性能晶振/温补晶振交换机应用方案
    的头像 发表于 08-30 09:55 280次阅读
    兼容SiTime,<b class='flag-5'>国产</b><b class='flag-5'>高性能</b>晶振/温补晶振交换机应用方案

    国产高性能晶振/温补晶振兼容SiTime用于可穿戴设备

    国产高性能晶振/温补晶振兼容SiTime用于可穿戴设备
    的头像 发表于 08-15 09:55 332次阅读
    <b class='flag-5'>国产</b><b class='flag-5'>高性能</b>晶振/温补晶振兼容SiTime用于可穿戴设备

    国产芯片原厂的出路:从风潮到现实的局之路

    国产芯片原厂的出路:从风潮到现实的局之路
    的头像 发表于 08-12 17:54 766次阅读

    国产高性能温补晶振用于服务器光模块,替换SiTime

    国产高性能温补晶振用于服务器光模块,替换SiTime
    的头像 发表于 08-09 09:41 344次阅读
    <b class='flag-5'>国产</b><b class='flag-5'>高性能</b>温补晶振用于服务器光模块,替换SiTime

    替代SiTime,国产高性能晶振/温补晶振用于定位器

    替代SiTime,国产高性能晶振/温补晶振用于定位器
    的头像 发表于 07-30 09:58 369次阅读
    替代SiTime,<b class='flag-5'>国产</b><b class='flag-5'>高性能</b>晶振/温补晶振用于定位器

    国产高性能温补晶振可替换SiTime用于GPS导航系统

    国产高性能温补晶振可替换SiTime用于GPS导航系统
    的头像 发表于 07-23 10:15 344次阅读
    <b class='flag-5'>国产</b><b class='flag-5'>高性能</b>温补晶振可替换SiTime用于GPS导航系统

    国产Cortex-A55高性能人工智能实验箱机械臂姿态识别案例

    国产Cortex-A55高性能人工智能实验箱机械臂姿态识别案例
    的头像 发表于 07-19 08:32 284次阅读
    <b class='flag-5'>国产</b>Cortex-A55<b class='flag-5'>高性能</b>人工智能实验箱机械臂姿态识别案例

    先楫半导体携手立功科技推出了国产高性能微控制器HPM6800系列

    上海先楫半导体科技有限公司(先楫半导体,HPMicro)推出了国产高性能微控制器HPM6800系列,致力于提供单主控的数字仪表及HMI解决方案
    的头像 发表于 03-13 12:24 880次阅读
    先楫半导体携手立功科技推出了<b class='flag-5'>国产</b><b class='flag-5'>高性能</b>微控制器HPM6800系列

    中机新材完成亿元A轮融资,专注国产高性能研磨抛光材料

    据了解,中机新材专注于国产高性能研磨抛光材料的研发与应用,能够为客户提供量身打造的工业磨抛解决方案,力求协助半导体产业彻底解决长期困扰的瓶颈问题。
    的头像 发表于 02-21 16:56 890次阅读

    如何知道gerber文件的坐标原点在哪

    一份gerber文件,不论我们使用cam350打开,还是valor或则其他软件打开,如何知道这个gerber文件的坐标原点在哪?2、是否每一份gerber都会决定出一个坐标原点?我知道valor软件
    发表于 12-29 10:09