-
公开(公告)号:US20120159458A1
公开(公告)日:2012-06-21
申请号:US12972198
申请日:2010-12-17
申请人: Yosseff Levanoni , Weirong Zhu , Lingli Zhang , John Lee Rapp , Andrew L. Bliss
发明人: Yosseff Levanoni , Weirong Zhu , Lingli Zhang , John Lee Rapp , Andrew L. Bliss
IPC分类号: G06F9/45
摘要: The present invention extends to methods, systems, and computer program products for reconstructing program control flow. Embodiments include implementing or morphing a control flow graph (“CFG”) into an arbitrary loop structure to reconstruct (preserve) control flow from original source code. Loop structures can be optimized and can adhere to target platform constraints. In some embodiments, C++ source code (a first higher level format) is translated into a CFG (a lower level format). The CFG is then translated into HLSL source code (a second different higher level format) for subsequent compilation into SLSL bytecode (that can then be executed at a Graphical Processing Unit (“GPU”)). The control flow from the C++ source code is preserved in the HLSL source code.
摘要翻译: 本发明扩展到用于重建程序控制流的方法,系统和计算机程序产品。 实施例包括将控制流程图(“CFG”)实现或变形为任意循环结构,以重构(保留)来自原始源代码的控制流程。 循环结构可以进行优化,并可以遵守目标平台约束。 在一些实施例中,将C ++源代码(第一较高级格式)转换成CFG(较低级格式)。 然后将CFG转换为HLSL源代码(第二种不同的较高级别格式),以便后续编译成SLSL字节码(然后可以在图形处理单元(“GPU”)中执行)。 来自C ++源代码的控制流将保留在HLSL源代码中。
-
公开(公告)号:US20120167062A1
公开(公告)日:2012-06-28
申请号:US12979094
申请日:2010-12-27
申请人: Yosseff Levanoni , Weirong Zhu , Lingli Zhang , John Lee Rapp , Andrew L. Bliss
发明人: Yosseff Levanoni , Weirong Zhu , Lingli Zhang , John Lee Rapp , Andrew L. Bliss
IPC分类号: G06F9/45
摘要: The present invention extends to methods, systems, and computer program products for emulating pointers. Pointers can be emulated by replacing the pointers with a pair and replacing each dereference site with a switch on the tag and a switch body that executes the emulated pointer access on the corresponding variable the pointer points to. Data flow optimizations can be used to reduce the number of switches and/or reduce the number of cases which need be considered at each emulated pointer access sites.
摘要翻译: 本发明扩展到用于模拟指针的方法,系统和计算机程序产品。 可以通过用
对替换指针来替换指针,并使用标签上的开关替换每个解引用站点,以及在指针指向的相应变量上执行仿真指针访问的交换机主体。 可以使用数据流优化来减少交换机的数量和/或减少在每个仿真指针访问站点需要考虑的情况的数量。 -
公开(公告)号:US08997066B2
公开(公告)日:2015-03-31
申请号:US12979094
申请日:2010-12-27
申请人: Yosseff Levanoni , Weirong Zhu , Lingli Zhang , John Lee Rapp , Andrew L. Bliss
发明人: Yosseff Levanoni , Weirong Zhu , Lingli Zhang , John Lee Rapp , Andrew L. Bliss
摘要: The present invention extends to methods, systems, and computer program products for emulating pointers. Pointers can be emulated by replacing the pointers with a pair and replacing each dereference site with a switch on the tag and a switch body that executes the emulated pointer access on the corresponding variable the pointer points to. Data flow optimizations can be used to reduce the number of switches and/or reduce the number of cases which need be considered at each emulated pointer access sites.
摘要翻译: 本发明扩展到用于模拟指针的方法,系统和计算机程序产品。 可以通过用
对替换指针来替换指针,并使用标签上的开关替换每个解引用站点,以及在指针指向的相应变量上执行仿真指针访问的交换机主体。 可以使用数据流优化来减少交换机的数量和/或减少在每个仿真指针访问站点需要考虑的情况的数量。 -
公开(公告)号:US08510724B2
公开(公告)日:2013-08-13
申请号:US12972198
申请日:2010-12-17
申请人: Yosseff Levanoni , Weirong Zhu , Lingli Zhang , John Lee Rapp , Andrew L. Bliss
发明人: Yosseff Levanoni , Weirong Zhu , Lingli Zhang , John Lee Rapp , Andrew L. Bliss
IPC分类号: G06F9/45
摘要: The present invention extends to methods, systems, and computer program products for reconstructing program control flow. Embodiments include implementing or morphing a control flow graph (“CFG”) into an arbitrary loop structure to reconstruct (preserve) control flow from original source code. Loop structures can be optimized and can adhere to target platform constraints. In some embodiments, C++ source code (a first higher level format) is translated into a CFG (a lower level format). The CFG is then translated into High Level Shader Language (“HLSL”) source code (a second different higher level format) for subsequent compilation into SLSL bytecode (that can then be executed at a Graphical Processing Unit (“GPU”)). The control flow from the C++ source code is preserved in the HLSL source code.
摘要翻译: 本发明扩展到用于重建程序控制流的方法,系统和计算机程序产品。 实施例包括将控制流程图(“CFG”)实现或变形为任意循环结构,以重构(保留)来自原始源代码的控制流程。 循环结构可以进行优化,并可以遵守目标平台约束。 在一些实施例中,将C ++源代码(第一较高级格式)转换成CFG(较低级格式)。 然后将CFG转换为高级着色器语言(“HLSL”)源代码(第二种不同的较高级别格式),以便后续编译成SLSL字节码(然后可以在图形处理单元(“GPU”)中执行)。 来自C ++源代码的控制流将保留在HLSL源代码中。
-
公开(公告)号:US08635501B2
公开(公告)日:2014-01-21
申请号:US13190074
申请日:2011-07-25
申请人: John Lee Rapp
发明人: John Lee Rapp
IPC分类号: G06F11/00
CPC分类号: G06F11/0787 , G06F11/0715 , G06F11/0724 , G06F11/0745 , G06F11/079
摘要: A computer-implemented method, computer-readable media, and a computerized system to track and detect data hazards are provided. The computerized system includes processors configured to execute instructions associated with a multithreaded program. The computerized system allocates memory for the multithreaded program and creates threads for execution on the processors. The memory may include a reserved area for tracking information. The threads access the allocated memory in accordance with the multithreaded program and the memory including the tracking information is updated based on the threads' memory access. In turn, the processors generate notifications of data hazard based on the tracking information stored in the allocated memory.
摘要翻译: 提供了计算机实现的方法,计算机可读介质和用于跟踪和检测数据危害的计算机化系统。 计算机化系统包括被配置为执行与多线程程序相关联的指令的处理器。 计算机化系统为多线程程序分配内存,并创建用于在处理器上执行的线程。 存储器可以包括用于跟踪信息的保留区域。 线程根据多线程程序访问分配的存储器,并且基于线程的存储器访问来更新包括跟踪信息的存储器。 反过来,处理器基于存储在分配的存储器中的跟踪信息来产生数据危害的通知。
-
公开(公告)号:US20120159258A1
公开(公告)日:2012-06-21
申请号:US12969482
申请日:2010-12-15
申请人: Paul E. Maybee , Eric S. Leese , John Lee Rapp , Maria K. Blees
发明人: Paul E. Maybee , Eric S. Leese , John Lee Rapp , Maria K. Blees
IPC分类号: G06F11/36
CPC分类号: G06F11/3636
摘要: The debugging of a program in a data parallel environment. A connection is established between a debugging module and a process of the data parallel environment. The connection causes the data parallel environment to notify the debugging module of certain events as they occur in the execution of the process. Upon notification of such an event, the process execution is paused, and the debugging module may query the data parallel environment for information regarding the process at the device independent virtual machine layer. Upon completion of this querying, the process may then resume execution. This may occur repeatedly if multiple events are encountered.
摘要翻译: 在数据并行环境中调试程序。 在调试模块和数据并行环境的进程之间建立连接。 连接导致数据并行环境在执行过程中发生某些事件时通知调试模块。 在通知这样的事件之后,过程执行被暂停,并且调试模块可以在数据并行环境中查询关于设备无关虚拟机层处理的信息。 完成此查询后,该进程可以继续执行。 如果遇到多个事件,这可能会重复出现。
-
公开(公告)号:US08677186B2
公开(公告)日:2014-03-18
申请号:US12969482
申请日:2010-12-15
申请人: Paul E. Maybee , Eric S. Leese , John Lee Rapp , Maria K. Blees
发明人: Paul E. Maybee , Eric S. Leese , John Lee Rapp , Maria K. Blees
IPC分类号: G06F11/00
CPC分类号: G06F11/3636
摘要: The debugging of a program in a data parallel environment. A connection is established between a debugging module and a process of the data parallel environment. The connection causes the data parallel environment to notify the debugging module of certain events as they occur in the execution of the process. Upon notification of such an event, the process execution is paused, and the debugging module may query the data parallel environment for information regarding the process at the device independent virtual machine layer. Upon completion of this querying, the process may then resume execution. This may occur repeatedly if multiple events are encountered.
摘要翻译: 在数据并行环境中调试程序。 在调试模块和数据并行环境的进程之间建立连接。 连接导致数据并行环境在执行过程中发生某些事件时通知调试模块。 在通知这样的事件之后,过程执行被暂停,并且调试模块可以在数据并行环境中查询关于设备无关虚拟机层处理的信息。 完成此查询后,该进程可以继续执行。 如果遇到多个事件,这可能会重复出现。
-
-
-
-
-
-