[发明专利]内核功能性检查器有效
申请号: | 201380073036.6 | 申请日: | 2013-03-14 |
公开(公告)号: | CN105027089B | 公开(公告)日: | 2018-05-22 |
发明(设计)人: | J·波特森;A·吉梅内斯 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 臧永杰;胡莉莉 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内核 功能 检查 | ||
描述了称为内核功能性检查器的调试系统和方法,以用于使得能够实现针对设备特定的API(应用程序接口)所写的软件的调试而无需在软件驱动器或硬件中的支持或改变。针对OpenCL描述了特定示例实施例,但所公开的方法也可以用于使得能够实现用于诸如DirectX®和OpenGL®之类的其它设备特定的API的调试能力。
技术领域
本文所述的实施例一般涉及计算机软件和用于测试计算机软件的方法及系统。
背景技术
包括CPU(中央处理单元)、GPU(图形处理单元)和其它处理器的组合的计算机系统已经成为平台的重要类别。工业标准框架已经被开发用于对这些所谓的异构系统进行编程。一个这样的框架是OpenCL(开放计算语言)。用于这样的系统的软件的开发涉及检查作为调试(debug)过程的部分的代码的部分的功能性。然而,用于这样的系统的程序的逐行调试的解决方案已经被限制,通常涉及硬件特定的实现方式。
附图说明
图1图示了用于实现内核功能性检查器的示例系统。
图2是示例内核功能性检查器中的软件组件之间的接口。
图3图示在一个实施例中的内核功能性检查器的解析器和驱动应用的基本操作。
图4示出由内核功能性检查器所执行的方法的示例。
图5是图示根据示例实施例的示例机器的框图,在所述示例机器上本文所讨论的技术(例如,方法)中的任何一个或多个可以执行。
具体实施方式
本文所述的是称为内核功能性检查器的调试系统,用于使得能够实现用于在不同硬件上运行的OpenCL内核的高级调试能力而无需在软件驱动器或硬件中的改变或支持。内核功能性检查器可以包括用于OpenCL内核的逐行调试、运行时断点、私有、局部和全局存储器查看和编辑、运行时断言/条件断点、工作项(线程)切换和步进、局部和全局工作组步进以及编辑并继续调试。下述特定示例实施例是用于OpenCL的,但所公开的方法也可以用于使得能够实现用于诸如DirectX®和OpenGL®(开放图形库)之类的其它设备特定的API(应用程序接口)的高级调试能力。
内核功能性检查器的一个实施例利用基于软件和基于硬件的OpenCL执行的混合方法。在软件中,确定用来以正确的次序正确地运行给定的OpenCL内核内的单独的语句(statement)的必要信息,并且那些语句然后被分派给OpenCL设备以用于执行。作为结果,OpenCL执行被控制,如同它是软件应用一样,并且语句可以在硬件上运行以实现与当在OpenCL设备上整个地运行内核时将会获得的相同的输出。内核功能性检查器可以支持内核执行的完全控制,并允许用户在内核执行的每个阶段检查所有存储器对象。
在一个实施例中,内核功能性检查器可以被描述为由三个基本组件构成。解析器组件(也称为CL解析器)负责在有效的OpenCL内核中读取并然后输出有效的微内核和必要的元数据。驱动应用组件(也称为调试引擎)从解析器接收输出并然后负责正确地运行内核,处置所有存储器和内核执行任务。第三组件是用户接口,其向用户提供接口,通过所述接口向驱动应用发出命令以及显示输出。在操作中,有效的OpenCL内核首先被传递到解析器组件,其执行内核的语义分析以生成一系列微内核,所述微内核中的每一个表示来自原始内核的指令集。在典型的使用中,该指令集将是由原始OpenCL内核中的单行源代码表示的指令,但也可以是由单独的源行所表示的指令的子集,以允许调试源行的单独部分。除了生成这些微内核之外,CL解析器还从内核中提取元数据用于流控制、内核变元(argument)、私有和局部变量以及索引,以正确地映射变量以用于驱动应用。驱动应用组件使用该输出来提供一种系统以用于用户以各种方式步进通过内核的执行,包括(但不限于)逐行步进和执行直到指定的断点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380073036.6/2.html,转载请声明来源钻瓜专利网。