CN114529444B - 图形处理模块、图形处理器以及图形处理方法 - Google Patents

图形处理模块、图形处理器以及图形处理方法 Download PDF

Info

Publication number
CN114529444B
CN114529444B CN202210424036.7A CN202210424036A CN114529444B CN 114529444 B CN114529444 B CN 114529444B CN 202210424036 A CN202210424036 A CN 202210424036A CN 114529444 B CN114529444 B CN 114529444B
Authority
CN
China
Prior art keywords
processing unit
graphic processing
sub
task
graphics processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210424036.7A
Other languages
English (en)
Other versions
CN114529444A (zh
Inventor
顾德明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Lisuan Technology Co ltd
Original Assignee
Nanjing Lisuan Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Lisuan Technology Co ltd filed Critical Nanjing Lisuan Technology Co ltd
Priority to CN202210424036.7A priority Critical patent/CN114529444B/zh
Publication of CN114529444A publication Critical patent/CN114529444A/zh
Application granted granted Critical
Publication of CN114529444B publication Critical patent/CN114529444B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

本发明提供了一种图形处理模块、图形处理器以及图形处理方法,所述图形处理方法用于一个主图形处理单元与至少一个子图形处理单元进行多GPU联合任务处理,所述主图形处理单元通过存储单元和连接所述存储单元的交换结构与子图形处理单元以及外部系统交换数据,具体步骤包括:从外部系统接收图形处理任务及资源;分解所述图形处理任务,根据任务流程动态生成子图形处理单元的任务指令;将所述任务指令及相应资源分发给子图形处理单元;接收并同步所述子图形处理单元的运算结果;生成最终任务处理结果并返回给外部系统;本发明实现了一种晶圆级规模设计的多GPU架构图形处理器,进一步提高了图形处理的效率。

Description

图形处理模块、图形处理器以及图形处理方法
技术领域
本发明涉及图形处理技术领域,尤其涉及一种多GPU架构的图形处理模块、图形处理器以及图形处理方法。
背景技术
随着半导体制造工艺的不断演进和单个图形处理器(Graphics ProcessingUnit,GPU)的面积不断增大,GPU的性能在过去的十年得到了数十倍的提升,但是仍然无法满足当前对高分辨率实时渲染、高性能计算以及实时光线追踪的需求。
为了解决单颗GPU的性能瓶颈问题,出现了采用可灵活伸缩的连接接口(ScalableLink Interface,SLI)或私有链接(link)等连接方式将多颗GPU互联做单一输出使用的技术,从而达到增强图形处理效能的效果。例如NVIDIASLI、AMDCrossfire等技术,常见的图像渲染模式包括分割帧渲染(Split Frame Rendering,SFR)或者交替帧渲染(AlternateFrame Rendering,AFR)。
这种传统的GPU互联技术,是通过将两块或以上相同型号规格的显卡物理连接实现的,在效率上很大程度依赖于应用程序的调度,相对单张显卡平均只能获得约30%的性能提升。成本和性能提升比较低,已无法单纯依靠增加GPU而获得更大收益。NVIDIA、AMD等主流GPU厂商已经逐渐放弃对SLI技术的支持。
但高性能多核GPU架构仍然是图形处理器领域的重要发展方向,尤其近年3D封装、芯粒(Chiplets)立体堆叠架构等先进封装技术已经日渐成熟,将多块GPU核心以及相关逻辑芯片、存储器等IP核通过裸片连接方式(die-to-die)进行高密度的晶圆级封装整合成为了可能,这样可以实现高带宽、低功耗以及更好的电源/信号完整性(PI/SI)表现。
因此基于以上新技术路线,有必要提供一种用于晶圆级规模(Wafer-Scaled)设计的多GPU架构图形处理器以及相应的图像渲染方法,以解决现有GPU互联技术中存在的性能瓶颈问题。
发明内容
本发明的目的在于提供一种图形处理模块、图形处理器以及图形处理方法,提高图形处理的效率。
为了实现上述目的,本发明的所述图形处理模块,包括一个主图形处理单元、至少一个子图形处理单元、至少一个存储单元和至少一个交换结构,
所述存储单元用于存放所述主图形处理单元和所述子图形处理单元的传输、转发以及运算数据;
所述交换结构连接所述存储单元,用于实现同图形处理模块或跨模块的存储单元之间的数据传输及转发;
所述主图形处理单元用于与外界进行数据交换,接收并分解图形处理任务,根据任务流程向子图形处理单元分发资源及任务指令,同步子图形处理单元的运算结果;
所述子图形处理单元解析并执行相应任务指令。
可选地,所述主图形处理单元、所述子图形处理单元之间及所述子图形处理单元之间共用所述存储单元。
可选地,所述主图形处理单元用于从外界获取资源以及原始任务指令,根据所述原始任务指令生成所述子图形处理单元的任务指令,并通过所述存储单元或交换结构分发。
可选地,所述子图形处理单元具有前后级关系,前一级所述子图形处理单元在执行完相应任务后,继续生成下一级子图形处理单元的任务指令,并通过所述存储单元或交换结构转发。
可选地,所述存储单元为静态随机存取存储器,所述存储单元的部分配置为本地存储单元,作为对应图形处理单元的临时计算空间,其余配置为全局存储单元。
可选地,所述主图形处理单元与子图形处理单元物理结构相同。
可选地,所述主图形处理单元为全功能GPU,所述子图形处理单元根据承担的任务采用不同的物理结构。
本发明还提供了一种图形处理器,包括至少两个上述任意一项所述的图形处理模块,所述图形处理模块之间通过所述存储单元或所述交换结构中的至少一种进行数据交换。
可选地,还包括负载均衡模块,所述负载均衡模块用于统计所述图形处理模块中各图形处理单元处于未工作状态的时间以得到统计结果,并根据所述统计结果对所述图形处理模块进行图形处理任务的分配。
本发明还提供了一种图形处理方法,用于一个主图形处理单元与至少一个子图形处理单元进行多GPU联合任务处理,所述主图形处理单元通过存储单元和连接所述存储单元的交换结构与子图形处理单元以及外部系统交换数据,所述方法包括:
从外部系统接收图形处理任务及资源;
分解所述图形处理任务,根据任务流程动态生成子图形处理单元的任务指令;
将所述任务指令及相应资源分发给子图形处理单元;
接收并同步所述子图形处理单元的运算结果;
生成最终任务处理结果并返回给外部系统。
可选地,所述主图形处理单元与子图形处理单元通过共用所述存储单元以及连接各存储单元的交换结构实现全局的高速数据交换。
可选地,所述主图形处理单元与子图形处理单元为相同的物理结构,所述从外部系统接收图形处理任务及资源前,还需选取指定主图形处理单元与子图形处理单元。
可选地,所述主图形处理单元生成并分发所有子图形处理单元的任务指令及相应资源。
可选地,所述子图形处理单元具有前后级关系,所述第一级子图形处理单元接收并执行来自主图形处理单元的任务指令后,继续生成下一级子图形处理单元的任务指令,并通过所述存储单元或交换结构转发,直至最后一级子图形处理单元完成任务指令的执行。
可选地,各级所述子图形处理单元分别将执行任务指令的运算结果返回给主图形处理单元同步。
可选地,各级所述子图形处理单元将执行任务指令的运算结果转发给下一级子图形处理单元作为运算所需数据,直至最后一级子图形处理单元将最终运算结果返回给主图形处理单元。
可选地,所述图形处理任务包括实时光线追踪、神经网络深度学习以及图像渲染。
可选地,所述分解所述图形处理任务时,使得主图形处理单元与各子图形处理单元仅执行固定类型或阶段的任务指令。
本发明的有益效果在于:所述主图形处理单元用于与外界进行数据交换,接收并分解图形处理任务,根据任务流程向子图形处理单元分发资源及任务指令,同步子图形处理单元的运算结果,所述子图形处理单元解析并执行相应任务指令,并通过存储单元存放所述主图形处理单元和所述子图形处理单元的传输、转发以及运算数据,所述交换结构连接所述存储单元,同图形处理模块或跨模块的存储单元之间的数据传输及转发,从而实现了晶圆级规模设计的多GPU架构图形处理器,进而提高了图形处理的效率。
附图说明
图1为本发明一些实施例所述图形处理器的的架构示意图;
图2为本发明一些实施例所述图形处理模块的架构示意图;
图3为本发明一些实施例中图形处理器局部物理结构的俯视示意图;
图4为本发明一些实施例中图形处理器局部物理结构的剖面示意图;
图5为本发明一些实施例中图形处理方法的流程图;
图6为本发明一些实施例中多GPU联合图像渲染任务的调度模式图;
图7为本发明又一些实施例中多GPU联合图像渲染任务的调度模式图;
图8为本发明另一些实施例中多GPU联合图像渲染任务的调度模式图;
图9为本发明再一些实施例中多GPU联合图像渲染任务的调度模式图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另外定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本文中使用的“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
针对现有技术存在的问题,本发明的实施例提供了用于晶圆级规模(Wafer-Scaled)设计的图形处理模块、图形处理器以及图形处理方法。
图1为本发明实施例所述图形处理器的的架构示意图,参照图1所示,所述图形处理器包括至少两个图形处理模块100(示意图以4组为例);所述图形处理模块100是指能够独立完成图形处理任务的最小功能模组,其中包括多个图形处理单元(GPU),用于实现多GPU联合任务处理。在一些实施例中,所述图形处理器还包括负载均衡模块200,所述负载均衡模块200用于统计所述图形处理模块100中各GPU处于未工作状态的时间以得到统计结果,并根据所述统计结果对所述图形处理模块100进行图形处理任务的分配,即负责GPU的状态监测并进行任务管理。有利于平衡各图形处理模块100的负载,提高调度和使用效率。以图像渲染任务为例,图形处理器可以按照分割帧渲染(Split Frame Rendering,SFR)或者交替帧渲染(Alternate Frame Rendering,AFR)模式,将某一帧的图像渲染任务分配给对应的图形处理单元分别处理。需要额外指出的是,由于图形处理模块100具备完整的图形处理能力,所以配置外围通信、存储、电源等功能IP,亦可以单独作为图形处理器使用。
图2为本发明实施例所述图形处理模块的架构示意图,参照图2所示,所述图形处理模块100包括一个主图形处理单元101、至少一个子图形处理单元102、至少一个存储单元103和至少一个交换结构104。其中,所述存储单元103用于存放所述主图形处理单元101和所述子图形处理单元102的传输、转发以及运算数据;所述交换结构104连接所述存储单元103,用于实现同图形处理模块或跨模块的存储单元103之间的数据传输及转发;所述主图形处理单元101用于与外界进行数据交换,接收并分解图形处理任务,根据任务流程向子图形处理单元102分发资源及任务指令,同步子图形处理单元102的运算结果;所述子图形处理单元102解析并执行相应任务指令。
一些实施例中,所述主图形处理单元101和所述子图形处理单元102之间及所述子图形处理单元102之间共用所述存储单元103。
一些实施例中,所述主图形处理单元101用于从外界获取资源以及原始任务指令,根据所述原始任务指令生成所述子图形处理单元102的任务指令,并通过所述存储单元103或交换结构104分发。
一些实施例中,所述子图形处理单元102具有前后级关系,前一级所述子图形处理单元在执行完相应任务后,继续生成下一级子图形处理单元的任务指令,并通过所述存储单元103或交换结构104转发。
更具体的,在图2所示意实施例中,图形处理模块包括四个图形处理单元,分别是主图形处理单元GPU0,子图形处理单元GPU1、GPU2以及GPU3;对应各图形处理单元设置有四个静态随机存取存储器(Static Random-Access Memory,SRAM)作为存储单元,即SRAM0、SRAM1、SRAM3以及SRAM4。一个用于连接各存储单元进行数据交换的交换结构104(SwitchFabric)。
在利用先进3D封装技术,这四个存储单元可以在物理结构上统一,即实现主图形处理单元和子图形处理单元或者子图形处理单元之间的存储单元共享,进一步实现存储单元103的全局管理。同时也可以将存储单元103的一部分,配置为本地存储单元(Local模式),作为对应图形处理单元的临时计算空间。具体的,存储单元103在物理结构上临近GPU的一部分可以作为该GPU的临时计算空间,配置成流缓存模式(StreaminCache),处理静态随机存取存储器SRAM难以存放的数据,以改善远程访问的效率,而其余大部分配置为全局存储单元(Global模式)进行系统存储全局管理。
所述交换结构104(SwitchFabric)是利用当前新一代开关器件结合交叉分组技术实现的一种交叉开关矩阵(Crossbar),系统中多个点到点的通信链路被组织在一起,最终能够实现所有芯片或模块间的任意互连和并发传输,系统带宽从而成倍的增加,通常由多组4x4Crossbar组成,提供大于1TB的带宽。
借助上述存储单元103的共享以及交换结构104的快速数据传输能力,可以实现各GPU之间的大带宽高速度的数据交换。具体的,假设图2中主图形处理单元GPU0需要与子图形处理单元GPU1做数据交换。如果对应的存储单元SRAM0与SRAM1是物理上两个相互独立的存储器,那么对应的数据交换过程如下:GPU0生成数据后写进SRAM0里,然后借助交换结构104,将该数据传输/复制/写到SRAM1里,最后GPU1从SRAM1读取这部分数据,完成数据流转。如果对应的存储单元SRAM0与SRAM1是共享的,物理上就是同一个存储器,那么对应的数据交换过程如下:GPU0生成数据后写进存储单元103,通过内存地址管理或者类似的全局管理机制告知GPU1数据所处的位置,GPU1直接在存储单元103内读取数据,完成数据流转。相比较之下,后者仅有一次读写过程,数据的传输交换速度和延迟远优于前者,能够进一步实现GPU之间的快速联动及响应,为多GPU的联合任务处理提供更优的基础。
受限于电源供应、散热、辅助功能IP的布局以及其他物理结构的限制,所述图形处理模块100内部根据GPU的数量及布局还是需要设置多个存储单元103以及交换结构104。而交换结构104不但支持同模块内部各存储单元103之间的数据传输和转发,同时也实现跨模块存储单元103之间的数据传输及转发,即交换结构在物理上连接同一个模块内部的存储单元,部分交换结构也跨图形处理模块连接其各自的存储单元。具体物理实现方式可见后续实施例说明。
图3为本发明一些实施例中图形处理器的局部物理结构的俯视示意图,图4为图3所示图形处理器的剖面示意图,剖面线如图3所注。参照图3及图4所示,本实施例的图形处理器采用了3D堆叠式封装,主图形处理单元101(主GPU)和子图形处理单元102(子GPU)位于上层,存储单元103以及交换结构104位于下层,各芯片器件/芯粒(Chiplet)之间通过裸片连接(DietoDie)。为示意方便,图中略去了其他辅助功能性芯片或者电源结构。在本实施例中主GPU和子GPU为阵列式相间布局,相邻的GPU共享下层的网格状存储单元103,所述交换结构104即网格的节点。下层网格化的存储单元103之间还可以设置其他功能模块或者IP核,并且预留出了足够的空间给存储单元103、交换结构104或者其他IP核布局。
在常规设计中,SRAM和数据总线都需要占用大量的面积,因为足够的面积意味着足够大的存储容量以及传输带宽,直接影响到GPU的性能,因此SRAM布局通常以正方形或者矩阵形式。但是过大的面积容易与GPU布局冲突并且影响接口设计不利于数据的存取,只能分布于GPU周围。在多GPU架构下,SRAM之间的距离比较远,造成通信困难。本发明实施例所展示的3D堆叠式封装结构则可以避免相关问题,在保证存储单元以及交换结构的面积同时又有效地实现了GPU之间的SRAM共享。
进一步如图3所示实施例,阵列左上方的四个图形处理单元构成了一个图形处理模块,包括一个主图形处理单元101和三个子图形处理单元102。多个图形处理模块形成阵列式布局,相邻GPU共同使用下层网格状横纵布局的存储单元103,横向与纵向的存储单元103在交叉节点位置通过交换结构104连接。在这种布局下,跨图形处理模块的相邻GPU之间也可以共享下方的存储单元103,跨图形处理模块的存储单元103也可以通过交换结构104连接,从而实现跨图形处理模块之间的通信以及数据交换。
一些实施例中,所述主图形处理单元与子图形处理单元物理结构相同。这样的好处是简化生产工艺,而且系统软固件可以自由定义图形处理模块的构成,任意GPU均可以被指定为主GPU或子GPU。如果因为生产良率的问题出现失效的GPU,该失效的GPU可以被屏蔽,周围的GPU可以进行图形处理模块的重组。
又一些实施例中,所述主图形处理单元为全功能GPU,所述子图形处理单元根据承担的任务采用不同的物理结构。这种情况是根据一些特殊的应用需求,主GPU与子GPU分别承担较大区别的任务时,主GPU需要完成所有图形处理任务的分解或执行工作,而子GPU可能仅负责其中的某个任务环节。例如在进行AI加速计算时,仅分配给子GPU部分浮点运算任务,为简化电路图形,缩小芯片面积,对子GPU中无关的功能和存储模块进行物理阉割。
基于上述图形处理模块、图形处理器,本发明还提出了一种图形处理方法。
图5为本发明一些实施例中图形处理方法的流程图。如图5所示,所述图形处理方法用于一个主图形处理单元与至少一个子图形处理单元进行多GPU联合任务处理,所述主图形处理单元通过存储单元和连接所述存储单元的交换结构与子图形处理单元以及外部系统交换数据,所述外部系统包括CPU。参照图5,所述图形处理方法包括以下步骤:
S1:从外部系统接收图形处理任务及资源;
S2:分解所述图形处理任务,根据任务流程动态生成子图形处理单元的任务指令;
S3:将所述任务指令及相应资源分发给子图形处理单元;
S4:接收并同步所述子图形处理单元的运算结果;
S5:生成最终任务处理结果并返回给外部系统。
一些实施例中,所述主图形处理单元与子图形处理单元通过共用所述存储单元以及连接各存储单元的交换结构实现全局的高速数据交换。
一些实施例中,所述主图形处理单元与子图形处理单元为相同的物理结构,所述从外部系统接收图形处理任务及资源前,还需选取指定主图形处理单元与子图形处理单元。
一些实施例中,所述主图形处理单元生成并分发所有子图形处理单元的任务指令及相应资源。
一些实施例中,所述子图形处理单元具有前后级关系,所述第一级子图形处理单元接收并执行来自主图形处理单元的任务指令后,继续生成下一级子图形处理单元的任务指令,并通过所述存储单元或交换结构转发,直至最后一级子图形处理单元完成任务指令的执行。
一些实施例中,各级所述子图形处理单元分别将执行任务指令的运算结果返回给主图形处理单元同步。
一些实施例中,各级所述子图形处理单元将执行任务指令的运算结果转发给下一级子图形处理单元作为运算所需数据,直至最后一级子图形处理单元将最终运算结果返回给主图形处理单元。
一些实施例中,所述图形处理任务包括实时光线追踪、神经网络深度学习以及图像渲染。
处理实时光线追踪任务时,所述主图形处理单元从外部系统接收资源和实时光线追踪任务,然后将所述资源根据分辨率分割成多个分割资源,并生成所述子图形处理单元的光线追踪任务指令,然后将多个所述分割资源和所述光线追踪任务指令分发到多个所述子图形处理单元,所述子图形处理单元根据所述光线追踪任务指令完成对所述分割资源的实时光线追踪运算,并将运算结果反馈给所述主图形处理单元,所述主图形处理单元根据各个所述子图形处理单元的运算结果生成最终任务处理结果并返回给所述外部系统。
处理单神经网络深度学习任务时,同一所述图形处理模块中,所述主图形处理单元从外部系统接收到神经网络深度学习任务和资源,所述主图形处理单元分解所述神经网络深度学习任务,并根据任务流程动态生成子图形处理单元的神经网络深度学习任务指令,然后将所述神经网络深度学习任务指令分发到所述子图形处理单元,每一个所述子图形处理单元根据所述神经网络深度学习任务指令处理一层的神经网络深度学习任务,并将运算结果反馈给所述主图形处理单元,所述主图形处理单元根据各个所述子图形处理单元的运算结果生成最终任务处理结果并返回给所述外部系统。
处理多神经网络深度学习任务时,系统将不同神经网络深度学习任务分发给不同所述图形处理模块,所述图形处理模块完成当前神经网络深度学习任务。
处理图像渲染任务时,同一所述图形处理模块中,所述主图形处理单元从外部系统接收图像渲染任务和资源,所述主图形处理单元分解所述图像渲染任务,并根据任务流程动态生成子图形处理单元的渲染任务指令,然后将所述图像渲染任务指令分发到所述子图形处理单元,每一个所述子图形处理单元根据所述图像渲染任务指令完成图像渲染任务,并将运算结果反馈给所述主图形处理单元,所述主图形处理单元根据各个所述子图形处理单元的运算结果生成最终任务处理结果并返回给所述外部系统。其中,所述图像渲染任务分解为前端渲染任务(FrontEndTask,FE)、后端渲染任务(BackEndTask,BE)和统一渲染任务(UnifiedTask,UT),接收到前端渲染任务的图形处理单元完成前端渲染任务,并生成前端渲染任务运算结果和后端渲染的任务指令,接收到后端渲染的任务的图形处理单元完成后端渲染任务,接收到统一渲染任务的图形处理单元负责为前端渲染任务以及后端渲染任务准备素材,对3D渲染任务进行后处理。
一些实施例中,所述分解图形处理任务时,使得主图形处理单元与各子图形处理单元仅执行固定类型或阶段的任务指令。这样图形处理单元在进行某些任务运算时,仅需加载一次或者少次的计算参数、数据缓存等,能够大幅提升多GPU架构系统的调度和运行效率。
图6~图9以图2所示的多GPU架构图形处理模块处理单帧3D图像渲染任务为例,展示了四种联合图像渲染任务的调度模式。
在一些实施例的3D图像渲染流程中,软件根据任务内容上下文(Context),决定渲染方式以及调度模式(主要是基于时间的轮询),通过分析资源需求以及画(Draw)的相互关系,将GPU需要处理的资源划分为前端任务优化资源(Front End Task OptimizeResource)、后端任务优化资源(Back End Task Optimize Resource)、统一任务资源(Unified Task Resource)。
所述前端渲染任务(FE)主要负责几何部分的前期处理(Geometry),包括空间变换、蒙皮动画、光照、网格细分、网格剔除、网格裁剪、几何数据压缩、后端数据及任务生成操作;所述后端渲染任务(BE)主要负责接收FE处理后的数据,例如通过交换结构SwitchFibric以及存储单元SRAM从其他GPU获取FE任务的输出数据,进一步进行图形的光栅化(Rasterizer)以及后续图形的着色(Shader)操作。前后端任务分离目的是降低单个GPU任务负载以及减少数据加载以及缓存环节,提高渲染超大分辨率的画面例如64kx 64k以上的能力。
而统一渲染任务(UT)则是负责为FE、BE准备素材,如异步的计算精确全局光照,响应来自其他GPU的光线追踪,过程纹理等操作请求,对3D渲染进行后处理,如根据多视点信息,输出对应的图像等。
从以上任务描述可知,FE与BE在被分配到不同GPU时是可以异步但同时执行的,而UT与FE、BE在执行时序上是完全分离的,所以负责UT的GPU也可以再被分配执行FE以及BE,通常UT会交给主GPU执行。
外部系统(请求的客户端)通过提交GPU直接存储器访问机制(DMA)触发GPU阵列工作,主GPU可以根据预先设置的任务标识,将对应的任务指令CMD、缓存器Register分发到对应的子GPU,子GPU根据任务的类型,选择工作在FE、BE或者UT状态,负责FE的子GPU可能会继续生成0~N个子BE任务,从而进入子GPU分级执行的状态。当子GPU完成当前任务后,对应的Fence会返回给主GPU用于同步(Fence是一种硬件中用于同步多个硬件单元的令牌Token,随着任务线Pipeline移动,每个硬件单元处理完自身的任务时,将其送到下游模块或者回到预定位置触发硬件的下一步动作)。主GPU会按照任务流程继续向子GPU分发任务直到任务结束,并同步完所有渲染结果,并根据视点信息生成最终图像,返回给请求的客户端。
如图6所示的调度模式,主图形处理单元GPU0先执行统一渲染任务(UT),准备好前端渲染任务FE以及后端渲染任务BE的素材,拆分任务流程;再自己执行前端渲染任务FrameFE,生成三个BE子任务(FrameBE0、FrameBE1、FrameBE2);将三个BE子任务分发给三个子GPU(GPU1、GPU2、GPU3)分别执行;最后GPU0同步并生成结果。
如图7所示的调度模式,GPU0同样先准备任务素材,拆分任务流程;将前端渲染任务FE拆分给自己和GPU1同步执行,并且继续执行部分BE任务例如光栅化工作;然后GPU0和GPU1各自把剩余的BE任务例如着色又分别分发给GPU2以及GPU3执行;最后GPU0同步并生成结果。
在一些实施例的3D图像渲染流程中,系统采用图像分割渲染方式,如图8所示的调度模式,GPU0准备任务素材,拆分任务流程;将一帧超大规模分辨率图像按照像素或者区块分割成渲染任务VM0、VM1、VM2、VM3,分别交由GPU0、GPU1、GPU2、GPU3进行独立渲染;最后GPU0同步并生成结果。
在一些实施例的3D图像渲染流程中,系统采用多通道渲染方式,如图9所示的调度模式,GPU0准备任务素材,拆分任务流程;将一个渲染任务拆分为多个渲染通道SubPass0、Subpass1、Subpass2、Subpass3多次渲染,依次交由GPU0、GPU1、GPU2、GPU3顺序执行;最后GPU0同步并生成结果。
综上所述,通过采用新的封装技术,可以实现芯粒裸片到裸片(Die to Die)连接,而进一步借助存储单元的共享以及全局管理,交换结构的快速数据传输,本发明所述GPU之间的数据传输能力以及响应速度远远大于传统GPU到GPU的总线数据交互模式。并且所述主图形处理单元、与所述子图形处理单元之间,以及所述子图形处理单元之间能够实现大带宽、小延迟的数据交互,所以所述主图形处理单元、与所述子图形处理单元之间,以及所述子图形处理单元之间能够实施接近于实时的任务协作。
虽然在上文中详细说明了本发明的实施方式,但是对于本领域的技术人员来说显而易见的是,能够对这些实施方式进行各种修改和变化。但是,应理解,这种修改和变化都属于权利要求书中所述的本发明的范围和精神之内。而且,在此说明的本发明可有其它的实施方式,并且可通过多种方式实施或实现。

Claims (15)

1.一种图形处理模块,其特征在于,包括一个主图形处理单元、至少一个子图形处理单元、至少一个存储单元和至少一个交换结构,所述主图形处理单元和所述子图形处理单元物理结构相同;多个图形处理单元阵列式排布,相邻图形处理单元共同使用下层网格状横纵布局的存储单元,横向与纵向的存储单元在交叉节点位置通过所述交换结构耦接;
所述存储单元用于存放所述主图形处理单元和所述子图形处理单元的传输、转发以及运算数据;
所述交换结构连接所述存储单元,用于实现同图形处理模块或跨模块的存储单元之间的数据传输及转发;
所述主图形处理单元用于与外界进行数据交换,接收并分解图形处理任务,根据任务流程向所述主图形处理单元及子图形处理单元分发资源及任务指令,同步子图形处理单元的运算结果;
所述主图形处理单元及所述子图形处理单元解析并执行相应任务指令;所述子图形处理单元具有前后级关系,前一级所述子图形处理单元在执行完相应任务后,继续生成下一级子图形处理单元的任务指令,并通过所述存储单元或交换结构转发。
2.根据权利要求1所述的图形处理模块,其特征在于,所述主图形处理单元、所述子图形处理单元之间共用所述存储单元,以及,不同的所述子图形处理单元之间共用所述存储单元。
3.根据权利要求1所述的图形处理模块,其特征在于,所述主图形处理单元用于从外界获取资源以及原始任务指令,根据所述原始任务指令生成所述子图形处理单元的任务指令,并通过所述存储单元或交换结构分发。
4.根据权利要求2所述的图形处理模块,其特征在于,所述存储单元为静态随机存取存储器,所述存储单元的部分配置为本地存储单元,作为对应图形处理单元的临时计算空间,其余配置为全局存储单元。
5.一种图形处理器,其特征在于,包括至少两个如权利要求1~4任意一项所述的图形处理模块,所述图形处理模块之间通过所述存储单元或所述交换结构中的至少一种进行数据交换。
6.根据权利要求5所述的图形处理器,其特征在于,还包括负载均衡模块,所述负载均衡模块用于统计所述图形处理模块中各图形处理单元处于未工作状态的时间以得到统计结果,并根据所述统计结果对所述图形处理模块进行图形处理任务的分配。
7.一种图形处理方法,其特征在于,用于一个主图形处理单元与至少一个子图形处理单元进行多GPU联合任务处理,所述主图形处理单元通过存储单元和连接所述存储单元的交换结构与子图形处理单元以及外部系统交换数据,所述主图形处理单元与子图形处理单元为相同的物理结构,所述主图形处理单元和所述子图形处理单元物理结构相同;多个图形处理单元阵列式排布,相邻图形处理单元共同使用下层网格状横纵布局的存储单元,横向与纵向的存储单元在交叉节点位置通过所述交换结构耦接;所述方法包括:
从外部系统接收图形处理任务及资源;
分解所述图形处理任务,根据任务流程动态生成子图形处理单元的任务指令;
将所述任务指令及相应资源分发给主图形处理单元及子图形处理单元,所述子图形处理单元具有前后级关系,前一级所述子图形处理单元在执行完相应任务后,继续生成下一级子图形处理单元的任务指令,并通过所述存储单元或交换结构转发;
接收并同步所述子图形处理单元的运算结果;
生成最终任务处理结果并返回给外部系统。
8.根据权利要求7所述的图形处理方法,其特征在于,所述主图形处理单元与子图形处理单元通过共用所述存储单元以及连接各存储单元的交换结构实现全局的高速数据交换。
9.根据权利要求7所述的图形处理方法,其特征在于,所述从外部系统接收图形处理任务及资源前,还需选取指定主图形处理单元与子图形处理单元。
10.根据权利要求7所述的图形处理方法,其特征在于,所述主图形处理单元生成并分发所有子图形处理单元的任务指令及相应资源。
11.根据权利要求7所述的图形处理方法,其特征在于,第一级子图形处理单元接收并执行来自主图形处理单元的任务指令后,继续生成下一级子图形处理单元的任务指令,直至最后一级子图形处理单元完成任务指令的执行。
12.根据权利要求11所述的图形处理方法,其特征在于,所述各级子图形处理单元分别将执行任务指令的运算结果返回给主图形处理单元同步。
13.根据权利要求11所述的图形处理方法,其特征在于,所述各级子图形处理单元将执行任务指令的运算结果转发给下一级子图形处理单元作为运算所需数据,直至最后一级子图形处理单元将最终运算结果返回给主图形处理单元。
14.根据权利要求7所述的图形处理方法,其特征在于,所述图形处理任务包括实时光线追踪、神经网络深度学习以及图像渲染。
15.根据权利要求7所述的图形处理方法,其特征在于,所述分解所述图形处理任务时,使得主图形处理单元与各子图形处理单元仅执行固定类型或阶段的任务指令。
CN202210424036.7A 2022-04-22 2022-04-22 图形处理模块、图形处理器以及图形处理方法 Active CN114529444B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210424036.7A CN114529444B (zh) 2022-04-22 2022-04-22 图形处理模块、图形处理器以及图形处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210424036.7A CN114529444B (zh) 2022-04-22 2022-04-22 图形处理模块、图形处理器以及图形处理方法

Publications (2)

Publication Number Publication Date
CN114529444A CN114529444A (zh) 2022-05-24
CN114529444B true CN114529444B (zh) 2023-08-11

Family

ID=81628260

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210424036.7A Active CN114529444B (zh) 2022-04-22 2022-04-22 图形处理模块、图形处理器以及图形处理方法

Country Status (1)

Country Link
CN (1) CN114529444B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115391124B (zh) * 2022-10-27 2023-03-21 瀚博半导体(上海)有限公司 一种面向图形芯片功耗测试的方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104952096A (zh) * 2014-03-31 2015-09-30 中国电信股份有限公司 Cpu和gpu混合云渲染方法、装置和系统
CN110415161A (zh) * 2019-07-19 2019-11-05 龙芯中科技术有限公司 图形处理方法、装置、设备及存储介质
CN110941481A (zh) * 2019-10-22 2020-03-31 华为技术有限公司 资源调度方法、装置及系统
CN112463709A (zh) * 2019-09-09 2021-03-09 上海登临科技有限公司 可配置的异构人工智能处理器
CN113344766A (zh) * 2021-06-07 2021-09-03 中天恒星(上海)科技有限公司 光线追踪处理器、处理器芯片、设备终端以及光线追踪方法
CN113628318A (zh) * 2021-07-20 2021-11-09 北京智源人工智能研究院 一种基于光线追踪的分布式实时神经元渲染方法和系统
CN113849312A (zh) * 2021-09-29 2021-12-28 北京百度网讯科技有限公司 数据处理任务的分配方法、装置、电子设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104952096A (zh) * 2014-03-31 2015-09-30 中国电信股份有限公司 Cpu和gpu混合云渲染方法、装置和系统
CN110415161A (zh) * 2019-07-19 2019-11-05 龙芯中科技术有限公司 图形处理方法、装置、设备及存储介质
CN112463709A (zh) * 2019-09-09 2021-03-09 上海登临科技有限公司 可配置的异构人工智能处理器
CN110941481A (zh) * 2019-10-22 2020-03-31 华为技术有限公司 资源调度方法、装置及系统
CN113344766A (zh) * 2021-06-07 2021-09-03 中天恒星(上海)科技有限公司 光线追踪处理器、处理器芯片、设备终端以及光线追踪方法
CN113628318A (zh) * 2021-07-20 2021-11-09 北京智源人工智能研究院 一种基于光线追踪的分布式实时神经元渲染方法和系统
CN113849312A (zh) * 2021-09-29 2021-12-28 北京百度网讯科技有限公司 数据处理任务的分配方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN114529444A (zh) 2022-05-24

Similar Documents

Publication Publication Date Title
Igehy et al. The design of a parallel graphics interface
CN110704360B (zh) 一种基于异构fpga数据流的图计算优化方法
CN109978751A (zh) 多gpu帧渲染
US11604649B2 (en) Techniques for efficiently transferring data to a processor
Kim et al. Multi-GPU system design with memory networks
JP2008538620A (ja) モノリシック構成のシリコン・チップ上に多数のグラフィックス・コアを用いるグラフィック処理及び表示システム
CN104699631A (zh) Gpdsp中多层次协同与共享的存储装置和访存方法
US9378533B2 (en) Central processing unit, GPU simulation method thereof, and computing system including the same
CN101441616B (zh) 基于寄存器文件的快速数据交换结构及其管理方法
CN114529444B (zh) 图形处理模块、图形处理器以及图形处理方法
JP6680454B2 (ja) Lsiチップ積層システム
US10916252B2 (en) Accelerated data transfer for latency reduction and real-time processing
US20230185570A1 (en) Techniques for efficiently transferring data to a processor
DE102023105565A1 (de) VERFAHREN UND VORRICHTUNG FÜR EFFIZIENTEN ZUGRIFF AUF MEHRDIMENSIONALE DATENSTRUKTUREN UND/ODER ANDERE GROßE DATENBLÖCKE
CN109918335A (zh) 一种基于cpu+fpga 8路dsm架构服务器系统及处理方法
CN116431562B (zh) 一种基于加速处理器的多头注意力机制融合计算分配方法
JP7339368B2 (ja) グラフィックプロセッサ及び情報処理システム
CN103279448A (zh) 基于数据缓存重配置的多核间数据交换方法及装置
US9658823B2 (en) Source-to-source compiler and run-time library to transparently accelerate stack or queue-based irregular applications on many-core architectures
US20230289242A1 (en) Hardware accelerated synchronization with asynchronous transaction support
CN116483536B (zh) 数据调度方法、计算芯片及电子设备
US20240111710A1 (en) Non-homogeneous chiplets
US11232622B2 (en) Data flow in a distributed graphics processing unit architecture
CN206322151U (zh) 一种gpu阵列计算系统
CN116777725A (zh) 跨多个计算引擎的程序化控制的数据多播

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant