【技术实现步骤摘要】
生成图形处理器代码的不同踪迹
相关申请的交叉引用
[0001]本申请涉及2019年3月8日提交的题为“用于追踪图形处理器代码的二进制插桩(BINARY INSTRUMENTATION TO TRACE GRAPHICS PROCESSOR CODE)”的美国专利申请第16/296,357号。前述专利申请通过引用整体并入本文中。
技术介绍
[0002]由于当在计算系统上执行代码时可以生成剖析数据,动态剖析成为分析和调整计算机代码的有用手段。一些此类解决方案需要捕获踪迹,诸如控制流踪迹和/或存储器访问踪迹。随着诸如图形处理器之类的现代系统实现可并行执行代码的多个处理元件,捕获此类踪迹数据的复杂度增加了。
附图说明
[0003]图1示出系统的实施例。
[0004]图2示出第一逻辑流程的示例。
[0005]图3示出用于生成图形处理器代码的不同踪迹的预处理阶段的实施例。
[0006]图4A-4B示出处理阶段期间用于收集数据的动态踪迹缓冲区的实施例。
[0007]图5示出用于组合图形处理器代码的不同踪迹的后处理阶段的示例。
[0008]图6示出第二逻辑流程的示例。
[0009]图7示出第三逻辑流程的示例。
[0010]图8示出第四逻辑流程的示例。
[0011]图9示出存储介质的实施例。
[0012]图10示出系统的实施例。
具体实施方式
[0013]本文公开的实施例提供了经由二进制代码的插桩,从在一个或多个图形处理器(GPU)的多个执行 ...
【技术保护点】
【技术特征摘要】
1.一种设备,包括:处理器;图形处理器;以及耦合到所述处理器和所述图形处理器的存储器,所述存储器存储指令,所述指令在由所述处理器执行时使所述处理器用于:确定要在所述图形处理器上执行的经插桩的二进制代码的多个块中的每个块生成的踪迹记录的计数,每个踪迹记录包括踪迹记录类型,所述踪迹记录类型具有多个踪迹记录类型;确定要在所述图形处理器上执行的经插桩的二进制代码的多个块中的每个块的相应执行计数;以及基于所确定的每个块生成的踪迹记录的计数和每个块的执行计数来确定要在存储器中分配的多个踪迹缓冲区的每个踪迹缓冲区的相应大小,每个踪迹缓冲区用于存储多个踪迹记录类型中的相应一个踪迹记录类型的踪迹记录。2.如权利要求1所述的设备,所述存储器存储在由所述处理器执行时使所述处理器用于以下操作的指令:确定多个踪迹记录类型中的每个踪迹记录类型的相应大小;以及基于每个踪迹记录类型的相应大小、每个块生成的踪迹记录的相应计数以及每个块的执行计数来确定要在存储器中分配的多个踪迹缓冲区的每个踪迹缓冲区的相应大小。3.如权利要求1所述的设备,基于所述经插桩的二进制代码的分析来确定由每个块生成的踪迹记录的计数,基于在所述图形处理器上的所述经插桩的二进制代码的第一执行实例来确定多个块中的每个块的执行计数,所述处理器或所述图形处理器中的一个用于分配和初始化所述存储器中的多个踪迹缓冲区。4.如权利要求3所述的设备,所述存储器存储指令,所述指令在由所述处理器执行时使经插桩的二进制代码的第二执行实例由所述图形处理器的多个处理器核的多个执行线程并行地执行。5.如权利要求4所述的设备,所述经插桩的二进制代码的第二执行实例基于每个踪迹数据记录的类型来生成要被存储在所述踪迹缓冲区中的踪迹数据记录。6.如权利要求5所述的设备,所述踪迹数据记录包括相应的执行线程的标识符、所述经插桩的二进制代码的相应块的标识符以及踪迹数据,每个踪迹缓冲区包括指向所述经插桩的二进制代码的第二执行实例期间相应踪迹缓冲区的下一个可用元素的指针。7.如权利要求6所述的设备,所述存储器存储在由所述处理器执行时使得所述处理器用于以下操作的指令:解析存储在所述多个踪迹缓冲区的每个踪迹缓冲区中的所述踪迹数据记录;以及至少部分地基于所述经插桩的二进制代码的块的标识符来组合经解析的踪迹数据记录,以生成所述经插桩的二进制代码的最终踪迹。8.如权利要求1所述的设备,所述多个踪迹缓冲区包括单个踪迹缓冲区或多个分开的踪迹缓冲区中的一种情况,经插桩的二进制代码包括汇编代码,每个块包括至少一个汇编代码行。9.如权利要求1所述的设备,所述存储器存储在由所述处理器执行时使得所述处理器
用于以下操作的指令:确定每个踪迹记录类型的相应大小;针对每个踪迹记录类型,基于由所述经插桩的二进制代码的多个块生成的踪迹记录的总和来计算所述踪迹记录类型的踪迹记录的总数;以及基于所述踪迹记录类型的踪迹记录的相应总数与每个踪迹记录类型的相应大小的乘积来确定每个踪迹缓冲区的大小。10.一种方法,包括:通过处理器确定要在图形处理器上执行的经插桩的二进制代码的多个块中的每个块生成的踪迹记录的计数,每个踪迹记录包括踪迹记录类型,所述踪迹记录类型具有多个踪迹记录类型;确定要在所述图形处理器上执行的经插桩的二进制代码的多个块中的每个块的相应执行计数;以及基于所确定的每个块生成的踪迹记录的计数和每个块的执行计数,来确定要在所述处理器和所述图形处理器共享的存储器中分配的多个踪迹缓冲区中的每个踪迹缓冲区的相应大小,每个踪迹缓冲区存储所述多个踪迹记录类型中的相应一个踪迹记录类型的踪迹记录。11.如权利要求10所述的方法,进一步包括:确定所述多个踪迹记录类型中每个踪迹记录类型的相应大小;以及基于每个踪迹记录类型的相应大小、每个块生成的踪迹记录的相应计数以及每个块的执行计数,来确定要在所述存储器中分配的多个踪迹缓冲区的每个踪迹缓冲区的相应大小。12.如权利要求1...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。