首页> 中国专利> 用于图形处理器芯片的可视化分析方法和可视化分析装置

用于图形处理器芯片的可视化分析方法和可视化分析装置

摘要

一种用于图形处理器芯片的可视化分析方法和可视化分析装置。该用于图形处理器芯片的可视化分析方法包括:获取图形处理器芯片的缓存存储的任务调度器中的事件记录数据;根据编码协议对事件记录数据进行解析以获得事件数据库;将事件数据库中的多个数据项进行分类后基于时间轴以时间图谱的形式进行显示。本公开的实施例提供的可视化分析方法可以将图形处理器芯片所涉及的底层运行情况以时间图谱的形式呈现给开发者,从而使得开发者可以调整图形处理器芯片的设计,从而可以更充分地利用图形处理器芯片的硬件资源。

著录项

  • 公开/公告号CN112445855A

    专利类型发明专利

  • 公开/公告日2021-03-05

    原文格式PDF

  • 申请/专利权人 海光信息技术股份有限公司;

    申请/专利号CN202011282862.X

  • 发明设计人 崔恒冠;

    申请日2020-11-17

  • 分类号G06F16/26(20190101);G06F16/28(20190101);G06T1/20(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人彭久云

  • 地址 300392 天津市华苑产业区海泰西路18号北2-204工业孵化-3-8

  • 入库时间 2023-06-19 10:06:57

说明书

技术领域

本公开的实施例涉及一种用于图形处理器芯片的可视化分析方法、图形处理器芯片的设计方法、用于图形处理器芯片的可视化分析装置、用于图形处理器芯片的设计装置、可视化分析与设计设备以及存储介质。

背景技术

通用图形处理器芯片具有强大的并行计算能力、高吞吐量和优秀的能效比等优点,从而使得它成为了目前构建高性能平台的首选计算加速部件。在相同的体系结构下,通用图形处理器芯片在高性能计算领域的应用性能,主要受编程模型,访存效率和计算任务并行度的影响。使用通用图形处理器芯片加速的软件程序,其性能高度依赖通用图形处理器芯片的硬件资源的使用情况。

发明内容

本公开至少一实施例提供一种用于图形处理器芯片的可视化分析方法,包括:获取所述图形处理器芯片的缓存存储的任务调度器中的事件记录数据;根据编码协议对所述事件记录数据进行解析以获得事件数据库;将所述事件数据库中的多个数据项进行分类后基于时间轴以时间图谱的形式进行显示。

例如,在本公开至少一实施例提供的可视化分析方法中,获取所述图形处理器芯片中的缓存存储的任务调度器中的事件记录数据,包括:使得所述图形处理器芯片对应的函数程序在所述图形处理器芯片中运行;以及在所述函数程序运行结束后,读取所述缓存存储的所述任务调度器中的所述事件记录数据。

例如,在本公开至少一实施例提供的可视化分析方法中,获取所述图形处理器芯片中的缓存存储的任务调度器中的事件记录数据,包括:使得所述图形处理器芯片对应的函数程序在所述图形处理器芯片中运行;以及在所述函数程序运行的过程中,读取所述缓存存储的所述任务调度器中的所述事件记录数据。

例如,在本公开至少一实施例提供的可视化分析方法中,获取所述图形处理器芯片中的缓存存储的任务调度器中的事件记录数据,包括:使得所述图形处理器芯片对应的函数程序在所述图形处理器芯片对应的仿真设计中运行;以及在所述函数程序运行结束后,在所述图形处理器芯片对应的仿真设计中获取所述事件记录数据。

例如,在本公开至少一实施例提供的可视化分析方法中,所述函数程序包括进行矩阵运算的函数程序。

例如,在本公开至少一实施例提供的可视化分析方法中,所述事件数据库中的所述多个数据项包括多条指令信息,每一条指令信息包括时间戳和对应的芯片模块。

例如,在本公开至少一实施例提供的可视化分析方法中,将所述事件数据库中的多个数据项进行分类后基于时间轴以时间图谱的形式进行显示,包括:将所述多条指令信息按照指令类型进行分类,并且按照分类的结果将所述多条指令信息基于第一时间轴以时间图谱的形式显示在不同的行。

例如,在本公开至少一实施例提供的可视化分析方法中,将所述事件数据库中的多个数据项进行分类后基于时间轴以时间图谱的形式进行显示,包括:将所述多条指令信息按照对应的芯片模块进行分类,并且按照分类的结果将所述多条指令信息基于第一时间轴以时间图谱的形式显示在不同的行。

例如,在本公开至少一实施例提供的可视化分析方法中,所述多个数据项还包括寄存器信息和硬件调度信息。

例如,本公开至少一实施例提供的可视化分析方法还包括:获取所述图形处理器芯片对应的所述函数程序运行时的应用程序编程接口调用信息,所述应用程序编程接口调用信息包括时间戳;以及将所述应用程序编程接口调用信息基于不同于所述第一时间轴的第二时间轴以时间图谱的形式进行显示。

例如,本公开至少一实施例提供的可视化分析方法还包括:将基于所述第二时间轴显示的所述应用程序编程接口调用信息按照时间戳映射至所述第一时间轴中,以使得基于所述第一时间轴显示的所述多条指令信息中标注有所述应用程序编程接口调用信息。

本公开至少一实施例还提供一种图形处理器芯片的设计方法,包括:根据本公开的实施例提供的任一可视化分析方法对所述图形处理器芯片进行可视化分析,以获得以时间图谱的形式进行显示的可视化结果;以及根据可视化结果对所述图形处理器芯片的设计进行调整。

例如,在本公开至少一实施例提供的设计方法中,所述可视化结果包括所述图形处理器芯片包括的多个芯片模块对应的指令信息的执行密集程度;其中,根据可视化结果对所述图形处理器芯片的设计进行调整,包括:根据所述可视化结果对所述图形处理器芯片的多个芯片模块的设计进行调整。

例如,在本公开至少一实施例提供的设计方法中,可视化结果包括所述图形处理器芯片对应的函数程序运行时的指令信息的执行情况;其中,根据分析结果对所述图形处理器芯片的设计进行调整,包括:根据可视化结果对所述函数程序中的参数进行调整。

本公开至少一实施例还提供一种用于图形处理器芯片的可视化分析装置,包括:获取模块,被配置为获取所述图形处理器芯片的缓存存储的任务调度器中的事件记录数据;解析模块,被配置为根据编码协议对所述事件记录数据进行解析以获得事件数据库;以及分类显示模块,被配置为将所述事件数据库中的多个数据项进行分类后基于时间轴以时间图谱的形式进行显示。

本公开至少一实施例还提供一种用于图形处理器芯片的设计装置,包括:可视化分析模块,被配置为根据权利要求1-11任一所述的可视化分析方法对所述图形处理器芯片进行可视化分析,以获得以时间图谱的形式进行显示的可视化结果;以及调整模块,被配置为根据可视化结果对所述图形处理器芯片的设计进行调整。

本公开至少一实施例还提供一种可视化分析与设计设备,包括:处理器;

存储器,包括一个或多个计算机程序模块;其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现本公开的实施例提供的任一方法。

本公开至少一实施例还提供一种存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现本公开的实施例提供的任一方法。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。

图1为一种用于图形处理器芯片的开发者工具的示意框图;

图2为本公开的至少一实施例提供的一种用于图形处理器芯片的可视化分析方法10的示意图;

图3为一种图形处理器芯片的架构图;

图4为一种将多条指令信息以时间图谱的形式进行显示的示意图;

图5为另一种将多条指令信息以时间图谱的形式进行显示的示意图;

图6为本公开的至少一实施例提供的另一种用于图形处理器芯片的可视化分析方法10的示意图;

图7为将指令信息以及应用程序编程接口调用信息以时间图谱的形式进行显示的示意图;

图8为本公开的至少一实施例提供的一种图形处理器芯片的设计方法20的示意图;

图9为本公开的至少一实施例提供的一种用于图形处理器芯片的可视化分析装置100的示意框图;

图10为本公开的至少一实施例提供的一种用于图形处理器芯片的设计装置200的示意框图;

图11为本公开的至少一实施例提供的一种可视化分析与设计设备400的示意框图;

图12为本公开的至少一实施例提供的一种可视化分析与设计设备800的示意框图;以及

图13为本公开的至少一实施例提供的一种存储介质的示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。

为了最大化利用通用图形处理器芯片(GPGPU,General-Purpose computing onGraphics Processing Unit)的硬件资源,主流的通用图形处理器芯片的生产厂商都会提供开发者工具帮助用户更好的了解程序在硬件上的运行情况,从而找到解决方案。例如,图1示出了一种开发者工具的示意框图。

如图1所示,该开发者工具包括工具栏、信息显示区域1、信息显示区域2、信息显示区域3、信息显示区域4、信息显示区域5等。例如,工具栏可以显示一些常用的开发工具以供开发者使用;信息显示区域1显示详细的硬件资源的使用情况统计信息;信息显示区域2显示GPGPU中的计算单元和内存单元的使用情况的统计信息;信息显示区域3显示计算任务量的统计信息;信息显示区域4显示核函数程序(Kernel)的运行情况的统计信息,该核函数程序例如可以运行在GPGPU中;信息显示区域5显示芯片资源的占用比分析,例如将理论值与实际值进行比较。

需要说明的是,图1所示的开发者工具仅是一种示例,相同的通用图形处理器芯片也可以使用不同的开发者工具;另外,不同生产厂商采用的开发者工具可以相同,也可以不同。

开发者工具一般可以分为两大功能部分:系统分析工具和内核分析工具。系统分析工具在分析Kernel代码之前,可以帮助开发者发现一些基本的性能限制因素,例如不必要的GPU-CPU同步(这里GPU指图形处理器芯片,CPU指中央处理器芯片,下文中的描述与此相同,不再赘述)、CPU绑定或者糟糕的CPU端作业调度算法。在优化Kernel方面,常用的内核分析工具提供的功能包括对GPGPU硬件资源的监控数据的收集,内存使用情况的统计显示,以及Kernel调试功能等。

随着通用图形处理器芯片的广泛应用,开发者对芯片的低层级的模块工作情况也越来越关心。目前主流的开发者工具并不支持将GPGPU运行时芯片内各种指令的执行信息基于时间轴可视化为时间图谱的形式供开发者使用。

本公开的至少一实施例提供一种用于图形处理器芯片的可视化分析方法,该可视化分析方法包括:获取图形处理器芯片的缓存存储的任务调度器中的事件记录数据;根据编码协议对事件记录数据进行解析以获得事件数据库;以及将事件数据库中的多个数据项进行分类后基于时间轴以时间图谱的形式进行显示。

本公开的实施例还提供一种对应于上述可视化分析方法的图形处理器芯片的设计方法、用于图形处理器芯片的可视化分析装置、用于图形处理器芯片的设计装置、可视化分析与设计设备以及存储介质。

本公开的实施例提供的用于图形处理器芯片的可视化分析方法可以将图形处理器芯片所涉及的底层运行情况基于时间轴以时间图谱的形式呈现给开发者,从而为芯片架构的设计人员或者Kernel开发者提供更加直观的信息,开发者可以根据这些信息进一步调整芯片架构设计或者进一步优化Kernel代码,从而可以更充分地利用图形处理器芯片的硬件资源。

需要说明的是,本公开的实施例中所述的图形处理器芯片除了包括上述通用图形处理器芯片(GPGPU)外,还可以包括为了一定的应用场景而特别设计的专用图形处理器芯片,本公开的实施例对此不作限定。

本公开的至少一实施例提供一种用于图形处理器芯片的可视化分析方法10,例如,该可视化分析方法可以应用在开发者工具中的内核分析工具中。如图2所示,该可视化分析方法10包括以下操作步骤。

步骤S101:获取图形处理器芯片的缓存存储的任务调度器中的事件记录数据。

步骤S102:根据编码协议对事件记录数据进行解析以获得事件数据库。

步骤S103:将事件数据库中的多个数据项进行分类后基于时间轴以时间图谱的形式进行显示。

例如,在上述实施例中,图形处理器芯片可以为通用图形处理器芯片(GPGPU)。例如,图3示出了一种图形处理器芯片的架构图。如图3所示,该图形处理器芯片包括流处理器、任务分发器和帧缓存,该流处理器包括通用向量寄存器、局部数据存储单元、任务调度器以及多个并行计算模块。例如,为了使得该图形处理器芯片可以使用在一定的应用场景下,即可以完成一定的功能,则需要编写对应该应用场景功能的核函数程序(Kernel),并使得该Kernel运行在该图形处理器芯片中从而完成对应的功能。

当该图形处理器芯片运行对应的Kernel时,就会在任务调度器中产生多个事件记录数据,该事件记录数据一般也称作线程追踪数据(Thread Trace Data),该多个事件记录数据是Kernel运行产生的原始数据。例如,任务调度器中的事件记录数据产生后可以存储在帧缓存中,在步骤S101中,即获取该帧缓存存储的任务调度器中的事件记录数据。需要说明的是,在本实施例以及以下各实施例中是以缓存为帧缓存为例进行描述的,但是本公开的实施例包括但不限于此,在不同的图形处理器芯片中,该缓存还可以是其它单元,只要该缓存中存储任务调度器中的时间记录数据即可。

例如,在一个实施例中,上述步骤S101包括:使得图形处理器芯片对应的函数程序在图形处理器芯片中运行;以及在函数程序运行结束后,读取缓存存储的任务调度器中的事件记录数据。例如,可以使得图形处理器芯片对应的核函数程序(Kernel)在图形处理器芯片中完整的运行一次,然后在该Kernel运行结束后,从帧缓存中读取任务调度器中的事件记录数据。需要说明的是,在本实施例以及以下各实施例中是以函数程序为核函数程序为例进行描述的,但是本公开的实施例包括但不限于此,函数程序还可以是图形处理器芯片可以执行的任何函数程序。

又例如,在另一个实施例中,上述步骤S101包括:使得图形处理器芯片对应的函数程序在图形处理器芯片中运行;以及在函数程序运行的过程中,读取缓存存储的任务调度器中的事件记录数据。例如,可以使得图形处理器芯片对应的核函数程序(Kernel)在图形处理器芯片中开始运行,然后在该Kernel运行的过程中,从帧缓存中读取任务调度器中的事件记录数据,即边运行边读取。

又例如,在另一个实施例中,上述步骤S101包括:使得图形处理器芯片对应的函数程序在图形处理器芯片对应的仿真设计中运行;以及在函数程序运行结束后,在图形处理器芯片对应的仿真设计中获取事件记录数据。例如,在图形处理器芯片的设计过程中,一般在加工投产之前需要进行仿真设计,该仿真设计例如可以在仿真软件中完成。所以,上述获取事件记录数据的步骤也可以通过仿真来完成,在该实施例中,函数程序是在图形处理器芯片对应的仿真设计中运行,而并不是在加工投产后获得的图形处理器芯片中运行;在这种情形下,步骤S101中的缓存表示图形处理器芯片对应的仿真设计中的缓存,而不是指加工投产后获得的图形处理器芯片中的缓存。

例如,可以利用图形处理器芯片进行矩阵运算从而完成计算加速,所以在本公开的实施例中,函数程序可以包括进行矩阵运算的函数程序,例如在进行矩阵运算时,函数程序可以调用数据库。需要说明的是,虽然本公开的实施例是以图形处理器芯片进行矩阵运算为例进行说明的,但本公开的实施例并不限于此,图形处理器芯片在其它应用场景中均可以完成对应的操作以实现相应的功能。

如上所述,通过上述步骤S101可以获取事件记录数据,然后在步骤S102中根据编码协议对获取的事件记录数据进行解析以获得事件数据库,例如,该事件数据库中包括多个数据项。这里要说明的是,步骤S102中的编码协议可以理解为预先设计好的、图形处理器芯片与开发者工具之间的一个约定,本公开的实施例对该编码协议采用的编码形式不作限定。

在本公开的一些实施例中,例如,通过步骤S102获得的事件数据库中的多个数据项包括多条指令信息,每一条指令信息包括时间戳和对应的芯片模块,即根据指令信息中包括的内容可以确定该条指令信息是由图形处理器芯片的哪一个芯片模块工作所产生的以及该条指令信息执行的时间。

例如,在至少一个实施例中,上述步骤S103包括:将多条指令信息按照指令类型进行分类,并且按照分类的结果将多条指令信息基于第一时间轴以时间图谱的形式显示在不同的行。

例如,图4示出了一种将多条指令信息基于第一时间轴T1以时间图谱的形式进行显示的示例。这里第一时间轴T1的时间单位为图形处理器芯片工作时的时钟周期,不同的图形处理器芯片工作时的时钟周期可以相同,也可以不同,本公开的实施例对此不作限定。

例如,图4中示例性地示出了包括标量计算(Scalar)、向量内存操作(Vec mem)、分支操作(Branch)、局部内存操作(LDS)、全局内存操作(Export)、立即指令(Immed)以及其它内部指令(Internal)共七种不同指令类型的指令信息,不同类型的指令信息以时间图谱的形式显示在不同的行中。例如,对于任意一种指令信息对应的时间图谱,其中白色区域表示该时间段内没有执行对应的指令信息。

在本公开的实施例提供的可视化分析方法中,将多条指令信息按照指令类型进行分类,并且按照分类的结果将多条指令信息以时间图谱的形式显示在不同的行,由于指令信息是基于时间轴进行显示的,包括了指令信息被执行的时序,所以开发者通过该可视化的时间图谱可以更直观地获得关于指令信息被执行的详细情况。

例如,局部内存操作(LDS)对应的时间图谱可以反映出图形处理器芯片工作时的局部内存访问性能;又例如,全部内存操作(Export)对应的时间图谱可以反映出图形处理器芯片工作时的全局内存访问性能;又例如,多种指令信息对应的时间图谱还可以反映出指令执行的吞吐量(越高越好)。开发者根据可视化的时间图谱可以调整图形处理器芯片的设计,例如,Kernel开发者可以调整Kernel中的各种参数,从而提高图形处理器芯片的工作性能;又例如,如果发现某些开销很大的指令信息被执行的次数较多,图形处理器芯片的设计人员可以调整芯片架构以减少这些指令信息被执行的次数。

又例如,在至少一个实施例中,上述步骤S103包括:将多条指令信息按照对应的芯片模块进行分类,并且按照分类的结果将多条指令信息基于第一时间轴以时间图谱的形式显示在不同的行。

例如,图4示例性地示出了图形处理器芯片中的四个并行计算模块(SIMD0、SIMD1、SIMD2、SIMD3)对应的指令信息,不同芯片模块对应的指令信息以时间图谱的形式显示在不同的行中。同样地,对于任意一个芯片模块对应的指令信息对应的时间图谱,其中白色区域表示该时间段内没有执行对应的指令信息。

在本公开的实施例提供的可视化分析方法中,将多条指令信息按照对应的芯片模块进行分类,并且按照分类的结果将多条指令信息以时间图谱的形式显示在不同的行,由于指令信息是基于时间轴进行显示的,包括了指令信息被执行的时序,所以开发者通过该可视化的时间图谱可以更直观地获得关于指令信息被执行的详细情况。

例如,图形处理器芯片的设计人员通过上述可视化的时间图谱可以获知底层的芯片模块是否按照设计的逻辑工作;又例如,某一个芯片模块对应的指令信息的执行密集程度可以反映该芯片模块的使用效率。例如,图5示出了另一种将多条指令信息基于第一时间轴T1以时间图谱的形式进行显示的示例,通过对比图4和图5可知,图5中示出的并行计算模块对应的指令信息的执行密集程度高于图4中的情形,即在图5所示的情形中,芯片模块的使用效率更高。

需要说明的是,图4和图5中仅示例性地示出了部分芯片模块以及指令类型,本公开的实施例对此不作限定。在使用本公开的实施例提供的可视化分析方法时,可以根据需要对图形处理器芯片中各个芯片模块以及各种指令类型进行可视化分析。

另外,图4和图5中示出了多个矩形块,该矩形块可以表示多条指令信息的集合,例如,如果放大时间图谱,则可以显示出该矩形块中包括多条指令信息。又例如,在图4和图5显示的四个并行计算模块中,浅色的矩形块表示32位的指令信息,而深色的矩形块表示64位的指令信息。

需要说明的是,图4和图5中是以具有不用颜色深度的矩形块来表示不同指令类型的指令信息,例如,对应局部内存操作的指令信息的颜色比对应立即指令的指令信息的颜色深。本公开的实施例包括但不限于这种显示方式,例如,还可以通过不同形状、不同填充图案来区别不同类型的指令类型。

在上述的实施例中都是以事件数据库中的多个数据项包括多条指令信息为例进行描述的,本公开的实施例包括但不限于此,例如,事件数据库中的多个数据项还可以包括寄存器信息和/或硬件调度信息。需要说明的是,不同的平台采用的硬件调度的基本单元可能不同。

本公开的实施例提供的可视化分析方法不仅可以将指令信息以时间图谱的形式进行显示,还可以将寄存器信息和/或硬件调度信息以时间图谱的形式进行显示,从而可以为开发者提供更多芯片底层运行的信息,进而帮助开发者更好地完成图形处理器芯片的设计或Kernel的开发。

如图6所示,本公开的至少一实施例提供的可视化分析方法还包括以下操作步骤。

步骤S104:获取图形处理器芯片对应的函数程序运行时的应用程序编程接口(API)调用信息,API调用信息包括时间戳。

步骤S105:将API调用信息基于不同于第一时间轴T1的第二时间轴T2以时间图谱的形式进行显示。

对于步骤S104,Kernel代码在图形处理器芯片中运行时可能会产生一些API调用信息,例如,在执行上述可视化分析方法时,可以通过开发者工具收集这些API调用信息,与上述指令信息类似地,这些API调用信息也包括时间戳。

由于在步骤S104中获得的API调用信息包括时间戳,所以在步骤S105中,可以将API调用信息基于第二时间轴T2以时间图谱的形式进行显示。例如,如图7所示,上半部分是多条指令信息基于第一时间轴T1以时间谱图的形式进行显示,下半部分是多条API调用信息基于第二时间轴T2以时间图谱的形式进行显示。

需要说明的是,上述第二时间轴T2的时间单位与第一时间轴T1的时间单元可以相同,也可以不同,本公开的实施例对此不作限定。

本公开的实施例提供的可视化分析方法不仅可以将指令信息以时间图谱的形式进行显示,还可以将API调用信息以时间图谱的形式进行显示,从而可以为开发者提供更多关于Kernel代码执行的信息,进而帮助开发者更好地完成Kernel开发。

在本公开的至少一实施例提供的可视化分析方法中,如图7所示,还可以将基于第二时间轴T2显示的API调用信息按照时间戳映射至第一时间轴T1中,以使得基于第一时间轴T1显示的多条指令信息中标注有API调用信息,这样就可以获知在指令信息执行的过程中在哪个时刻发生了API调用,或者在发生某一个API调用时,有哪些指令信息被执行。

采用上述可视化分析方法可以使得图形处理器芯片工作时产生的指令信息与API调用信息结合起来进行显示,可以提供给开发者更丰富的芯片底层运行信息,从而可以帮助开发者更好地优化Kernel代码。

本公开的至少一实施例还提供一种图形处理器芯片的设计方法20,如图8所示,该设计方法20包括以下操作步骤。

步骤S201:根据本公开的实施例提供的任一可视化分析方法对图形处理器芯片进行可视化分析,以获得以时间图谱的形式进行显示的可视化结果。

步骤S202:根据可视化结果对图形处理器芯片的设计进行调整。

例如,在一些实施例中,可视化结果包括图形处理器芯片包括的多个芯片模块对应的指令信息的执行密集程度;在这种情形下,上述步骤S202包括:根据可视化结果对图形处理器芯片的多个芯片模块的设计进行调整。

如上述可视化分析方法的实施例中描述的,某一个芯片模块对应的指令信息的执行密集程度可以反映该芯片模块的使用效率,在获得该反映芯片模块的使用效率的可视化结果后,例如开发者可以对图形处理器芯片的多个芯片模块的设计进行调整,从而可以更充分地利用图形处理器芯片的硬件资源。

又例如,在一些实施例中,可视化结果包括图形处理器芯片对应的函数程序运行时的指令信息的执行情况;在函数程序为核函数程序(Kernel)的情形下,上述步骤S202包括:根据可视化结果对Kernel中的参数进行调整。

如上述可视化分析方法的实施例中描述的,局部内存操作(LDS)对应的时间图谱可以反映出图形处理器芯片工作时的局部内存访问性能,全部内存操作(Export)对应的时间图谱可以反映出图形处理器芯片工作时的全局内存访问性能,多种指令信息对应的时间图谱还可以反映出指令执行的吞吐量(越高越好);根据指令信息的执行情况,开发者可以调整Kernel中的各种参数,从而提高图形处理器芯片的工作性能。

例如,当利用图形处理器芯片进行矩阵运算时,Kernel可以调用数学库。例如,在使用数据库时,可以设置对应的一些参数,例如设置通用矩阵乘法(GEMM)中的参数;又例如,还可以设置计算类型为单精度还是双精度。

本公开的实施例提供的图形处理器芯片的设计方法可以将图形处理器芯片所涉及的底层运行情况基于时间轴以时间图谱的形式呈现给开发者,从而为芯片架构的设计人员或者Kernel开发者提供更加直观的信息,开发者可以根据这些信息进一步调整芯片架构设计或者进一步优化Kernel代码,从而可以更充分地利用图形处理器芯片的硬件资源。

本公开至少一个实施例还提供一种用于图形处理器芯片的可视化分析装置100,如图9所示,该可视化分析装置100包括获取模块110、解析模块120以及分类显示模块130。

例如,该获取模块110被配置为获取图形处理器芯片的缓存存储的任务调度器中的事件记录数据,即完成上述步骤S101。

该解析模块120被配置为根据编码协议对事件记录数据进行解析以获得事件数据库,即完成上述步骤S102。

该分类显示模块130被配置为将事件数据库中的多个数据项进行分类后基于时间轴以时间图谱的形式进行显示,即完成上述步骤S103。

本公开至少一个实施例还提供一种用于图形处理器芯片的设计装置200,如图10所示,该设计装置200包括可视化分析模块210和调整模块220。

例如,该可视化分析模块210被配置为根据本公开的实施例提供的任一可视化分析方法对图形处理器芯片进行可视化分析,以获得以时间图谱的形式进行显示的可视化结果,即完成上述步骤S201。

该调整模块220被配置为根据可视化结果对图形处理器芯片的设计进行调整,即完成上述步骤S202。

由于以上已经在描述可视化分析方法10以及设计方法20的过程中,对上述装置100、200操作所涉及的内容的细节进行了介绍,因此这里为简洁起见不再赘述,相关细节可参照以上关于图2至图8的描述。

需要说明的是,图9-图10所示的装置中的各个模块可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些模块可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。作为示例,参照图9-图10描述的装置可以是PC计算机、平板装置、个人数字助理、智能手机、web应用或其它能够执行程序指令的装置,但不限于此。

另外,尽管以上在描述装置100、200时将其划分为用于分别执行相应处理的模块,然而,本领域技术人员清楚的是,各模块执行的处理也可以在装置中不进行任何具体模块划分或者各模块之间并无明确划界的情况下执行。此外,以上参照图9-图10描述的装置并不限于包括以上描述的模块,而是还可以根据需要增加一些其它模块(例如,存储模块、数据处理模块等),或者以上模块也可被组合。

本公开的至少一实施例还提供一种可视化分析与设计设备,该可视化分析与设计设备包括处理器和存储器;该存储器包括一个或多个计算机程序模块;一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上文所述的本公开的实施例提供的可视化分析方法10以及设计方法20。

图11为本公开至少一实施例提供的一种可视化分析与设计设备的示意框图。如图11所示,该可视化分析与设计设备400包括处理器410和存储器420。存储器420用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器410用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器410运行时可以执行上文所述的可视化分析方法10以及设计方法20中的一个或多个步骤。存储器420和处理器410可以通过总线系统和/或其它形式的连接机构(未示出)互连。

例如,处理器410可以是中央处理单元(CPU)、数字信号处理器(DSP)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器410可以为通用处理器或专用处理器,可以控制可视化分析与设计设备400中的其它组件以执行期望的功能。

例如,存储器420可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器410可以运行一个或多个计算机程序模块,以实现判断设备400的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。

需要说明的是,本公开的实施例中,可视化分析与设计设备400的具体功能和技术效果可以参考上文中关于可视化分析方法10以及设计方法20的描述,此处不再赘述。

图12为本公开一些实施例提供的另一种可视化分析与设计设备的示意框图。该可视化分析与设计设备800例如适于用来实施本公开实施例提供的可视化分析方法10以及设计方法20。需要注意的是,图12示出的可视化分析与设计设备800仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。

如图12所示,可视化分析与设计设备800可以包括处理装置(例如中央处理器、图形处理器等)810,其可以根据存储在只读存储器(ROM)820中的程序或者从存储装置880加载到随机访问存储器(RAM)830中的程序而执行各种适当的动作和处理。在RAM 830中,还存储有可视化分析与设计设备800操作所需的各种程序和数据。处理装置810、ROM 820以及RAM 830通过总线840彼此相连。输入/输出(I/O)接口850也连接至总线840。

通常,以下装置可以连接至I/O接口850:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置860;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置870;包括例如磁带、硬盘等的存储装置880;以及通信装置890。通信装置890可以允许可视化分析与设计设备800与其他电子设备进行无线或有线通信以交换数据。虽然图12示出了具有各种装置的可视化分析与设计设备800,但应理解的是,并不要求实施或具备所有示出的装置,可视化分析与设计设备800可以替代地实施或具备更多或更少的装置。

例如,本公开实施例提供的可视化分析方法10以及设计方法20可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述可视化分析方法10以及设计方法20的程序代码。在这样的实施例中,该计算机程序可以通过通信装置890从网络上被下载和安装,或者从存储装置880安装,或者从ROM 820安装。在该计算机程序被处理装置810执行时,可以执行本公开实施例提供的可视化分析方法10以及设计方法20。

本公开至少一个实施例还提供一种存储介质,用于存储非暂时性计算机可读指令,当该非暂时性计算机可读指令由计算机执行时可以实现本公开的实施例提供的任一可视化分析方法10以及设计方法20。

图13为本公开一些实施例提供的一种存储介质的示意图。如图13所示,存储介质600用于存储非暂时性计算机可读指令610。例如,当非暂时性计算机可读指令610由计算机执行时可以执行根据上文所述的可视化分析方法10以及设计方法20中的一个或多个步骤。

例如,该存储介质600可以应用于上述可视化分析与设计设备400中。例如,存储介质600可以为图11所示的可视化分析与设计设备400中的存储器420。例如,关于存储介质600的相关说明可以参考图11所示的可视化分析与设计设备400中的存储器420的相应描述,此处不再赘述。

有以下几点需要说明:

(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。

(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。

以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号