CN106776023B - 一种自适应gpu统一染色阵列任务负载均衡方法 - Google Patents

一种自适应gpu统一染色阵列任务负载均衡方法 Download PDF

Info

Publication number
CN106776023B
CN106776023B CN201611139602.0A CN201611139602A CN106776023B CN 106776023 B CN106776023 B CN 106776023B CN 201611139602 A CN201611139602 A CN 201611139602A CN 106776023 B CN106776023 B CN 106776023B
Authority
CN
China
Prior art keywords
core
idle
dyeing
pixel
vertex
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
CN201611139602.0A
Other languages
English (en)
Other versions
CN106776023A (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.)
Xian Aeronautics Computing Technique Research Institute of AVIC
Original Assignee
Xian Aeronautics Computing Technique Research Institute of AVIC
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 Xian Aeronautics Computing Technique Research Institute of AVIC filed Critical Xian Aeronautics Computing Technique Research Institute of AVIC
Priority to CN201611139602.0A priority Critical patent/CN106776023B/zh
Publication of CN106776023A publication Critical patent/CN106776023A/zh
Application granted granted Critical
Publication of CN106776023B publication Critical patent/CN106776023B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

本发明属于图形处理器设计领域,公开了一种自适应GPU统一染色阵列任务负载均衡方法,包括:步骤1、实时统计GPU统一染色阵列n个统一染色核心(unified shading core)的负载状态;步骤2、根据负载状态判定GPU统一染色阵列是否需要执行资源分配操作;步骤3、选择资源分配方案;步骤4、依据资源分配方案实施资源分配与映射。

Description

一种自适应GPU统一染色阵列任务负载均衡方法
技术领域
本发明属于图形处理器设计领域,涉及一种自适应GPU统一染色阵列任务负载均衡的方法。
背景技术
图形处理器(Graphic Process Unit,GPU)是现代计算机硬件的重要组成部分,是进行图形绘制、处理和显示的关键部件,普遍存在于工作站、个人电脑、笔记本、手机以及各类需进行图形显示的系统中。GPU负责产生2D和3D的图形、图像和视频,以支持基于窗口的操作系统、图形用户界面、视频游戏、可视化图像应用和视频播放等可视化计算。GPU流水线高速、并行的特征和灵活的可编程能力,为图形处理和通用并行计算提供了良好的运行平台。
目前,我国GPU研制能力薄弱,各领域显示控制系统中大量采用国外进口的商用GPU芯片。尤其是在军用领域中,国外进口商用GPU芯片存在安全性、可靠性、保障性等方面的隐患,无法满足军用环境的需求;而且,出于政治、军事、经济等原因,国外对我国实行技术“封锁”和产品“垄断”,难以获得GPU芯片的底层技术资料,如寄存器资料、详细内部微架构、核心软件源码等,导致GPU功能、性能无法充分发挥,且移植性较差;上述问题严重制约了我国显示系统的独立研制和自主发展,研制具有自主知识产权的图形处理器芯片已迫在眉睫,自适应GPU统一染色阵列任务负载均衡方法作为统一染色GPU的关键和核心,对其设计技术进行研究和突破已刻不容缓。
发明内容
本发明的目的是:提供一种自适应GPU统一染色阵列任务负载均衡方法,突破统一染色GPU统一染色阵列资源动态分配和负载均衡的关键技术。
本发明的技术解决方案是:
一种自适应GPU统一染色阵列任务负载均衡方法,包括:
实时产生GPU统一染色阵列的两种负载状态标识,以n个统一染色核心的当前状态和任务类型为输入,根据设定的算法产生两种负载状态标识:idle vertex core(空闲顶点核心),idle pixel core(空闲像素核心),将两种负载状态标识输出到步骤2;
判定是否需要执行资源分配操作,将步骤1实时统计的GPU统一染色阵列的两种负载状态idle vertex core,idle pixel core为输入,依据预设的判定算法产生是否需要执行资源分配操作的判定标志,将判定标志和两种负载状态输出到步骤3;
步骤3、选择资源分配方案,依据步骤2输出的判定标志和两种负载状态idlevertex core,idle pixel core作为输入,如果需要执行资源分配,则使用设定的算法判定系统性能瓶颈的类型,根据性能瓶颈的类型选择资源分配方案,将资源分配方案输出到步骤4,否则,结束流程;
步骤4、实施资源分配与映射,以步骤3输出的资源分配方案作为控制条件,使用宽度优先的空闲统一染色核心查询算法选择1个空闲的core,将统一染色核心分配给指定的染色任务。
具体的,n的取值为2-80的整数。
步骤1中所述设定的算法具体为:
Idle vertex core:每个统一染色核心的状态包括:当前状态(idle\busy),任务类型(vertex\Pixel);当某个核心的状态为idle&vertex,则该核心为空闲vertex核心;该核心对应的标识位被置为1,根据n个核心标识位的值产生2bit的Idle vertex core;当n个统一染色核心的标识位全部为0,Idle vertex core为00,00表示GPU存在0个vertex类型的空闲统一染色核心;当n个统一染色核心的标识位有1个为1,Idle vertex core为01,01表示GPU存在1个vertex类型的空闲统一染色核心;当n个统一染色核心的标识位既不是全部为0并且不是只有1个统一染色核心的标识位为1,Idle vertex core为10,10表示GPU存在2个及以上vertex类型的空闲统一染色核心;Idle vertex core为11无意义;
Idle pixel core:当某个统一染色核心的状态为idle&pixel,则该统一染色核心为空闲pixel core;该统一染色核心对应的标识位被置为1,根据n个统一染色核心标识位的值产生2bit的Idle pixel core;当n个统一染色核心的标识位全部为0,Idle pixelcore为00,00表示GPU存在0个pixel类型的空闲统一染色核心;当n个统一染色核心的标识位有1个为1,Idle pixel core为01,01表示GPU存在1个pixel类型的空闲统一染色核心;当n个统一染色核心的标识位既不是全部为0并且不是只有1个统一染色核心的标识位为1,Idle pixel core为10,10表示GPU存在2个及以上pixel类型的空闲统一染色核心;Idlepixel core为11无意义。
步骤2中所述预设的判定算法具体为:
以负载状态标识Idle vertex core和Idle pixel core为输入,当Idle vertexcore不为00,并且Idle pixel core不为00,说明系统不存在性能瓶颈,不执行负载均衡操作,否则,资源映射与分配单元可能需要执行资源分配操作。
步骤3中所述设定的算法具体为:
依据Idle vertex core和Idle pixel core的值,能够实施负载均衡操作的情况包括:
当Idle vertex core为00,存在0个空闲vertex核心,Idle pixel core为10,存在2个及以上空闲pixel核,总体上系统存在2个及以上空闲统一染色核心,并且为pixel类型的,说明pixel负载较vertex负载轻,资源分配方案:将1个空闲pixel core送给vertex任务;
当Idle vertex core为01,存在1个空闲vertex核心,Idle pixel core为0,存在0个空闲pixel核心,总体上系统仅存在1个空闲统一染色核心,为了确保GPU流水线的通畅性,将该空闲统一染色核心给pixel任务使用,资源分配方案:将1个空闲vertex core送给pixel任务;
当Idle vertex core为10,存在2个及以上空闲vertex核心,Idle pixel core为0,存在0个空闲pixel核心,总体上系统存在“2个及以上”的空闲统一染色核心,说明vertex负载较pixel负载轻,将1个空闲统一染色核心送给pixel任务使用,资源分配方案:将1个空闲vertex core送给pixel任务;
依据Idle vertex core和Idle pixel core的值,不实施负载均衡操作的情况包括:
当Idle vertex core不为0,并且Idle pixel core不为0,系统处于负载均衡状态,不执行资源分配与映射操作;当Idle vertex core为0,并且Idle pixel core为0,则系统无法实施负载均衡,无需执行资源分配与映射操作;
当Idle vertex core为0,并且Idle pixel core为01,系统仅存在1个空闲统一染色核心,并且为pixel类型的,为了确保GPU流水线的通畅性,该空闲统一染色核心给pixel任务使用。为了确保GPU流水线不进入死锁状态,不允许执行负载均衡,无需执行资源分配与映射操作。
步骤4中所述宽度优先的空闲统一染色核心查询算法具体为:
如果GPU统一染色阵列具m个SSC,每个SSC具有8个统一染色核心,m*8等于n,m个SSC优先级从高到低依次为:SSC1,SSC2,SSC3,SSC4,SSC5,…,SSCm;n个统一染色核心的优先级顺序从高到低依次为:SSC1的统一染色核心1,SSC2的统一染色核心1,SSC3的统一染色核心1,SSC4的统一染色核心1,…,SSCm的统一染色核心1,SSC1的统一染色核心2,SSC2的统一染色核心2,SSC3的统一染色核心2,SSC4的统一染色核心2,…,SSCm的统一染色核心2,…,SSC1的统一染色核心8,SSC2的统一染色核心8,SSC3的统一染色核心8,SSC4的统一染色核心8,…,SSCm的统一染色核心8。
本发明的技术效果是:
1、本发明涉及一种自适应GPU统一染色阵列任务负载均衡方法,包括:步骤1、实时统计统一染色阵列n个统一染色核心的负载状态;步骤2、判定是否需要执行资源分配操作。步骤3、根据系统性能瓶颈的类型自适应的选择资源分配方案;步骤4、使用宽度优先的空闲统一染色核查找算法实施资源映射。以上四方面的特征使得GPU统一染色阵列任务负载均衡方法能够实现自适应的任务负载均衡功能。
2、自适应GPU统一染色阵列任务负载均衡方法的基本功能包括:产生负载状态标志;判定性能瓶颈类型;选择资源分配方案;实施资源映射。
3、本发明突破了图形处理器设计中自适应GPU统一染色阵列任务负载均衡方法的设计技术,可用于国产图形处理器芯片的研制。
附图说明:
图1是本发明自适应GPU统一染色阵列任务负载均衡方法的整体框图,包含:步骤1,实时统计n个统一染色核心的负载状态;步骤2,判定统一染色资源是否负载均衡;步骤3,根据负载状态自适应的选择资源分配方案;步骤4,资源分配与映射操作。
具体实施方式:
下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。
一种自适应GPU统一染色阵列任务负载均衡方法,包括:
实时产生GPU统一染色阵列的两种负载状态标识,以n个统一染色核心的当前状态和任务类型为输入,根据设定的算法产生两种负载状态标识:idle vertex core(空闲顶点核心),idle pixel core(空闲像素核心),将两种负载状态标识输出到步骤2;
判定是否需要执行资源分配操作,将步骤1实时统计的GPU统一染色阵列的两种负载状态idle vertex core,idle pixel core为输入,依据预设的判定算法产生是否需要执行资源分配操作的判定标志,将判定标志和两种负载状态输出到步骤3;
步骤3、选择资源分配方案,依据步骤2输出的判定标志和两种负载状态idlevertex core,idle pixel core作为输入,如果需要执行资源分配,则使用设定的算法判定系统性能瓶颈的类型,根据性能瓶颈的类型选择资源分配方案,将资源分配方案输出到步骤4,否则,结束流程;
步骤4、实施资源分配与映射,以步骤3输出的资源分配方案作为控制条件,使用宽度优先的空闲统一染色核心查询算法选择1个空闲的core,将统一染色核心分配给指定的染色任务。
具体的,n的取值为2-80的整数。
步骤1中所述设定的算法具体为:
Idle vertex core:每个统一染色核心的状态包括:当前状态(idle\busy),任务类型(vertex\Pixel);当某个核心的状态为idle&vertex,则该核心为空闲vertex核心;该核心对应的标识位被置为1,根据n个核心标识位的值产生2bit的Idle vertex core;当n个统一染色核心的标识位全部为0,Idle vertex core为00,00表示GPU存在0个vertex类型的空闲统一染色核心;当n个统一染色核心的标识位有1个为1,Idle vertex core为01,01表示GPU存在1个vertex类型的空闲统一染色核心;当n个统一染色核心的标识位既不是全部为0并且不是只有1个统一染色核心的标识位为1,Idle vertex core为10,10表示GPU存在2个及以上vertex类型的空闲统一染色核心;Idle vertex core为11无意义;
Idle pixel core:当某个统一染色核心的状态为idle&pixel,则该统一染色核心为空闲pixel core;该统一染色核心对应的标识位被置为1,根据n个统一染色核心标识位的值产生2bit的Idle pixel core;当n个统一染色核心的标识位全部为0,Idle pixelcore为00,00表示GPU存在0个pixel类型的空闲统一染色核心;当n个统一染色核心的标识位有1个为1,Idle pixel core为01,01表示GPU存在1个pixel类型的空闲统一染色核心;当n个统一染色核心的标识位既不是全部为0并且不是只有1个统一染色核心的标识位为1,Idle pixel core为10,10表示GPU存在2个及以上pixel类型的空闲统一染色核心;Idlepixel core为11无意义。
步骤2中所述预设的判定算法具体为:
以负载状态标识Idle vertex core和Idle pixel core为输入,当Idle vertexcore不为00,并且Idle pixel core不为00,说明系统不存在性能瓶颈,不执行负载均衡操作,否则,资源映射与分配单元可能需要执行资源分配操作。
步骤3中所述设定的算法具体为:
依据Idle vertex core和Idle pixel core的值,能够实施负载均衡操作的情况包括:
当Idle vertex core为00,存在0个空闲vertex核心,Idle pixel core为10,存在2个及以上空闲pixel核,总体上系统存在2个及以上空闲统一染色核心,并且为pixel类型的,说明pixel负载较vertex负载轻,资源分配方案:将1个空闲pixel core送给vertex任务;
当Idle vertex core为01,存在1个空闲vertex核心,Idle pixel core为0,存在0个空闲pixel核心,总体上系统仅存在1个空闲统一染色核心,为了确保GPU流水线的通畅性,将该空闲统一染色核心给pixel任务使用,资源分配方案:将1个空闲vertex core送给pixel任务;
当Idle vertex core为10,存在2个及以上空闲vertex核心,Idle pixel core为0,存在0个空闲pixel核心,总体上系统存在“2个及以上”的空闲统一染色核心,说明vertex负载较pixel负载轻,将1个空闲统一染色核心送给pixel任务使用,资源分配方案:将1个空闲vertex core送给pixel任务;
依据Idle vertex core和Idle pixel core的值,不实施负载均衡操作的情况包括:
当Idle vertex core不为0,并且Idle pixel core不为0,系统处于负载均衡状态,不执行资源分配与映射操作;当Idle vertex core为0,并且Idle pixel core为0,则系统无法实施负载均衡,无需执行资源分配与映射操作;
当Idle vertex core为0,并且Idle pixel core为01,系统仅存在1个空闲统一染色核心,并且为pixel类型的,为了确保GPU流水线的通畅性,该空闲统一染色核心给pixel任务使用。为了确保GPU流水线不进入死锁状态,不允许执行负载均衡,无需执行资源分配与映射操作。
步骤4中所述宽度优先的空闲统一染色核心查询算法具体为:
如果GPU统一染色阵列具m个SSC,每个SSC具有8个统一染色核心,m*8等于n,m个SSC优先级从高到低依次为:SSC1,SSC2,SSC3,SSC4,SSC5,…,SSCm;n个统一染色核心的优先级顺序从高到低依次为:SSC1的统一染色核心1,SSC2的统一染色核心1,SSC3的统一染色核心1,SSC4的统一染色核心1,…,SSCm的统一染色核心1,SSC1的统一染色核心2,SSC2的统一染色核心2,SSC3的统一染色核心2,SSC4的统一染色核心2,…,SSCm的统一染色核心2,…,SSC1的统一染色核心8,SSC2的统一染色核心8,SSC3的统一染色核心8,SSC4的统一染色核心8,…,SSCm的统一染色核心8。
实施例
如图1所示,自适应GPU统一染色阵列任务负载均衡方法的整体框图,包含:包括:步骤1、实时统计n个统一染色核心的负载状态;步骤2、是否需要执行资源分配操作;步骤3、选择资源分配方案;步骤4、资源分配与映射。
下面详细介绍每个步骤的具体功能和算法:
1、步骤1:实时统计n个统一染色核心的负载状态。为自适应GPU统一染色阵列任务负载均衡方法提供输入数据,实时统计GPU统一染色资源的负载状态,产生Idle vertexcore和Idle pixel core两种负载状态标识,具体定义如下。
1.1、Idle vertex core:每个统一染色核心的状态包括:当前状态(idle\busy),任务类型(vertex\Pixel)。当某个核心的状态为idle&vertex,则该核心为空闲vertex核心。该核心对应的标识位被置为1,根据n个核心标识位的值产生2bit的Idle vertex core。当n个统一染色核心的标识位全部为0,Idle vertex core为00,00表示GPU存在0个vertex类型的空闲统一染色核心;当n个统一染色核心的标识位有1个为1,Idle vertex core为01,01表示GPU存在1个vertex类型的空闲统一染色核心;当n个统一染色核心的标识位既不是全部为0并且不是只有1个统一染色核心的标识位为1,Idle vertex core为10,10表示GPU存在2个及以上vertex类型的空闲统一染色核心;Idle vertex core为11无意义。
1.2、Idle pixel core:当某个统一染色核心的状态为idle&pixel,则该统一染色核心为空闲pixel core。该统一染色核心对应的标识位被置为1,根据n个统一染色核心标识位的值产生2bit的Idle pixel core。当n个统一染色核心的标识位全部为0,Idle pixelcore为00,00表示GPU存在0个pixel类型的空闲统一染色核心;当n个统一染色核心的标识位有1个为1,Idle pixel core为01,01表示GPU存在1个pixel类型的空闲统一染色核心;当n个统一染色核心的标识位既不是全部为0并且不是只有1个统一染色核心的标识位为1,Idle pixel core为10,10表示GPU存在2个及以上pixel类型的空闲统一染色核心;Idlepixel core为11无意义。
2、步骤2:判定系统是否需要实施资源分配。以负载状态标识Idle vertex core和Idle pixel core为输入,当Idle vertex core不为00,并且Idle pixel core不为00,说明系统不存在性能瓶颈,不执行负载均衡操作,否则,资源映射与分配单元可能需要执行资源分配操作,进入步骤3。
3、步骤3:选择资源分配方案。系统可能需要实施负载均衡,根据性能瓶颈的类型自适应的选择资源分配方案。依据Idle vertex core和Idle pixel core的值,能够实施负载均衡操作的情况包括:当Idle vertex core为00,存在0个空闲vertex核心,Idle pixelcore为10,存在2个及以上空闲pixel核,总体上系统存在2个及以上空闲统一染色核心,并且为pixel类型的,说明pixel负载较vertex负载轻。资源分配方案:将1个空闲pixel core送给vertex任务;当Idle vertex core为01,存在1个空闲vertex核心,Idle pixel core为0,存在0个空闲pixel核心,总体上系统仅存在1个空闲统一染色核心,为了确保GPU流水线的通畅性,将该空闲统一染色核心给pixel任务使用。资源分配方案:将1个空闲vertexcore送给pixel任务;当Idle vertex core为10,存在2个及以上空闲vertex核心,Idlepixel core为0,存在0个空闲pixel核心,总体上系统存在“2个及以上”的空闲统一染色核心,说明vertex负载较pixel负载轻,将1个空闲统一染色核心送给pixel任务使用。资源分配方案:将1个空闲vertex core送给pixel任务。依据Idle vertex core和Idle pixelcore的值,不实施负载均衡操作的情况包括:当Idle vertex core不为0,并且Idle pixelcore不为0,系统处于负载均衡状态,不执行资源分配与映射操作;当Idle vertex core为0,并且Idle pixel core为0,则系统无法实施负载均衡,无需执行资源分配与映射操作;当Idle vertex core为0,并且Idle pixel core为01,系统仅存在1个空闲统一染色核心,并且为pixel类型的,为了确保GPU流水线的通畅性,该空闲统一染色核心给pixel任务使用。为了确保GPU流水线不进入死锁状态,不允许执行负载均衡,无需执行资源分配与映射操作。
4、步骤4:资源分配与映射。依据步骤3输出的资源分配方案,当GPU需要为pixel任务增加统一染色资源,则按照宽度优先的方法执行空闲统一染色核心查询操作,将第1个idle状态的Vertex Core作为资源映射的对象,将此统一染色核心的状态修改为Pixel&idle。当GPU需要为Vertex任务增加统一染色资源,则按照宽度优先方法执行空闲统一染色核心查询操作,将第1个idle状态的Pixel Core作为资源映射的对象,将此统一染色核心的状态修改为Vertex&idle。宽度优先的资源映射算法的描述如下:如果GPU统一染色阵列具m个SSC,每个SSC具有8个统一染色核心,m*8等于n,m个SSC优先级从高到低依次为:SSC1,SSC2,SSC3,SSC4,SSC5,…,SSCm。在宽度优先的资源映射方法中,n个统一染色核心的优先级顺序从高到低依次为:SSC1的统一染色核心1,SSC2的统一染色核心1,SSC3的统一染色核心1,SSC4的统一染色核心1,…,SSCm的统一染色核心1,SSC1的统一染色核心2,SSC2的统一染色核心2,SSC3的统一染色核心2,SSC4的统一染色核心2,…,SSCm的统一染色核心2,…,SSC1的统一染色核心8,SSC2的统一染色核心8,SSC3的统一染色核心8,SSC4的统一染色核心8,…,SSCm的统一染色核心8。宽度优先资源映射算法能使同一类染色任务均匀分布在m个SSC中,最大限度的提高同一类染色任务的并行度,使得GPU取得高性能。在资源分配阶段,宽度优先资源映射算法使得每个SSC既具有Vertex类型的统一染色核心,也具有pixel类型的统一染色核心,能够支持SSC内部染色任务的交错执行,隐藏长存储器访问延迟,提高统一染色核心的计算资源利用率。
最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (5)

1.一种自适应GPU统一染色阵列任务负载均衡方法,其特征在于,包括:
步骤1、实时产生GPU统一染色阵列的两种负载状态标识,以n个统一染色核心的当前状态和任务类型为输入,根据设定的算法产生两种负载状态标识:idle vertex core(空闲顶点核心),idle pixel core(空闲像素核心),将两种负载状态标识输出到步骤2;
步骤2、判定是否需要执行资源分配操作,将步骤1实时统计的GPU统一染色阵列的两种负载状态标识idle vertex core,idle pixel core为输入,依据预设的判定算法产生是否需要执行资源分配操作的判定标志,将判定标志和两种负载状态输出到步骤3;
步骤3、选择资源分配方案,依据步骤2输出的判定标志和两种负载状态idle vertexcore,idle pixel core作为输入,如果需要执行资源分配,则使用设定的算法判定系统性能瓶颈的类型,根据性能瓶颈的类型选择资源分配方案,将资源分配方案输出到步骤4,否则,结束流程;
步骤4、实施资源分配与映射,以步骤3输出的资源分配方案作为控制条件,使用宽度优先的空闲统一染色核心查询算法选择1个空闲的core,将统一染色核心分配给指定的染色任务;
步骤3中所述设定的算法具体为:
依据Idle vertex core和Idle pixel core的值,能够实施负载均衡操作的情况包括:
当Idle vertex core为00,存在0个空闲vertex核心,Idle pixel core为10,存在2个及以上空闲pixel核,系统存在2个及以上空闲统一染色核心,并且为pixel类型的,说明pixel负载较vertex负载轻,资源分配方案:将1个空闲pixel core送给vertex任务;
当Idle vertex core为01,存在1个空闲vertex核心,Idle pixel core为00,存在0个空闲pixel核心,系统仅存在1个空闲统一染色核心,为了确保GPU流水线的通畅性,将该空闲统一染色核心给pixel任务使用,资源分配方案:将1个空闲vertex core送给pixel任务;
当Idle vertex core为10,存在2个及以上空闲vertex核心,Idle pixelcore为00,存在0个空闲pixel核心,系统存在2个及以上的空闲统一染色核心,说明vertex负载较pixel负载轻,将1个空闲统一染色核心送给pixel任务使用,资源分配方案:将1个空闲vertexcore送给pixel任务;
依据Idle vertex core和Idle pixel core的值,不实施负载均衡操作的情况包括:
当Idle vertex core不为00,并且Idle pixel core不为00,系统处于负载均衡状态,不执行资源分配与映射操作;当Idle vertex core为00,并且Idle pixel core为00,则系统无法实施负载均衡,无需执行资源分配与映射操作;
当Idle vertex core为00,并且Idle pixel core为01,系统仅存在1个空闲统一染色核心,并且为pixel类型的,为了确保GPU流水线不进入死锁状态,不允许执行负载均衡,无需执行资源分配与映射操作。
2.如权利要求1所述的一种自适应GPU统一染色阵列任务负载均衡方法,其特征在于,
n的取值为2-80的整数。
3.如权利要求1所述的一种自适应GPU统一染色阵列任务负载均衡方法,其特征在于,
步骤1中所述设定的算法具体为,
当某个统一染色核心的当前状态为idle并且任务类型为vertex,则该核心为空闲vertex核心;该核心对应的标识位被置为1,根据n个核心标识位的值产生2bit的Idlevertex core;当n个统一染色核心的标识位全部为0,Idle vertex core为00,00表示GPU存在0个vertex类型的空闲统一染色核心;当n个统一染色核心的标识位有1个为1,Idlevertex core为01,01表示GPU存在1个vertex类型的空闲统一染色核心;当n个统一染色核心的标识位既不是全部为0并且不是只有1个统一染色核心的标识位为1,Idle vertexcore为10,10表示GPU存在2个及以上vertex类型的空闲统一染色核心;Idle vertex core为11无意义;
当某个统一染色核心的当前状态为idle,并且任务类型为pixel,则该统一染色核心为空闲pixelcore;该统一染色核心对应的标识位被置为1,根据n个统一染色核心标识位的值产生2bit的Idle pixel core;当n个统一染色核心的标识位全部为0,Idle pixel core为00,00表示GPU存在0个pixel类型的空闲统一染色核心;当n个统一染色核心的标识位有1个为1,Idle pixel core为01,01表示GPU存在1个pixel类型的空闲统一染色核心;当n个统一染色核心的标识位既不是全部为0并且不是只有1个统一染色核心的标识位为1,Idlepixelcore为10,10表示GPU存在2个及以上pixel类型的空闲统一染色核心;Idle pixelcore为11无意义。
4.如权利要求1所述的一种自适应GPU统一染色阵列任务负载均衡方法,其特征在于,
步骤2中所述预设的判定算法具体为:
以负载状态标识Idle vertex core和Idle pixel core为输入,当Idle vertex core不为00,并且Idle pixel core不为00,说明系统不存在性能瓶颈,不执行负载均衡操作,否则,资源映射与分配单元需要执行资源分配操作。
5.如权利要求1所述的一种自适应GPU统一染色阵列任务负载均衡方法,其特征在于,
步骤4中所述宽度优先的空闲统一染色核心查询算法具体为:
如果GPU统一染色阵列具有m个SSC,每个SSC具有8个统一染色核心,m*8等于n,m个SSC优先级从高到低依次为:SSC1,SSC2,SSC3,SSC4,SSC5,…,SSCm;n个统一染色核心的优先级顺序从高到低依次为:SSC1的统一染色核心1,SSC2的统一染色核心1,SSC3的统一染色核心1,SSC4的统一染色核心1,…,SSCm的统一染色核心1,SSC1的统一染色核心2,SSC2的统一染色核心2,SSC3的统一染色核心2,SSC4的统一染色核心2,…,SSCm的统一染色核心2,…,SSC1的统一染色核心8,SSC2的统一染色核心8,SSC3的统一染色核心8,SSC4的统一染色核心8,…,SSCm的统一染色核心8。
CN201611139602.0A 2016-12-12 2016-12-12 一种自适应gpu统一染色阵列任务负载均衡方法 Active CN106776023B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611139602.0A CN106776023B (zh) 2016-12-12 2016-12-12 一种自适应gpu统一染色阵列任务负载均衡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611139602.0A CN106776023B (zh) 2016-12-12 2016-12-12 一种自适应gpu统一染色阵列任务负载均衡方法

Publications (2)

Publication Number Publication Date
CN106776023A CN106776023A (zh) 2017-05-31
CN106776023B true CN106776023B (zh) 2021-08-03

Family

ID=58879969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611139602.0A Active CN106776023B (zh) 2016-12-12 2016-12-12 一种自适应gpu统一染色阵列任务负载均衡方法

Country Status (1)

Country Link
CN (1) CN106776023B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108154461A (zh) * 2017-12-06 2018-06-12 中国航空工业集团公司西安航空计算技术研究所 一种低功耗gpu染色任务与统一染色阵列任务现场映射结构
CN108122190B (zh) * 2017-12-06 2021-06-01 中国航空工业集团公司西安航空计算技术研究所 一种gpu统一染色阵列顶点染色任务属性数据组装方法
CN108109103A (zh) * 2017-12-06 2018-06-01 中国航空工业集团公司西安航空计算技术研究所 一种高性能gpu染色任务与统一染色阵列任务现场映射结构
CN109800088B (zh) * 2018-11-14 2023-06-20 西安翔腾微电子科技有限公司 基于训练的gpu配置管理方法、装置、存储介质和gpu
CN110795241B (zh) * 2019-10-18 2022-07-19 北京并行科技股份有限公司 一种作业调度管理方法、调度中心和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101470892A (zh) * 2008-01-25 2009-07-01 威盛电子股份有限公司 绘图处理单元以及执行单元
CN101877116A (zh) * 2008-11-20 2010-11-03 威盛电子股份有限公司 绘图处理单元、执行单元以及工作管理方法
US20130293546A1 (en) * 2012-05-03 2013-11-07 Samsung Electronics Co., Ltd. Dynamic load balancing apparatus and method for graphic processing unit (gpu)
US20140300613A1 (en) * 2003-11-20 2014-10-09 Ati Technologies Ulc Graphics processing architecture employing a unified shader
CN105513003A (zh) * 2015-12-11 2016-04-20 中国航空工业集团公司西安航空计算技术研究所 一种图形处理器统一染色器阵列体系结构
CN105630441A (zh) * 2015-12-11 2016-06-01 中国航空工业集团公司西安航空计算技术研究所 一种基于统一染色技术的gpu体系架构

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140300613A1 (en) * 2003-11-20 2014-10-09 Ati Technologies Ulc Graphics processing architecture employing a unified shader
CN101470892A (zh) * 2008-01-25 2009-07-01 威盛电子股份有限公司 绘图处理单元以及执行单元
CN101877116A (zh) * 2008-11-20 2010-11-03 威盛电子股份有限公司 绘图处理单元、执行单元以及工作管理方法
US20130293546A1 (en) * 2012-05-03 2013-11-07 Samsung Electronics Co., Ltd. Dynamic load balancing apparatus and method for graphic processing unit (gpu)
CN105513003A (zh) * 2015-12-11 2016-04-20 中国航空工业集团公司西安航空计算技术研究所 一种图形处理器统一染色器阵列体系结构
CN105630441A (zh) * 2015-12-11 2016-06-01 中国航空工业集团公司西安航空计算技术研究所 一种基于统一染色技术的gpu体系架构

Also Published As

Publication number Publication date
CN106776023A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
CN106776023B (zh) 一种自适应gpu统一染色阵列任务负载均衡方法
US9633230B2 (en) Hardware assist for privilege access violation checks
US9354892B2 (en) Creating SIMD efficient code by transferring register state through common memory
AU2014268246A1 (en) Reverting tightly coupled threads in an over-scheduled system
US11231852B2 (en) Efficient sharing of non-volatile memory
EP2945126B1 (en) Graphics processing method and graphics processing apparatus
US8522254B2 (en) Programmable integrated processor blocks
CN106651744B (zh) 一种低功耗gpu染色任务与统一染色阵列任务现场映射结构
JP5923627B2 (ja) 仮想プラットフォーム上でi/oチャネルを調整する方法及び装置
EP3961395A1 (en) Method and apparatus for scheduling memory access request, device and storage medium
CN103080899A (zh) 图形处理器中simd单元的动态启用和禁用
US8959319B2 (en) Executing first instructions for smaller set of SIMD threads diverging upon conditional branch instruction
US20140181467A1 (en) High level software execution mask override
EP3846036B1 (en) Matrix storage method, matrix access method, apparatus and electronic device
US10042659B1 (en) Caching virtual contexts for sharing of physical instances of a hardware resource
US20210089482A1 (en) Processor and interrupt controller therein
US9342704B2 (en) Allocating memory access control policies
CN116661964A (zh) 任务处理方法、装置及电子设备
CN108022201B (zh) 一种三角形图元并行光栅化定序方法
CN107463829A (zh) 一种密码卡中dma请求的处理方法、系统及相关装置
US9519992B2 (en) Apparatus and method for processing image
Huang et al. Transmuting coprocessors: dynamic loading of FPGA coprocessors
CN113378963B (zh) 基于混合框架的不均衡分类方法、系统、设备和存储介质
CN111488216B (zh) 一种数据处理的方法、装置及电子设备
CN109800088B (zh) 基于训练的gpu配置管理方法、装置、存储介质和gpu

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