IP Library Granted Patent US 8,566,647
Granted Patent B2
US 8,566,647 · App. 12/973,619 · Granted Oct 22, 2013

Debugger presentation of parallel application threads

Inventors: Paul Edward Maybee (Seattle, WA); Daniel Demetris George Moth (Seattle, WA)
Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,566,647
App. No.
12/973,619
Granted
Oct 22, 2013
Kind
B2
Abstract

User interface technologies for viewing the state of threads of a target parallel application, such as a massively parallel application intended to run on a GPGPU system, during debugging of the target parallel application are disclosed. The target parallel application includes a kernel, and the kernel includes a set of threads. Coalesced thread information of the threads is presented with the user interface technologies based on user-controllable criteria.

Claims (26)

1. A method, comprising:

debugging a parallel application having a kernel including a plurality of thread groups each having a thread group vector and a plurality of threads each having a thread vector;

determining debugger information during a break state from a notion of a current thread and a current stack frame; and

presenting coalesced thread information of the plurality of threads based the debugger information in accordance with user controllable criteria including a selected kernel, a selected thread group vector, and a selected thread vector.

2. The method of claim 1 wherein the kernel is selected from a plurality of kernels in the parallel application.

3. The method of claim 1 wherein the kernel is a compute shader.

4. The method of claim 1 wherein the parallel application configured to be processed with general purpose computing on graphics processors.

5. The method of claim 1 wherein the presenting the coalesced thread information includes presenting the coalesced thread information in user interface.

6. The method of claim 5 wherein the user interface includes a window.

7. The method of claim 1 wherein the presenting the coalesced thread information is based on a range of coordinates of a thread group and a thread of the kernel.

8. The method of claim 7 wherein the presenting the coalesced thread information is also based on at least one of thread group, status of the threads, or location of the threads.

9. The method of claim 8 wherein the location of the threads describes a method name.

10. The method of claim 1 wherein the debugging is performed with a debugger engine and the presenting is performed with a debugger front end.

11. A computer readable storage medium which is not a transitory propagating signal storing computer executable instructions for controlling a computing device to perform a method comprising:

receiving debugger information for a target kernel including a thread group having a thread group vector, wherein the thread group includes a plurality of threads having a thread vector; and

presenting coalesced thread information of a plurality of threads based on the debugger information in accordance with user controllable criteria including a selected target kernel, a selected thread vector, and a selected thread vector during a debugging of a target parallel application.

12. The computer readable storage medium of claim 11 and further comprising a debugger engine configured to debug the target parallel application.

13. The computer readable storage medium of claim 12 wherein the presenting and the debugging are included in an integrated debugger.

14. The computer readable storage medium of claim 11 wherein the threads are included within a kernel of the target parallel application.

15. The computer readable storage medium of claim 11 wherein the presenting is performed for each break state of the debugging.

16. The computer readable storage medium of claim 11 wherein the threads are flagged.

17. The computer readable storage medium of claim 11 wherein the presenting the coalesced thread information is based on at least one of thread group, status of the threads, or location of the threads.

18. The computer readable storage medium of claim 11 and further including permitting a user to switch a thread designated as a current thread to another thread of the target parallel application.

19. A computer readable storage medium which is not a transitory propagating signal storing a parallel application development tool including a debugger user interface layer, wherein the debugger user interface layer is configured to perform a method comprising:

receiving debugger information for a target kernel selected from a plurality of kernels, wherein the target kernel include a plurality of thread group each having a thread group vector, wherein each of the thread groups includes a plurality of threads having a thread vector, debugger information being based on a notion of a current thread and a current stack frame; and

presenting coalesced thread information of the plurality of threads based on the debugger information in a window in accordance with user controllable criteria including a selected kernel, selected thread group vector, and selected thread vector on the state of the threads from thread switching.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2010
From: MAYBEE, PAUL EDWARD; MOTH, DANIEL DEMETRIS GEORGE
To: MICROSOFT CORPORATION
Reel/Frame 025531/0409 →
Continuity (1)
Related Publication 20120159261A1 · Jun 21, 2012