CN117011444B - 一种gpu分块渲染的性能分析方法及系统 - Google Patents

一种gpu分块渲染的性能分析方法及系统 Download PDF

Info

Publication number
CN117011444B
CN117011444B CN202311284425.5A CN202311284425A CN117011444B CN 117011444 B CN117011444 B CN 117011444B CN 202311284425 A CN202311284425 A CN 202311284425A CN 117011444 B CN117011444 B CN 117011444B
Authority
CN
China
Prior art keywords
data
block
instruction
area
time
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
CN202311284425.5A
Other languages
English (en)
Other versions
CN117011444A (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.)
Xindong Microelectronics Technology Wuhan Co ltd
Original Assignee
Xindong Microelectronics Technology Wuhan 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 Xindong Microelectronics Technology Wuhan Co ltd filed Critical Xindong Microelectronics Technology Wuhan Co ltd
Priority to CN202311284425.5A priority Critical patent/CN117011444B/zh
Publication of CN117011444A publication Critical patent/CN117011444A/zh
Application granted granted Critical
Publication of CN117011444B publication Critical patent/CN117011444B/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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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
    • 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)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

本发明公开一种GPU分块渲染的性能分析方法及系统,方法包括:对GPU性能参数数据进行预处理,以得到tile分配数据、tile任务计数数据、指令数据和时间数据;将tile分配数据与tile任务计数数据显示在绘图区的tile参数区,将指令数据显示在绘图区的指令轴区域,将时间数据显示在绘图区的时间轴区域;通过操作控件区或绘图区来对绘图区显示的tile分配数据、tile任务计数数据、指令数据和时间数据的内容进行控制,以进行性能分析。本发明可以协助GPU架构研发人员以tile为单位开展性能分析工作。

Description

一种GPU分块渲染的性能分析方法及系统
技术领域
本发明属于图形处理器技术领域,更具体地,涉及一种GPU分块渲染的性能分析方法及系统。
背景技术
光栅化是计算机执行3D渲染过程中十分重要的一环。光栅化是指将3维模型(通常是一系列点、线和多边形)基于其在3维空间中与观察者的相对位置,变换到屏幕坐标并确定,以此来确定每个像素的颜色的过程。目前,市面上主流的图形渲染的图形处理单元(Graphics Processing Unit,简写为:GPU)基于其光栅化方式的不同,可以分为分块渲染(Tile Based Rendering,简写为:TBR)和立即渲染(Immediate Mode Rendering,简写为:IMR)两类。分块渲染的光栅化方式,顾名思义,就是将屏幕分成若干较小的块(tile),以块为基本单位执行光栅化,并将渲染结果存入帧缓存(frame buffer)内。而立即渲染则是对整个屏幕进行光栅化。分块渲染由于其处理的基本单元是tile,所以可以将执行单元、片上缓存、各级缓存(cache)都做得相对较小,从而降低芯片的面积和功耗。所以分块渲染GPU通常用于移动端设备。
目前针对分块渲染GPU的性能分析软件主要是以帧或单次基本渲染(draw call)为单位去分析的,对于单个tile在GPU内的生命周期和处理流程并没有过多关注。
鉴于此,如何克服上述现有技术所存在的技术问题是本技术领域亟待解决的难题。
发明内容
本发明的目的之一在于克服上述现有技术中存在的技术问题,提出一种GPU分块渲染的性能分析方法及系统,协助GPU架构研发人员以tile为单位开展性能分析工作。本发明旨在解决GPU架构研发人员缺少有效的针对tile处理过程的性能分析方法的问题。本发明方法所形成的系统是基于Python和Python上一个开源的包PyQtGraph所编写的,系统能够对接GPU性能分析参数,分析并展示tile相关的性能参数,对tile展开性能分析。该方法和系统可以作为开展GPU性能分析的必要的工具,为tile分析和整体性能分析提供有效的支持。
为实现上述目的,按照本发明的第一方面,提供了一种GPU分块渲染的性能分析方法,包括:
对GPU性能参数数据进行预处理,以得到块分配数据、块任务计数数据、指令数据和时间数据;
将块分配数据与块任务计数数据显示在绘图区的块参数区,将指令数据显示在绘图区的指令轴区域,将时间数据显示在绘图区的时间轴区域;
通过操作控件区或绘图区来对绘图区显示的块分配数据、块任务计数数据、指令数据和时间数据的内容进行控制,以进行性能分析;其中,通过对控件区的打开数据选项、选择数据组选项、选择参数选项进行操作来控制绘图区所显示的块分配数据、块任务计数数据、指令数据和时间数据的内容;或通过在绘图区捕捉各类鼠标事件并对其进行响应,来显示块分配数据、块任务计数数据、指令数据和时间数据的不同参数和图形。
进一步的,所述块分配数据包括块被分配到执行单元的数据,所述GPU性能参数数据中包含了块和执行单元的对应关系,通过解析该对应关系,以获取块分配数据。
进一步的,所述块任务计数数据包括块上所执行的任务数量和指令数量的数据,所述GPU性能参数数据中包含了每个块上图元的数量,任务和块的对应关系,以及每个任务中包含的指令类型和数量,通过提取图元的数量和解析任务和块的对应关系,并加以统计,以得到块任务计数数据。
进一步的,所述指令数据包括块在不同时刻所执行的指令情况的数据,所述GPU性能参数数据中包含了指令和块的对应关系,以及每个指令开始执行的时刻数据,通过解析指令和块的对应关系,以及提取指令开始执行的时刻,以获知块在任一时刻正在执行什么指令,也即得到指令数据。
进一步的,所述时间数据包括光栅化过程中阶段分界的数据,所述GPU性能参数数据中包含了块进入不同模块处理的时刻数据,该时刻数据作为块在光栅化过程中各个阶段的分界线,将其提取出来作为时间数据。
进一步的,所述将块分配数据与块任务计数数据显示在绘图区的块参数区具体包括:
将块分配数据和块任务计数数据以热力图的方式显示到绘图区的块参数区;块参数区中的每个色块代表不同的块,通过控件区的选择参数按钮来选择需要显示的具体内容;
选择块分配数据时,色块内的数据代表块对应的执行单元id,颜色用于区分不同的执行单元;
选择块任务计数数据中的图元数据时,色块的数据显示的是块处理的图元数量,颜色表示图元数量大小的相对程度;
选择块任务计数数据中的FOP指令数据时,色块的数据显示的是块执行的FOP指令的数量,颜色表示FOP指令数量大小的相对程度。
进一步的,所述将指令数据显示在绘图区的指令轴区域具体包括:
将指令数据以时间为横轴,不同颜色色块代表不同指令,显示在块参数区下方,即构成了指令轴区域;指令轴区域用于展示指定的块的整个生命周期内所执行的所有指令,以及所有指令的顺序、执行时长、起始时间和依赖关系。
进一步的,所述将时间数据显示在绘图区的时间轴区域具体包括:
时间轴区域用于显示指定的块各个阶段的起始时刻和时长;通过统计所有块的时间数据,以得到任一时刻已完成光栅化的块的数量,将该数量以折线图的方式显示在时间轴区域上,以清晰地展现GPU以块为单位执行光栅化的速率。
进一步的,所述通过对控件区的打开数据选项、选择数据组选项、选择参数选项进行操作来控制绘图区所显示的块分配数据、块任务计数数据、指令数据和时间数据的内容时,其中,打开数据选项支持用户选择所需要分析的数据文件,数据文件内包含多组可分析的数据;选择数据组选项支持用户选择该数据文件内所需要分析的具体的某一组数据;选择参数选项支持用户选择需要分析的具体的块参数;或
所述通过在绘图区捕捉各类鼠标事件并对其进行响应,来显示块分配数据、块任务计数数据、指令数据和时间数据的不同参数和图形时,其中,在块参数区,通过鼠标点击来选中特定的块,选中任一块之后,鼠标所在位置会显示该选中的块的各项参数;在指令轴区域,通过鼠标左键拖拽和鼠标滚轮来调节指令轴上显示的指令队列范围;在时间轴区域,通过鼠标左键点击或拖拽时刻游标来指定时刻。
第二方面,本发明提供一种GPU分块渲染的性能分析系统,应用如第一方面所述的GPU分块渲染的性能分析方法,系统包括:预处理模块、控件区与绘图区,其中:
所述预处理模块用于对GPU性能参数数据进行预处理,以得到块分配数据、块任务计数数据、指令数据和时间数据;
所述绘图区包括块参数区、指令轴区域和时间轴区域,所述块参数区用于显示块分配数据和块任务计数数据,所述指令轴区域用于显示指令数据,所述时间轴区域用于显示时间数据;
所述控件区包括打开数据选项、选择数据组选项、选择参数选项,用于对所述绘图区的显示内容进行控制。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明提出了一种GPU分块渲染的性能分析方法及系统,可以协助GPU架构研发人员以tile(块)为单位开展性能分析工作。本发明能够对接GPU性能分析参数,分析并展示tile相关的性能参数,对tile展开性能分析。本发明的方法和系统可以作为开展GPU性能分析的必要的工具,为tile分析和整体性能分析提供有效的支持。
附图说明
图1为本发明实施例提供的一种GPU分块渲染的性能分析方法流程图;
图2为本发明实施例提供的一种GPU分块渲染的性能分析系统界面示意图;
图3为本发明实施例提供的选中tile后显示的tile参数示意图;
图4为本发明实施例提供的默认时间范围显示的指令队列示意图;
图5为本发明实施例提供的将指令轴放大后显示的指令队列示意图;
图6为本发明实施例提供的为三种tile状态示意图;
图7为本发明实施例提供的在时间轴选定某个时刻的分析界面示意图;
图8为本发明实施例提供的点击打开数据按钮的分析界面示意图;
图9为本发明实施例供的点击选择数据组的分析界面示意图;
图10为本发明实施例提供的点击选择参数的分析界面示意图;
图11为本发明实施例提供的一种GPU分块渲染的性能分析装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明是一种特定功能系统的体系结构,因此在具体实施例中主要说明各结构模组的功能逻辑关系,并不对具体软件和硬件实施方式做限定。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合,各个步骤在符合逻辑、不冲突的情况下也可以调换先后顺序。下面就参考附图和实施例结合来详细说明本发明。
现有技术中,对于单个tile在GPU内的生命周期和处理流程并没有过多关注,这主要是因为tile的处理过程较为复杂,涉及比较多的GPU的管线设计细节。一方面GPU的管线设计细节可能涉及GPU核心架构设计,属于商业秘密,不便于公开,绝大多数GPU和驱动并没有开放以tile为单位的性能参数接口;另一方面,对于渲染软件、游戏引擎等应用开发者来说,tile处理过程过于具体,他们通常只关注整体性能。但是对于分块渲染GPU的架构研发人员而言,tile分析是GPU性能分析必不可少的环节。如此一来,在绝大多数GPU和驱动没有开放以tile为单位的性能参数接口的情况下,分块渲染GPU的架构研发人员急需能够协助自身对tile进行分析的办法。
如图1所示,本发明提供了一种GPU分块渲染的性能分析方法,包括如下步骤。
步骤100:对GPU性能参数数据进行预处理,以得到tile分配数据、tile任务计数数据、指令数据和时间数据。该步骤为预处理步骤,具体的,首先需要载入GPU性能参数数据。GPU的性能参数数据是每一次实例仿真结束后,仿真程序以特定的格式和规则保存下来的数据,包括GPU从系统级到模块级再到指令级的各类时刻、计数数据。本实施例仅需要与tile处理相关的数据,因此载入过程需要对数据进行预处理,将数据处理成tile分配数据、tile任务计数数据、指令数据和时间数据。
步骤200:将tile分配数据与tile任务计数数据显示在绘图区的tile参数区,将指令数据显示在绘图区的指令轴区域,将时间数据显示在绘图区的时间轴区域。本实施例可以通过软件界面来显示绘图区,且将绘图区划分为tile参数区、指令轴区域、时间轴区域,在预处理完成后,tile参数区用于显示tile分配数据与tile任务计数数据,指令轴区域用于显示指令数据,时间轴区域用于显示时间数据。
步骤300:通过操作控件区或绘图区来对绘图区显示的tile分配数据、tile任务计数数据、指令数据和时间数据的内容进行控制,以进行性能分析。本实施例的软件界面除了绘图区,还可以设置控件区,通过控件区的相应操作按钮,可以对各项参数数据的内容进行选择来显示在绘图区,以便于架构研发人员进行以tile为单位的性能分析;除此之外,也可以直接在绘图区通过响应鼠标的相应动作来显示各项参数数据的内容,以便于架构研发人员进行以tile为单位的性能分析。
通过上述步骤,本实施例可以协助GPU架构研发人员以tile为单位开展性能分析工作。
在一些实施方式中,所述tile分配数据包括tile被分配到执行单元的数据,所述GPU性能参数数据中包含了tile和执行单元的对应关系,通过解析该对应关系,以获取tile分配数据。具体的,执行单元是指GPU的指令执行模块,类似于一个小型处理器,用于执行所有编译器汇编后的指令。在分块渲染GPU中,光栅化是以tile为单位去处理和执行的。对于有多个执行单元的GPU来说,在光栅化之前,首先要对tile进行分配,将tile分配到不同的执行单元去并行执行。GPU的性能参数数据中包含了tile和执行单元的对应关系。通过解析该对应关系,软件就可以获取tile分配数据。
在一些实施方式中,所述tile任务计数数据包括tile上所执行的任务数量和指令数量的数据,所述GPU性能参数数据中包含了每个tile上图元的数量,任务和tile的对应关系,以及每个任务中包含的指令类型和数量,通过提取图元的数量和解析任务和tile的对应关系,并加以统计,以得到tile任务计数数据。具体的,任务数量是以应用层角度来统计的图元绘制数量,即当前tile需要处理多少个图元(基本图形元素,在GPU中通常指点、线和三角形)的光栅化任务。指令数量是指当前tile分别执行了多少次不同的指令。GPU性能参数数据记录了每个tile上图元的数量,以及所有指令和tile的对应关系。通过提取图元的数量和解析指令与tile的对应关系,并加以统计,就可以得到tile任务计数数据。
在一些实施方式中,所述将tile分配数据与tile任务计数数据显示在绘图区的tile参数区具体包括:将tile分配数据和tile任务计数数据以热力图的方式显示到绘图区的tile参数区;tile参数区中的每个色块代表不同的tile,用户可以通过控件区的选择参数按钮来选择需要显示的具体内容;用户选择tile分配数据时,色块内的数据代表tile对应的执行单元id,颜色用于区分不同的执行单元;用户选择tile任务计数数据中的图元数据时,色块的数据显示的是tile处理的图元数量,颜色表示图元数量大小的相对程度,例如越接近第一颜色表示数量相对越少,约接近第二颜色表示数量相对越多,越接近第三颜色表示数量相对中等,实际应用时可根据需求自行选择第一颜色、第二颜色、第三颜色的具体颜色;选择tile任务计数数据中的FOP指令数据时,色块的数据显示的是tile执行的FOP指令(浮点计算指令)的数量,颜色表示FOP指令数量大小的相对程度。需说明,这里是以FOP指令为例,展示该工具在显示某类指令时的界面,还有其它的指令,涉及到具体的指令集信息,在此就不一一列举;浮点计算指令是一种常见的计算机指令,主要用于处理浮点数(一种计算机上处理实数的数据格式)的乘法和加(减)法计算。本实施例中,图元指绘制的多边形;任务指在GPU上执行的一组指令包。
在一些实施方式中,所述指令数据包括tile在不同时刻所执行的指令情况的数据,所述GPU性能参数数据中包含了指令和tile的对应关系,以及每个指令开始执行的时刻数据,通过解析指令和tile的对应关系,以及提取指令开始执行的时刻,以获知tile在任一时刻正在执行什么指令,也即得到指令数据。
在一些实施方式中,所述将指令数据显示在绘图区的指令轴区域具体包括:将指令数据以时间为横轴,不同颜色色块代表不同指令,显示在tile参数区下方,即构成了指令轴区域;指令轴区域可以清晰的展示某个指定的tile的整个生命周期内所执行的所有指令,以及所有指令的顺序、执行时长、起始时间和依赖关系。
在一些实施方式中,所述时间数据包括与渲染管线阶段相关的数据,也即光栅化过程中阶段分界的数据,所述GPU性能参数数据中包含了tile进入不同模块处理的时刻数据,该时刻数据作为tile在光栅化过程中各个阶段的分界线,将其提取出来作为时间数据。
在一些实施方式中,所述将时间数据显示在绘图区的时间轴区域具体包括:时间轴区域用于显示指定的tile各个阶段的起始时刻和时长;用不同颜色色块来表示tile光栅化过程中不同的阶段,并且按照时间数据给出的各个阶段的起始时刻显示在时间轴上,即得到了时间轴区域。通过统计所有tile的时间数据,以得到任一时刻已完成光栅化的tile的数量,将该数量以折线图的方式显示在时间轴区域上,以清晰地展现GPU以tile为单位执行光栅化的速率。
在一些实施方式中,所述通过操作控件区或绘图区来对绘图区显示的tile分配数据、tile任务计数数据、指令数据和时间数据的内容进行控制,以进行性能分析具体包括:通过对控件区的打开数据选项、选择数据组选项、选择参数选项进行操作来控制绘图区所显示的tile分配数据、tile任务计数数据、指令数据和时间数据的内容;打开数据选项支持用户选择所需要分析的数据文件,数据文件内包含多组可分析的数据;选择数据组选项支持用户选择该数据文件内所需要分析的具体的某一组数据;选择参数选项支持用户选择需要分析的具体的tile参数,即tile分配数据、图元数据、指令数据;或通过在绘图区捕捉各类鼠标事件并对其进行响应,来显示tile分配数据、tile任务计数数据、指令数据和时间数据的不同参数和图形;在tile参数区,通过鼠标点击来选中特定的tile,选中任一tile之后,鼠标所在位置会显示该选中的tile的各项参数;在指令轴区域,通过鼠标左键拖拽和鼠标滚轮来调节指令轴上显示的指令队列范围;在时间轴区域,通过鼠标左键点击或拖拽时刻游标来指定时刻,此时,tile参数区的tile状态会根据指定的时刻区分为3种状态:未处理、处理中、处理完成。
如图6所示,未处理和处理中这两种状态分别通过透明和加粗边框的方式来做区分。需要说明的是,本实施例中这些参数的计算和显示也是性能分析的一部分,能够通过tile的角度定位GPU在渲染过程中的瓶颈。例如,通过分析tile的指令数量,可以确定tile的指令是否均匀,是否有部分tile指令较多,再通过指令轴区域进一步分析指令多的tile内,指令的执行情况,是否存在某一条指令执行时间过久的问题。
综上所述,本发明提出了一种GPU分块渲染的性能分析方法,可以协助GPU架构研发人员以tile为单位开展性能分析工作。本发明能够对接GPU性能分析参数,分析并展示tile相关的性能参数,对tile展开性能分析。本发明的方法可以作为开展GPU性能分析的必要的工具,为tile分析和整体性能分析提供有效的支持。
本发明实施例还提供一种GPU分块渲染的性能分析系统,应用如上述实施例所述的GPU分块渲染的性能分析方法,系统包括预处理模块、控件区与绘图区,其中:所述预处理模块用于对GPU性能参数数据进行预处理,以得到tile分配数据、tile任务计数数据、指令数据和时间数据。控件区与绘图区形成系统(或相应软件)的应用界面,如图2所示,所述绘图区包括tile参数区、指令轴区域和时间轴区域,所述tile参数区用于显示tile分配数据和tile任务计数数据,所述指令轴区域用于显示指令数据,所述时间轴区域用于显示时间数据;所述控件区包括打开数据选项、选择数据组选项、选择参数选项,用于对所述绘图区的显示内容进行控制。打开数据选项支持用户选择所需要分析的数据文件;数据文件内包含多组可分析的数据,选择数据组选项支持用户选择该数据文件内所需要分析的具体的某一组数据;选择参数选项支持用户选择需要分析的具体的tile参数,即tile分配数据、图元数据、指令数据。
在本实施例中,控件区提供了一系列基于Qt的控件,用于对绘图区的显示内容进行控制。控件区总共包含一个按钮,两个组合选择框,一个选择列表和一组滑块组合控件。如图8所示,点击“打开数据”按钮会弹出文件管理窗口,用于交互式选取分析数据文件;两个组合选择框能够选择需要分析的具体数据组和绘图区显示的tile参数。如图9所示,点击“选择数据组”组合选择框,会弹出当前数据文件内所有的数据组。用户可以选取特定的数据组用于分析。如图10所示,点击“选择参数”组合选择框,会弹出tile相关数据,包括前文所述的分配数据,图元数据和指令数据。用户在选取特定的数据类型后,tile参数区会绘制和显示相应的数据分布图;选择列表给出了渲染管线的四个阶段:“phase0”,“phase1”,“phase2”和“phase3”。用户能够通过鼠标点击来选择当前分析的渲染管线阶段。tile参数区的tile状态会根据时间轴区域指定的时刻,以及当前选中的渲染管线阶段,区分为3种阶段状态:未进入该阶段处理、该阶段处理中、完成该阶段处理。如图6所示,未处理和处理中这两种状态分别通过透明和加粗边框的方式来做区分。滑块组合控件能够调节背景渲染图片的透明度。
本实施例的系统除了通过控件区对绘图内容进行控制之外,还可以通过在绘图区上进行鼠标点击等操作,显示特定的图像和参数。在绘图区域捕捉和响应鼠标事件正是PyQtGraph所提供的特性。该系统利用了这一特性对不同区域的鼠标事件编写了不同的响应函数,以达到显示特定参数、数据、图形的目的。例如,在tile参数区,通过点击某个tile可以查看该tile的各项参数以及其各个处理阶段在时间轴上的分布;在时间轴区域通过点击、拖拽时间轴游标,可以显示游标对应时刻tile所处的状态。
如图3所示,在tile参数区,可以通过鼠标点击来选中特定的tile。选中任一tile之后,鼠标所在位置会显示该选中的tile的各项参数。包括该tile在图像上的x、y坐标,tile对应的id,以及tile执行光栅化消耗的总cycle数,例如图中选中“95”这个tile后,显示出tile_x:10、tile_y:6、tile_id:0xa、cycle:95303。同时,指令轴和时间轴上会显示该选中的tile所执行的指令队列和各个渲染阶段在时间轴上的分布。
如图4所示,在指令轴区域,用户可以通过鼠标左键拖拽和鼠标滚轮来调节指令轴上显示的指令队列范围。默认的指令轴时间范围是从tile执行第一条指令开始到tile执行完最后一条指令。但是,一个tile内执行的指令通常有上千甚至上万条,在默认时间范围下,无法显示指令执行的细节。所以需要交互式的方案去显示更多范围和细节。
如图5所示,指令轴区域会捕捉鼠标左键拖拽事件和鼠标滚轮事件。通过滚动鼠标滚轮,用户可以缩放指令轴显示的时间范围;通过鼠标左键拖拽,用户可以拖拽指令队列,显示用户想要观察的时间窗口。放大后显示的指令队列示例图如图5所示,示例的这一段指令,由INT、FOP、BIT指令组成,其中,INT指令用于处理INT(整数)类型的计算;FOP指令用于处理FOP(浮点数)类型的计算;BIT指令用于处理BIT(比特)类型的计算。
如图6所示,在时间轴区域,用户可以通过鼠标左键点击或拖拽时刻游标来指定时刻。此时,tile参数区的tile状态会根据指定的时刻区分为3种状态:未处理、处理中、处理完成。如图6所示,未处理和处理中这两种状态分别通过透明和加粗边框的方式来做区分,如左边0.1的tile为透明,也即未处理;中间0.8的tile为加粗边框,也即处理中;右边0.23的tile为处理完成。
如图7所示,用户在时间轴区域将时刻游标(图中时间轴左侧的竖线)设置在图中所示的位置。此时,整个渲染区域上半部分已经渲染完毕,开始逐渐渲染下半部分区域。下半区域的一部分tile由于正处在光栅化的处理过程中,因此显示为边框加粗的样式。而用户选中的坐标为x=12,y=12,id为0x7的tile,还并未进入光栅化阶段,因此显示为白色透明。用户可以通过拖拽时刻游标(图中竖线)来观察GPU以tile为单位进行光栅化的速率和tile的先后顺序,以及某个特定tile与其它tile执行光栅化过程的对比。
综上所述,本发明提出了一种GPU分块渲染的性能分析系统,可以协助GPU架构研发人员以tile为单位开展性能分析工作。本发明能够对接GPU性能分析参数,分析并展示tile相关的性能参数,对tile展开性能分析。本发明的系统可以作为开展GPU性能分析的必要的工具,为tile分析和整体性能分析提供有效的支持。
在上述实施例提供的GPU分块渲染的性能分析方法的基础上,本发明还提供了一种可用于实现上述方法的GPU分块渲染的性能分析装置,如图11所示,是本发明实施例的装置架构示意图。本实施例的GPU分块渲染的性能分析装置包括一个或多个处理器21以及存储器22。其中,图11中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图11中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如上述实施例中的GPU分块渲染的性能分析方法。处理器21通过运行存储在存储器22中的非易失性软件程序、指令以及模块,从而执行GPU分块渲染的性能分析装置的各种功能应用以及数据处理,即实现本发明实施例的GPU分块渲染的性能分析方法。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
程序指令/模块存储在存储器22中,当被一个或者多个处理器21执行时,执行上述实施例中的GPU分块渲染的性能分析方法,例如,执行以上描述的图1所示的各个步骤。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:只读存储器(Read Only Memory,简写为:ROM)、随机存取存储器(Random AccessMemory,简写为:RAM)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (8)

1.一种GPU分块渲染的性能分析方法,其特征在于,包括:
对GPU性能参数数据进行预处理,以得到块分配数据、块任务计数数据、指令数据和时间数据;其中,所述块分配数据包括块被分配到执行单元的数据;所述块任务计数数据包括块上所执行的任务数量和指令数量的数据;所述指令数据包括块在不同时刻所执行的指令情况的数据;所述时间数据包括光栅化过程中阶段分界的数据;
将块分配数据与块任务计数数据显示在绘图区的块参数区,将指令数据显示在绘图区的指令轴区域,将时间数据显示在绘图区的时间轴区域;其中,将块分配数据和块任务计数数据以热力图的方式显示到绘图区的块参数区;块参数区中的每个色块代表不同的块,通过控件区的选择参数按钮来选择需要显示的具体内容;将指令数据以时间为横轴,不同颜色色块代表不同指令,显示在块参数区下方,即构成了指令轴区域;指令轴区域用于展示指定的块的整个生命周期内所执行的所有指令,以及所有指令的顺序、执行时长、起始时间和依赖关系;时间轴区域用于显示指定的块各个阶段的起始时刻和时长;通过统计所有块的时间数据,以得到任一时刻已完成光栅化的块的数量,将该数量以折线图的方式显示在时间轴区域上,以清晰地展现GPU以块为单位执行光栅化的速率;
通过操作控件区或绘图区来对绘图区显示的块分配数据、块任务计数数据、指令数据和时间数据的内容进行控制,以进行性能分析;其中,通过对控件区的打开数据选项、选择数据组选项、选择参数选项进行操作来控制绘图区所显示的块分配数据、块任务计数数据、指令数据和时间数据的内容;或通过在绘图区捕捉各类鼠标事件并对其进行响应,来显示块分配数据、块任务计数数据、指令数据和时间数据的不同参数和图形。
2.根据权利要求1所述的GPU分块渲染的性能分析方法,其特征在于,所述GPU性能参数数据中包含了块和执行单元的对应关系,通过解析该对应关系,以获取块分配数据。
3.根据权利要求2所述的GPU分块渲染的性能分析方法,其特征在于,所述GPU性能参数数据中包含了每个块上图元的数量,任务和块的对应关系,以及每个任务中包含的指令类型和数量,通过提取图元的数量和解析任务和块的对应关系,并加以统计,以得到块任务计数数据。
4.根据权利要求1所述的GPU分块渲染的性能分析方法,其特征在于,所述GPU性能参数数据中包含了指令和块的对应关系,以及每个指令开始执行的时刻数据,通过解析指令和块的对应关系,以及提取指令开始执行的时刻,以获知块在任一时刻正在执行的指令,得到指令数据。
5.根据权利要求1所述的GPU分块渲染的性能分析方法,其特征在于,所述GPU性能参数数据中包含了块进入不同模块处理的时刻数据,该时刻数据作为块在光栅化过程中各个阶段的分界线,将其提取出来作为时间数据。
6.根据权利要求3所述的GPU分块渲染的性能分析方法,其特征在于,所述将块分配数据与块任务计数数据显示在绘图区的块参数区包括:
选择块分配数据时,色块内的数据代表块对应的执行单元id,颜色用于区分不同的执行单元;
选择块任务计数数据中的图元数据时,色块的数据显示的是块处理的图元数量,颜色表示图元数量大小的相对程度;
选择块任务计数数据中的FOP指令数据时,色块的数据显示的是块执行的FOP指令的数量,颜色表示FOP指令数量大小的相对程度。
7.根据权利要求1至6中任一项所述的GPU分块渲染的性能分析方法,其特征在于,所述通过对控件区的打开数据选项、选择数据组选项、选择参数选项进行操作来控制绘图区所显示的块分配数据、块任务计数数据、指令数据和时间数据的内容时,其中,打开数据选项支持用户选择所需要分析的数据文件,数据文件内包含多组可分析的数据;选择数据组选项支持用户选择该数据文件内所需要分析的具体的某一组数据;选择参数选项支持用户选择需要分析的具体的块参数;或
所述通过在绘图区捕捉各类鼠标事件并对其进行响应,来显示块分配数据、块任务计数数据、指令数据和时间数据的不同参数和图形时,其中,在块参数区,通过鼠标点击来选中特定的块,选中任一块之后,鼠标所在位置会显示该选中的块的各项参数;在指令轴区域,通过鼠标左键拖拽和鼠标滚轮来调节指令轴上显示的指令队列范围;在时间轴区域,通过鼠标左键点击或拖拽时刻游标来指定时刻。
8.一种GPU分块渲染的性能分析系统,应用如权利要求1-7任一所述的GPU分块渲染的性能分析方法,其特征在于,包括预处理模块、控件区与绘图区,其中:
所述预处理模块用于对GPU性能参数数据进行预处理,以得到块分配数据、块任务计数数据、指令数据和时间数据;
所述绘图区包括块参数区、指令轴区域和时间轴区域,所述块参数区用于显示块分配数据和块任务计数数据,所述指令轴区域用于显示指令数据,所述时间轴区域用于显示时间数据;
所述控件区包括打开数据选项、选择数据组选项、选择参数选项,用于对所述绘图区的显示内容进行控制。
CN202311284425.5A 2023-10-07 2023-10-07 一种gpu分块渲染的性能分析方法及系统 Active CN117011444B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311284425.5A CN117011444B (zh) 2023-10-07 2023-10-07 一种gpu分块渲染的性能分析方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311284425.5A CN117011444B (zh) 2023-10-07 2023-10-07 一种gpu分块渲染的性能分析方法及系统

Publications (2)

Publication Number Publication Date
CN117011444A CN117011444A (zh) 2023-11-07
CN117011444B true CN117011444B (zh) 2024-01-02

Family

ID=88569478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311284425.5A Active CN117011444B (zh) 2023-10-07 2023-10-07 一种gpu分块渲染的性能分析方法及系统

Country Status (1)

Country Link
CN (1) CN117011444B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102449665A (zh) * 2009-06-02 2012-05-09 高通股份有限公司 显示经渲染的图形元素的性能度量的视觉表示
CN103123660A (zh) * 2012-12-31 2013-05-29 清华大学 一种对软硬件系统cad图形化建模的方法
CN103995684A (zh) * 2014-05-07 2014-08-20 广东粤铁瀚阳科技有限公司 超高分辨率平台下的海量影像并行处理显示方法及系统
CN108021487A (zh) * 2017-11-24 2018-05-11 中国航空工业集团公司西安航空计算技术研究所 一种gpu图形处理性能监测与分析方法
CN112102143A (zh) * 2020-09-11 2020-12-18 山东超越数控电子股份有限公司 一种基于国产平台的图形加速优化方法
CN115908102A (zh) * 2022-08-23 2023-04-04 芯动微电子科技(珠海)有限公司 图形处理方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10642793B2 (en) * 2015-02-02 2020-05-05 Sqream Technologies Ltd Method and system for compressing genome sequences using graphic processing units

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102449665A (zh) * 2009-06-02 2012-05-09 高通股份有限公司 显示经渲染的图形元素的性能度量的视觉表示
CN103123660A (zh) * 2012-12-31 2013-05-29 清华大学 一种对软硬件系统cad图形化建模的方法
CN103995684A (zh) * 2014-05-07 2014-08-20 广东粤铁瀚阳科技有限公司 超高分辨率平台下的海量影像并行处理显示方法及系统
CN108021487A (zh) * 2017-11-24 2018-05-11 中国航空工业集团公司西安航空计算技术研究所 一种gpu图形处理性能监测与分析方法
CN112102143A (zh) * 2020-09-11 2020-12-18 山东超越数控电子股份有限公司 一种基于国产平台的图形加速优化方法
CN115908102A (zh) * 2022-08-23 2023-04-04 芯动微电子科技(珠海)有限公司 图形处理方法及系统

Also Published As

Publication number Publication date
CN117011444A (zh) 2023-11-07

Similar Documents

Publication Publication Date Title
KR101286318B1 (ko) 렌더링된 그래픽 엘리먼트들을 위한 성능 메트릭들의 시각적 표현의 디스플레이
US10437541B2 (en) Graphics engine and environment for efficient real time rendering of graphics that are not pre-known
US4928247A (en) Method and apparatus for the continuous and asynchronous traversal and processing of graphics data structures
US7950003B1 (en) Heads-up-display software development tool for analyzing and optimizing computer software
US10896112B2 (en) Visualization tool for parallel dependency graph evaluation
CN101802874B (zh) 图形处理单元中的片段着色器旁路及其设备和方法
US5097411A (en) Graphics workstation for creating graphics data structure which are stored retrieved and displayed by a graphics subsystem for competing programs
KR100909153B1 (ko) 그래픽 파이프라인 서브유닛을 디버깅하기 위한 방법 및시스템
CN103810669B (zh) 在统一l2高速缓存中高速缓存经适应性定制大小的高速缓存像素块
CN104050706B (zh) 用于低功率图形渲染的像素着色器旁路
US5251322A (en) Method of operating a computer graphics system including asynchronously traversing its nodes
Zhou et al. RenderAnts: interactive Reyes rendering on GPUs
US20100020069A1 (en) Partitioning-based performance analysis for graphics imaging
WO2017003697A1 (en) Rendering graphics data on demand
CN103871019B (zh) 用于处理路径图像以促进光栅化的方法和设备
CN107038742A (zh) 屏幕空间管线中的多通道渲染
US20100020098A1 (en) Mapping graphics instructions to associated graphics data during performance analysis
KR102480787B1 (ko) 순서에 관계 없는 캐시 리턴
WO1989001664A1 (en) High performance graphics workstation
CN115699072A (zh) 用于工作负载处理的任务图调度
US9013494B2 (en) Heads-up-display software development tool
CN117011444B (zh) 一种gpu分块渲染的性能分析方法及系统
CN117237502A (zh) 一种三维渲染方法、装置、设备及介质
JP5242788B2 (ja) グラフィックス・イメージングのためのパーティション・ベースのパフォーマンス解析
JP5864474B2 (ja) 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法

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