CN115048145B - Information acquisition method and device and related equipment - Google Patents

Information acquisition method and device and related equipment Download PDF

Info

Publication number
CN115048145B
CN115048145B CN202210668137.9A CN202210668137A CN115048145B CN 115048145 B CN115048145 B CN 115048145B CN 202210668137 A CN202210668137 A CN 202210668137A CN 115048145 B CN115048145 B CN 115048145B
Authority
CN
China
Prior art keywords
information
program
thread
hardware
breakpoint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210668137.9A
Other languages
Chinese (zh)
Other versions
CN115048145A (en
Inventor
崔恒冠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202210668137.9A priority Critical patent/CN115048145B/en
Publication of CN115048145A publication Critical patent/CN115048145A/en
Application granted granted Critical
Publication of CN115048145B publication Critical patent/CN115048145B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The embodiment of the invention provides an information acquisition method, an information acquisition device and related equipment, wherein the information acquisition method comprises the following steps: setting breakpoint information for a co-program in a target program, so as to control a debugging agent to acquire running information of each thread in a thread group of the co-program and hardware information of a thread channel corresponding to the running information based on the breakpoint information in the running process of the co-program; the breakpoint information is used for marking the start and stop positions of information acquisition, and the co-program is a program running on the coprocessor; the hardware information of the thread channel comprises a hardware identifier of the thread channel and state information of the thread channel; and acquiring information acquired by the debugging agent to obtain the operation data of the co-program in hardware. The method can accurately reflect the actual running condition of the bottom hardware in the task processing process, thereby providing a basis for improving the processing efficiency of the parallel computing task.

Description

Information acquisition method and device and related equipment
Technical Field
The embodiment of the invention relates to the field of computer testing, in particular to an information acquisition method, an information acquisition device and related equipment.
Background
A coprocessor is a processor that assists a host processor in developing and applying processing tasks that it cannot perform or is inefficient to perform. A commonly used coprocessor, such as General-purpose graphics processor (GPGPU) is a graphics processor that is used to compute General-purpose computing tasks that are otherwise handled by a central processing unit, and has great advantages in performing data block parallel processing algorithms due to its powerful parallel processing capabilities and programmable pipelines.
When the coprocessor processes the computing task, the algorithm conforming to the characteristics of the hardware architecture of the coprocessor can effectively improve the task processing efficiency. However, how to determine whether an algorithm for executing a parallel computing task meets the characteristics of a coprocessor hardware architecture is a problem to be solved in the art.
Disclosure of Invention
In view of this, the embodiments of the present invention provide an information collecting method, apparatus and related devices, which can determine whether an algorithm for executing a parallel computing task accords with the characteristics of a coprocessor hardware architecture.
In order to achieve the above purpose, the embodiment of the present invention provides the following technical solutions.
In a first aspect, an embodiment of the present invention provides an information collecting method, applied to a debugger, including:
Setting breakpoint information for a co-program in a target program, so as to control a debugging agent to acquire running information of each thread in a thread group of the co-program and hardware information of a thread channel corresponding to the running information based on the breakpoint information in the running process of the co-program; the breakpoint information is used for marking the start and stop positions of information acquisition, and the co-program is a program running on the coprocessor; the hardware information of the thread channel comprises a hardware identifier of the thread channel and state information of the thread channel;
and acquiring information acquired by the debugging agent to obtain the operation data of the co-program in hardware.
In a second aspect, an embodiment of the present invention further provides an information collecting method, applied to a debug agent, including:
acquiring the running information of each thread in a thread group of a co-program and the hardware information of a corresponding thread channel based on breakpoint information in the co-program in the running process of the co-program in a target program; the program co-processor in the target program is a program running on a coprocessor, the breakpoint information is used for marking the start and stop positions of information acquisition, and the hardware information of the thread channel comprises the hardware identifier of the thread channel and the state information of the thread channel;
And sending the acquired information to a debugger so that the debugger can obtain the running data of the co-program in hardware.
In a third aspect, an embodiment of the present invention further provides an information acquisition apparatus, including:
the breakpoint setting module is used for setting breakpoint information for a co-program in a target program, so that in the running process of the co-program, the debugging agent is controlled to acquire running information of each thread in a thread group of the co-program and hardware information of a corresponding thread channel based on the breakpoint information; the breakpoint information is used for marking the start and stop positions of information acquisition, and the co-program is a program running on the coprocessor; the hardware information of the thread channel comprises a hardware identifier of the thread channel and state information of the thread channel;
and the information acquisition module is used for acquiring the information acquired by the debugging agent to obtain the operation data of the co-program in hardware.
In a fourth aspect, an embodiment of the present invention further provides an information collecting device, including:
the information acquisition module is used for acquiring the operation information of each thread in the thread group of the co-program and the hardware information of the corresponding thread channel based on the breakpoint information in the co-program in the operation process of the co-program in the target program; the program co-processor in the target program is a program running on a coprocessor, the breakpoint information is used for marking the start and stop positions of information acquisition, and the hardware information of the thread channel comprises the hardware identifier of the thread channel and the state information of the thread channel;
And the information sending module is used for sending the acquired information to the debugger so that the debugger can obtain the operation data of the co-program in hardware.
In a fifth aspect, an embodiment of the present invention further provides a computer apparatus, including: at least one memory and at least one processor; the memory stores one or more computer-executable instructions that the processor invokes to perform the information gathering method provided in the first aspect and/or to perform the information gathering method provided in the second aspect.
In a sixth aspect, embodiments of the present invention further provide a storage medium storing one or more computer-executable instructions for performing the information acquisition method provided in the first aspect, and/or performing the information acquisition method provided in the second aspect.
The embodiment of the invention provides an information acquisition method, an information acquisition device and related equipment, wherein the information acquisition method comprises the following steps: setting breakpoint information for a co-program in a target program, so as to control a debugging agent to acquire running information of each thread in a thread group of the co-program and hardware information of a thread channel corresponding to the running information based on the breakpoint information in the running process of the co-program; the breakpoint information is used for marking the start and stop positions of information acquisition, and the co-program is a program running on the coprocessor; the hardware information of the thread channel comprises a hardware identifier of the thread channel and state information of the thread channel; and acquiring information acquired by the debugging agent to obtain the operation data of the co-program in hardware.
It can be seen that, in the embodiment of the invention, the start-stop position required to collect information is determined by setting breakpoint information, and based on the breakpoint information, the coprocessor is controlled to collect the running information of each thread in the thread group of the target program and the hardware information of the corresponding thread channel, so that the actual running condition of the bottom hardware in the task processing process is accurately reflected, and whether the algorithm for executing the parallel computing task accords with the characteristics of the hardware architecture is determined, thereby providing a basis for improving the processing efficiency of the parallel computing task.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings that are required to be used in the embodiments or the description of the prior art will be briefly described below, and it is obvious that the drawings in the following description are only embodiments of the present invention, and that other drawings can be obtained according to the provided drawings without inventive effort for a person skilled in the art.
FIG. 1 is a schematic diagram of an exploded view of a computing task;
fig. 2 is a schematic structural diagram of a GPGPU according to an embodiment of the present invention;
FIG. 3 is an alternative block diagram of a parallel computing unit provided by an embodiment of the present invention;
FIG. 4 is an alternative schematic diagram of a debug architecture data flow provided by an embodiment of the present invention;
fig. 5 is an alternative flow chart of an information collection method according to an embodiment of the present invention;
FIG. 6 is a schematic diagram of another alternative flow chart of an information acquisition method according to an embodiment of the present invention;
FIG. 7 is a diagram illustrating an example of graphic information provided by an embodiment of the present invention;
FIG. 8 is a thread presentation example among presentation examples of graphic information provided by an embodiment of the present invention;
FIG. 9 is an alternative flowchart of step S10 provided in an embodiment of the present invention;
FIG. 10 is a flowchart of an information collection method according to an embodiment of the present invention;
FIG. 11 is a flowchart of step S10 according to an embodiment of the present invention;
fig. 12 is a block diagram of an information acquisition device according to an embodiment of the present invention;
FIG. 13 is a block diagram of another information acquisition device according to an embodiment of the present invention;
fig. 14 is a block diagram of a computer device according to an embodiment of the present invention.
Detailed Description
The following description of the embodiments of the present invention will be made clearly and completely with reference to the accompanying drawings, in which it is apparent that the embodiments described are only some embodiments of the present invention, but not all embodiments. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
Taking a coprocessor as a GPGPU as an example, when the GPGPU is allocated to process a computing task, the computing task can be decomposed into corresponding task items, so that each component used for data processing in the GPGPU executes corresponding computation based on each task item.
FIG. 1 illustrates an exploded view of a computing task. Wherein a computing task may be represented by a thread Grid (Grid), a thread Grid may be broken down into Work groups (Work groups), and a Work group may be broken down into Work items (Work items), wherein a Work item may be understood as the smallest computational unit defined within a Work group. In performing a specific operation, an operation process for one work item may be regarded as one thread block, and the thread block may be further decomposed into a plurality of thread bundles (also referred to as thread groups, wave, or warp). A Thread bundle is a collection of multiple threads that the GPGPU hardware last executed in minimal parallel, and a Thread bundle may include 64 threads (Thread, which is the minimal granularity of execution in the GPGPU).
Fig. 2 illustrates an exemplary architecture diagram of a GPGPU, as shown in fig. 2, which may include a Compute kernel (also referred to as a Compute Unit CU) 11 and a workgroup scheduler module 12.
Where the number of compute cores 11 is typically multiple, a workgroup may be allocated to one compute core for execution while the graphics processor processes the compute tasks. The work group scheduling module 12 is used for performing allocation and scheduling of work groups.
With continued reference to FIG. 2, the compute kernel 11 includes an instruction dispatch module 13, and a plurality of Parallel compute units (PU) 14. The parallel computing units 14 are the smallest units in the GPGPU that perform parallel computing, and one thread block may be allocated to one parallel computing unit 14, and the thread bundles in the thread block may be sequentially processed. The instruction scheduling module 13 is configured to schedule an execution process of each thread bundle, and manage a thread bundle queue corresponding to each thread block.
The parallel computing unit 14 may be a single instruction multiple data stream structure, specifically, referring to an optional structure diagram of the parallel computing unit shown in fig. 3, the parallel computing unit may include a vector general purpose register slice, an arithmetic logic unit (ALU, arithmetic and logic unit) and a local data sharing memory, where the ALU is used to process one thread, and may be understood as one thread channel, where different thread channels share shared hardware resources in the parallel computing unit, such as the vector general purpose register slice and the local data sharing memory.
In the embodiment of the invention, the unique label can be assigned to the thread channel as the hardware identifier of the thread channel, so that the thread channel for processing the thread can be determined based on the hardware identifier, further the hardware information of the thread channel corresponding to each thread for parallel processing can be determined, and a basis is provided for accurately reflecting the actual running condition of the bottom hardware in the process of processing tasks.
In an alternative example, taking a program that performs parallel data operations as an object program, the object program may include a main program for running on a main processor and a co-program for running on a coprocessor (e.g., a GPU Kernel program in a GPGPU). When the target program is operated, the main program controls the main processor to write the instructions and data of the co-program into the coprocessor, and the coprocessor performs specific operation based on the instructions and the data. Based on this, an embodiment of the present invention provides an optional debug architecture, and referring to an optional schematic diagram of a debug architecture data flow shown in fig. 4, the debug architecture includes a debugger located at a host processor end, and a debug agent located at a coprocessor end. The debugger is used for carrying out debugging analysis on the target program, and the debugging agent is used for carrying out debugging analysis on the collaborative program, so that data acquisition is carried out based on interaction cooperation of two ends, and the actual running condition of the bottom hardware in the task processing process is determined.
Based on the above-mentioned debugging architecture, the embodiment of the invention further provides an information acquisition method, an information acquisition device and related equipment, wherein the information acquisition method comprises the following steps: setting breakpoint information for a co-program in a target program, so as to control a debugging agent to acquire running information of each thread in a thread group of the co-program and hardware information of a thread channel corresponding to the running information based on the breakpoint information in the running process of the co-program; the breakpoint information is used for marking the start and stop positions of information acquisition, and the co-program is a program running on the coprocessor; the hardware information of the thread channel comprises a hardware identifier of the thread channel and state information of the thread channel; and acquiring information acquired by the debugging agent to obtain the operation data of the co-program in hardware.
It can be seen that, in the embodiment of the invention, the start-stop position required to collect information is determined by setting breakpoint information, and based on the breakpoint information, the coprocessor is controlled to collect the running information of each thread in the thread group of the target program and the hardware information of the corresponding thread channel, so that the actual running condition of the bottom hardware in the task processing process is accurately reflected, and whether the algorithm for executing the parallel computing task accords with the characteristics of the hardware architecture is determined, thereby providing a basis for improving the processing efficiency of the parallel computing task.
The information acquisition scheme provided by the embodiment of the invention is further described below with reference to specific examples.
In an alternative example, referring to an alternative flow diagram of an information collection method provided in fig. 5, the information collection method may include:
step S10: the debugger sets breakpoint information for a co-program in the target program, wherein the breakpoint information is used for marking the start and stop positions of information acquisition;
the target program is a program which needs to execute parallel data operation, and the target program can comprise a co-program and a main program, wherein the main program is a program running on a main processor, and the co-program is a program running on a coprocessor.
It can be understood that, before information collection, breakpoint information is set for a co-program in a target program to determine a specific start and stop position of information collection, so that information collection can be performed based on the breakpoint information. Optionally, the breakpoint information can also indicate the start and stop time of information acquisition to both ends (the main processor end and the coprocessor end) by triggering a message interaction flow between the main processor and the coprocessor. In particular, the breakpoint information may be, for example, an interrupt code for executing sending an interrupt message to the host processor, or may be a trap instruction that triggers interaction between the host processor and the coprocessor, which is not limited in this disclosure.
It should be noted that the breakpoint information is set in the co-program of the target program, so that information can be collected based on the breakpoint information in the execution process of the co-program.
Step S11: in the running process of the co-program, the debugging agent collects running information of each thread in a thread group of the co-program and hardware information of a corresponding thread channel based on breakpoint information in the co-program;
wherein, in the running process of the target program, the running of the co-program can be controlled. Specifically, the target program may be executed under the control of the debugger, or may be triggered to execute by other events, for example, based on an instruction trigger of a user, and in the process of executing the target program, when the coprocessor is required to execute a parallel computing task, the target program may send a co-program (specifically, may be a set of instruction data) to the coprocessor, and notify the coprocessor to execute the co-program.
Correspondingly, in the running process of the co-program, when the breakpoint information is running, the corresponding node can be marked, so that the start and stop positions of information acquisition are marked. Optionally, the breakpoint information may include start breakpoint information and end breakpoint information, where the start breakpoint information is used to mark a start node for information collection, and the end breakpoint information is used to mark an end node for information collection.
In an alternative example, when the coprocessor runs the co-program to the breakpoint information, the breakpoint information may trigger a message interaction flow between the main processor and the coprocessor, so that a co-program driver and a debugger at the main processor end can learn that the co-program has been run to a node marked by the breakpoint information, and accordingly, the debugger and the debug agent enter an interaction mode. The message interaction flow between the main processor and the coprocessor can be initiated breakpoint information or terminated breakpoint information.
It can be understood that when the initial node of information collection, i.e. the co-program runs to the initial breakpoint information, the debugging agent starts collection of the running information of each thread in the thread group of the co-program and the hardware information of the corresponding thread channel based on the initial breakpoint information.
The running information of each thread in the thread group can include the sending and finishing time stamp of the thread group in the thread channel, the time stamp of each instruction of the execution co-program, and the like.
The hardware information of the thread channel comprises a hardware identifier of the thread channel and state information of the thread channel. The hardware identifier of the thread channel may assign a unique reference number to the thread channel, and the hardware identifier may correspond to a hardware processing unit where the thread channel is located (the hardware processing unit may be, for example, a parallel computing unit or a specific single instruction multiple data processor), so that the thread channel and the hardware processing unit to which the thread channel belongs may be determined simultaneously based on the hardware identifier. The state information of the thread channel is used for identifying the state of the thread channel, for example, whether the thread channel is in an idle state, a dead state, an executing state, a special instruction state and the like can be identified.
Step S12: the debug agent sends the collected information to the debugger;
and sending the acquired information to a debugger so that the debugger can obtain the running data of the co-program in hardware.
Step S13: and the debugger acquires the information acquired by the debugging agent to obtain the running data of the co-program in hardware.
After the debugger sends the acquired information, the debugger can acquire the information acquired by the debugging agent, so that the debugger can analyze the running condition of the co-program on the hardware level based on the acquired information, further determine whether an algorithm adopted by the co-program accords with the characteristics of a hardware architecture, and provide a basis for improving the processing efficiency of parallel computing tasks.
In an alternative example, the coprocessor may include a memory, and the debug agent may store the operational information in the memory after collecting the operational information. Correspondingly, in step S13, the debugger may obtain the running information collected by the debug agent by accessing the video memory of the coprocessor. Correspondingly, the debugging agent sends the acquired information to the debugger based on the debugging and the access to the video memory of the coprocessor.
It will be appreciated that the data stored in the video memory may be directly processed based on the corresponding instructions, for example, analyzing, displaying the running information stored in the video memory, etc. Accordingly, referring to another optional flowchart of an information collecting method shown in fig. 6, in this example, after executing step S13, the method further includes:
step S14: sending an analysis instruction to the video memory to analyze the operation information in the video memory into graphic information;
the step of analyzing the operation information may be performed by the main processor or may be performed by the coprocessor, which is not specifically limited herein. It will be appreciated that the host processor or co-processor may implement parsing of the running information according to specific parsing instructions. Optionally, if the debug agent of the coprocessor performs analysis on the running information, the running information in the video memory may be analyzed into graphics information by acquiring the analysis instruction.
And analyzing the operation information in the video memory into graphic information to provide a basis for displaying the operation information.
Step S15: sending a display instruction to the display memory to display the graphic information to a preset device;
The step of presenting the graphics information is performed by a coprocessor. Specifically, the graphic information can be displayed to a preset device by acquiring the display instruction. The preset device may be a display device or a terminal device with a display function, and the invention is not limited herein.
In an alternative example, referring to the illustration example of one type of graphics information shown in fig. 7, where, based on different Thread channels, a corresponding Thread group and threads within the Thread group (Thread is shown in the figure), for example, thread0 in Thread group 0 is correspondingly executed by Thread channel 0, and the position in the figure is shown as "Thread 0/Thread group 0", which may be used to show the execution order of each Thread within a Thread channel and the execution order of each Thread within different Thread channels, for example, based on the display in fig. 7, thread channel 0 first executes "Thread 0/Thread group 0", and then executes "Thread 0/Thread group 1", and then executes "Thread 0/Thread group 0" within Thread channel 0 before "Thread 1/Thread group 0" in relation to Thread channel 1. In a further alternative example, the portion of fig. 7 used to present the thread (i.e., the portion outlined by the dashed line in the figure) may further present other information corresponding to the thread, and referring to the one of the thread presenting examples shown in fig. 8, the portion may further present vector arithmetic instructions, tensor arithmetic instructions, channel status indications, and the like corresponding to the thread.
And intuitively displaying the running information to enable a user to judge the running condition of the target program in the coprocessor and determine whether an algorithm for executing the parallel computing task accords with the hardware architecture characteristics of the coprocessor.
In an alternative example, the breakpoint information may be an interrupt code, where the interrupt code is used to send an interrupt message to the host processor, and accordingly, referring to an alternative flowchart of step S10 shown in fig. 9, the step S10 may include:
step S101: entering a debugging mode of a collaborative program;
the debugger may start the co-program and then debug the mode, or attach the debugger to the process of the co-program, so as to then debug the mode of the co-program.
Entering a debugging mode of the collaborative program, so that the debugging of the collaborative program can be realized, including modification, adjustment and the like of codes.
Step S102: interrupt codes are inserted at breakpoints of the co-program, so that when the co-program runs to the breakpoint position, interrupt messages are sent to the processor.
The breakpoint of the co-program can be understood as a boundary point in the co-program code, where information collection is required and information collection is not required, and it can be understood that the breakpoint of the co-program can be a starting point for information collection or an ending point for information collection.
In the debugging process of the co-program, interrupt codes can be inserted into the break points of the co-program, so that the break point registration can be completed in a debugger and a debugging agent. In one particular example, the debugger may modify instructions in the co-program based on monitoring instructions (e.g., PTRACE instructions) to insert interrupt code in the co-program.
It can be understood that when the co-program runs to the breakpoint position, the information acquisition flow of the debug agent can be triggered, meanwhile, an interrupt message can be sent to the main processor, and the running progress of the co-program is notified to the debugger, so that the debugger can determine whether to enter an interaction mode with the debug agent.
Optionally, the debugger may enter an interaction mode with the debug agent based on the start breakpoint information, or may enter an interaction mode with the debug agent based on the end breakpoint information. The debugger can enter an interaction mode with the debugging agent after receiving the interrupt message corresponding to the termination breakpoint information, and correspondingly, the debugger controls the debugging agent to execute the collected information to be sent to the debugger in the interaction mode, so that the debugger obtains the information collected by the debugging agent and obtains the running data of the co-program in hardware. Or after receiving the interrupt message corresponding to the start breakpoint information, the debugger enters an interaction mode with a debugging agent; under the interaction mode, the debugger controls the debugging agent to collect the running information of the thread group of the target program on the thread channel based on the breakpoint information, and the collected information is sent to the debugger, so that the debugger can obtain the information collected by the debugging agent, and the running data of the co-program in hardware can be obtained.
In an alternative example, when the debugger enters the interaction mode based on the initial breakpoint information, the debugger can also control the debugging agent to enter the single-step debugging mode, so that the debugging agent can be controlled to control the instructions of the executed co-program one by one, and the debugging agent is controlled to collect the running information of each thread in the thread group corresponding to the executed instructions and the hardware information of the corresponding thread channel, so that fine regulation and control of the co-program are realized.
In an alternative example, the debugger may control the debug agent to enter a single step mode based on a user entered debug command (e.g. the single step command stepi of GDB (GNU Debugger)).
Specifically, in the single-step debugging mode, the debugging agent can control the coprocessor to trigger an interrupt message and suspend the execution of the co-program every time the coprocessor executes an instruction of the co-program, wherein the interrupt message is used for notifying a debugger of the main processing end of the processing node of the co-program, and correspondingly, the debugger further controls the debugging agent based on interaction with the debugging agent, so that the co-program is controlled.
It should be noted that, the debugging agent starts the information collection flow based on the initial breakpoint information, and in the single-step debugging mode, the debugging agent can collect information one by one based on the executed instructions and send the collected information to the debugger. Each time the coprocessor executes an instruction, the instruction can be understood as the last instruction that has been executed.
Accordingly, referring to still another optional flowchart of an information collection method shown in fig. 10, in the single step debug mode, the debug agent collects corresponding information in step S11, which may specifically be:
step S111: collecting the running information of each thread in a thread group corresponding to the executed previous instruction and the hardware information of a thread channel corresponding to the running information;
it will be appreciated that after an instruction is executed, it will be understood that the last instruction that was executed. Thus, the debug agent can collect the running information of each thread in the thread group corresponding to the last executed instruction and the hardware information of the corresponding thread channel.
Correspondingly, after the information is collected, step S12 sends the collected information to the debugger, so that the debugger obtains the running information of each thread in the thread group corresponding to the executed previous instruction collected by the debug agent and the hardware information of the corresponding thread channel.
Correspondingly, in step S13, the debugger may include:
step S131: acquiring running information of each thread in a thread group corresponding to the executed previous instruction acquired by the debugging agent and hardware information of a thread channel corresponding to the running information;
Step S132: updating the operation data of the co-program in hardware according to the acquired information;
the operation data of the co-program in hardware is the sum of acquired acquisition data.
It can be understood that after the running information of the executed instructions is acquired one by one, the corresponding running information is summarized and updated, so that the complete running data of the co-program in hardware can be obtained.
In another alternative example, the target program may have inserted therein debugger information (e.g., DWARF) that includes locations of lines of source code in the target program and/or locations of entries of functions in the target program. Accordingly, referring to another alternative flowchart of step S10 shown in fig. 11, step S10 may include:
step S103: loading debugging symbol information in a target program;
it will be appreciated that during compilation of target program source code, debug code options may be specified to insert debug symbol information in the target program. The debug symbol information may include an address in the target program corresponding to each line of source code and an address of an entry of each function (including a cpu function and a kernel function) in the target program. After the debugger is started, the debug symbol information may be loaded.
Step S104: searching a loading address corresponding to the breakpoint of the target program according to the debugging symbol information;
specifically, when a breakpoint needs to be set for the target program, a loading address of the breakpoint corresponding to the target program in the memory can be searched. The breakpoint may be a specific source code line number, or a function name of a function.
Step S105: replacing the searched instruction of the loading address with a trap instruction so that the trap instruction is used as breakpoint information of the target program;
after determining the specific load address of the breakpoint, the instruction of the searched load address may be replaced. Wherein the trap program corresponds to a type of program. Trap instructions in the main program portion of the target program (hereinafter referred to as main program trap instructions) correspond to the program type of the main program, and trap instructions in the co-program portion of the target program (hereinafter referred to as co-program trap instructions) correspond to the program type of the co-program. Correspondingly, in the step of executing the step, the searched instruction of the loading address can be replaced by a main program trap instruction in the main program in the target program; and replacing the searched instruction of the loading address with a coprogram trap instruction in the coprogram in the target program.
In a specific example, if the breakpoint is c++ source code with a line number of 15, executable machine code is generated after the c++ source code is compiled by a c++ compiler. Accordingly, the c++ source code with line number 15 is expressed as a piece of machine code in an ELF (a Linux system binary file format) file after compiling. The loading address corresponding to the breakpoint can be understood as an address for loading the machine code into the memory, and the corresponding replacement process is to replace the first instruction of the address with the trap instruction. It will be appreciated that the debugger may automatically find the load address corresponding to the breakpoint to complete the replacement according to the load information of the target program and the information provided in the ELF.
When the target program (including the co-program and the main program) runs to the trap instruction, the hardware is caused to execute trap processing, so that the current running state information is saved, and meanwhile, an interrupt message is sent to the debugger through an interrupt mechanism.
The information acquisition device provided by the embodiment of the invention is described below, the information acquisition device can be understood as a device in a debugger, and the content of the device described below can be regarded as a functional module required to be set by computer equipment for realizing the information acquisition method provided by the embodiment of the invention. The apparatus content described below may be referred to in correspondence with the method content described above.
Fig. 12 shows a block diagram of an information acquisition device according to an embodiment of the present invention. As shown in fig. 12, the apparatus may include:
the breakpoint setting module 200 is configured to set breakpoint information for a co-program in a target program, so that in the running process of the co-program, a debugging agent is controlled to collect running information of each thread in a thread group of the co-program and hardware information of a corresponding thread channel based on the breakpoint information; the breakpoint information is used for marking the start and stop positions of information acquisition, and the co-program is a program running on the coprocessor; the hardware information of the thread channel comprises a hardware identifier of the thread channel and state information of the thread channel;
and the information acquisition module 210 is configured to acquire information acquired by the debug agent, and obtain operation data of the co-program in hardware.
In some embodiments, the operation information includes: the thread group transmits and completes the time stamp in the thread channel, and executes the time stamp of each instruction of the co-program; the hardware identifier corresponds to a hardware processing unit where the thread channel is located.
In some embodiments, the breakpoint information is an interrupt code, the interrupt code is used for sending an interrupt message to the main processor, and the breakpoint setting module 200 is used for setting breakpoint information for a co-program in the target program, and includes:
Entering a debugging mode of the co-program;
and inserting an interrupt code at the breakpoint of the co-program so as to send an interrupt message to the main processor when the co-program runs to the breakpoint position.
In some embodiments, the breakpoint setting module 200 is configured to insert an interrupt code at a breakpoint of a co-program, including:
instructions in the co-program are modified based on the monitoring instructions to insert interrupt code in the co-program.
In some embodiments, the breakpoint information includes start breakpoint information and end breakpoint information;
after receiving the interrupt message corresponding to the termination breakpoint information, the debugger enters an interaction mode with a debugging agent; in the interactive mode, the information obtaining module 210 performs a step of obtaining the information collected by the debug agent, so as to obtain the operation data of the co-program in hardware;
or after receiving the interrupt message corresponding to the start breakpoint information, the debugger enters an interaction mode with a debugging agent; in the interaction mode, the debugger executes the steps of acquiring the running information of each thread in the thread group of the co-program and the hardware information of the corresponding thread channel based on the breakpoint information, and the information acquisition module 210 executes the steps of acquiring the information acquired by the debugging agent to obtain the running data of the co-program in hardware.
In some embodiments, the step of the debugger executing the step of controlling the debug agent to collect the running information of each thread in the thread group of the co-program and the hardware information of the corresponding thread channel based on the breakpoint information is specifically that in the interactive mode, the debug agent is controlled to enter a single-step debug mode to control the instructions of the executed co-program one by one, and the debug agent is controlled to collect the running information of each thread in the thread group corresponding to the executed instructions and the hardware information of the corresponding thread channel.
In some embodiments, when the debug agent is in the single step debug mode, the information obtaining module 210 is configured to obtain information collected by the debug agent, including:
acquiring running information of each thread in a thread group corresponding to an executed previous instruction acquired by a debugging agent and hardware information of a thread channel corresponding to the running information;
updating the operation data of the co-program in hardware according to the acquired information; the operation data of the co-program in hardware is the sum of acquired acquisition data.
In some embodiments, the coprocessor includes a memory, and the debug agent stores the operational information in the memory after collecting the operational information; the information obtaining module 210 is configured to obtain the operation information collected by the debug agent, and includes:
Accessing a video memory of the coprocessor to acquire running information acquired by the debugging agent;
in some embodiments, the information acquisition device further comprises:
the analysis instruction sending module 220 is configured to send an analysis instruction to the video memory, so as to analyze the running information in the video memory into graphic information;
and the display instruction sending module 230 is configured to send a display instruction to the display memory, so as to display the graphic information to a preset device.
In some embodiments, debug symbol information is inserted into the target program; the debugging sign information comprises the position of each row of source codes in the target program and/or the position of each function entry in the target program;
the breakpoint setting module 200 is configured to set breakpoint information for a co-program in a target program, and includes:
loading the debugging symbol information in the target program;
searching a loading address corresponding to the breakpoint of the target program according to the debugging symbol information;
and replacing the searched instruction of the loading address with a trap instruction so that the trap instruction is used as breakpoint information of the target program.
In some embodiments, the breakpoint setting module 200 is configured to replace the instruction of the found load address with a trap instruction, including:
In a main program in the target program, replacing the searched instruction of the loading address with a main program trap instruction;
and replacing the searched instruction of the loading address with a coprogram trap instruction in the coprogram in the target program.
The following describes another information collecting device provided by the embodiment of the present invention, where the information collecting device may be understood as a device in a debug agent, and the content of the device described below may be considered as a functional module required to be set by a computer device to implement the information collecting method provided by the embodiment of the present invention. The apparatus content described below may be referred to in correspondence with the method content described above.
Fig. 13 shows a block diagram of another information acquisition device according to an embodiment of the present invention. As shown in fig. 13, the apparatus may include:
the information acquisition module 300 is configured to acquire, during an operation process of a co-program in a target program, operation information of each thread in a thread group of the co-program and hardware information of a thread channel corresponding to the operation information based on breakpoint information in the co-program; the program co-processor in the target program is a program running on a coprocessor, the breakpoint information is used for marking the start and stop positions of information acquisition, and the hardware information of the thread channel comprises the hardware identifier of the thread channel and the state information of the thread channel;
And the information sending module 310 is configured to send the collected information to a debugger, so that the debugger obtains the operation data of the co-program in hardware.
In some embodiments, the operation information includes: the thread group transmits and completes the time stamp in the thread channel, and executes the time stamp of each instruction of the co-program; the hardware identifier corresponds to a hardware processing unit where the thread channel is located.
In some embodiments, the breakpoint information includes start breakpoint information and end breakpoint information;
after receiving the interrupt message corresponding to the break point termination information, the debugger enters an interaction mode with a debugging agent; in the interactive mode, the information sending module 310 sends the collected information to the debugger, so that the debugger obtains the operation data of the co-program in hardware;
or after receiving the interrupt message corresponding to the start breakpoint information, the debugger enters an interaction mode with a debugging agent; in the interactive mode, the information acquisition module 300 acquires the running information of each thread in the thread group of the co-program and the hardware information of the corresponding thread channel based on the breakpoint information in the co-program, and the information transmission module 310 transmits the acquired information to the debugger, so that the debugger obtains the running data of the co-program in the hardware.
In some embodiments, the information collection module 300 is configured to collect, based on breakpoint information in the co-program, running information of each thread in a thread group of the co-program and hardware information of a thread channel corresponding to the running information, specifically, in an interaction mode, the debug agent enters a single-step debug mode, and the information collection module 300 controls instructions of the executed co-program one by one, and collects running information of each thread in the thread group corresponding to a last instruction executed and hardware information of the thread channel corresponding to the running information.
In some embodiments, the information acquisition device further comprises:
an information storage module 320, configured to store the operation information in the video memory;
the information sending module 310 is configured to send the collected information to a debugger, specifically, the information sending module 310 sends the collected information to the debugger based on the access of the debugger to the video memory of the coprocessor.
In some embodiments, the information acquisition device further comprises:
the analysis instruction acquisition module 330 is configured to acquire an analysis instruction sent by the debugger to the video memory, and analyze the running information in the video memory into graphic information;
And the display instruction acquisition module 340 is configured to acquire a display instruction sent by the debugger to the video memory, and display the graphics information to a preset device.
In some embodiments, a trap instruction is inserted into the target program, and the trap instruction is used as breakpoint information of the target program.
The embodiment of the invention also provides a computer device, which can comprise: at least one memory and at least one processor; the memory stores one or more computer executable instructions, and the processor invokes the one or more computer executable instructions to execute the information acquisition method applied to the debugger provided by the embodiment of the invention and/or execute the information acquisition method applied to the debug agent provided by the embodiment of the invention.
Optionally, fig. 14 is a block diagram of a computer device provided by an embodiment of the present invention, and as shown in fig. 14, the mobile terminal may include: at least one processor 1, at least one communication interface 2, at least one memory 3 and at least one communication bus 4;
in the embodiment of the invention, the number of the processor 1, the communication interface 2, the memory 3 and the communication bus 4 is at least one, and the processor 1, the communication interface 2 and the memory 3 complete the communication with each other through the communication bus 4; obviously, the communication connection illustrations of the illustrated processor 1, communication interface 2, memory 3 and communication bus 4 are only optional;
Alternatively, the communication interface 2 may be an interface of a communication module for performing network communication;
the processor 1 may be a central processing unit CPU, or a specific integrated circuit ASIC (Application Specific Integrated Circuit), or one or more integrated circuits configured to implement embodiments of the present invention.
The memory 3 may comprise a high-speed RAM memory or may further comprise a non-volatile memory, such as at least one disk memory.
The memory 3 stores one or more computer executable instructions, and the processor 1 invokes the one or more computer executable instructions to execute the information collecting method applied to the debugger provided by the embodiment of the present invention and/or execute the information collecting method applied to the debug agent provided by the embodiment of the present invention.
The embodiment of the invention also provides a storage medium which stores one or more computer executable instructions for executing the information acquisition method applied to the debugger and/or executing the information acquisition method applied to the debugging agent and provided by the embodiment of the invention.
The foregoing describes several embodiments of the present invention, and the various alternatives presented by the various embodiments may be combined, cross-referenced, with each other without conflict, extending beyond what is possible embodiments, all of which are considered to be embodiments of the present invention disclosed and disclosed.
Although the embodiments of the present invention are disclosed above, the present invention is not limited thereto. Various changes and modifications may be made by one skilled in the art without departing from the spirit and scope of the invention, and the scope of the invention should be assessed accordingly to that of the appended claims.

Claims (22)

1. An information acquisition method, which is applied to a debugger, comprises the following steps:
setting breakpoint information for a co-program in a target program, so as to control a debugging agent to acquire running information of each thread in a thread group of the co-program and hardware information of a thread channel corresponding to the running information based on the breakpoint information in the running process of the co-program; the breakpoint information is used for marking the start and stop positions of information acquisition, and the co-program is a program running on the coprocessor; the hardware information of the thread channel comprises a hardware identifier of the thread channel and state information of the thread channel, wherein the hardware identifier of the thread channel designates a unique label for the thread channel;
And acquiring information acquired by the debugging agent to obtain the operation data of the co-program in hardware.
2. The method of claim 1, wherein the operation information comprises: the thread group transmits and completes the time stamp in the thread channel, and executes the time stamp of each instruction of the co-program; the hardware identifier corresponds to a hardware processing unit where the thread channel is located.
3. The method according to claim 1, wherein the breakpoint information is an interrupt code, the interrupt code is used to send an interrupt message to the host processor, and the setting the breakpoint information for the co-program in the target program includes:
entering a debugging mode of the co-program;
and inserting an interrupt code at the breakpoint of the co-program so as to send an interrupt message to the main processor when the co-program runs to the breakpoint position.
4. A method according to claim 3, wherein said inserting an interrupt code at a breakpoint of said co-program comprises:
instructions in the co-program are modified based on the monitoring instructions to insert interrupt code in the co-program.
5. A method according to claim 3, wherein the breakpoint information comprises start breakpoint information and end breakpoint information;
After receiving the interrupt message corresponding to the termination breakpoint information, the debugger enters an interaction mode with a debugging agent; executing the step of acquiring the information acquired by the debugging agent under the interaction mode to obtain the operation data of the co-program in hardware;
or after receiving the interrupt message corresponding to the start breakpoint information, the debugger enters an interaction mode with a debugging agent; and in an interactive mode, executing the step of controlling the debugging agent to acquire the running information of each thread in the thread group of the co-program and the hardware information of the corresponding thread channel based on the breakpoint information, and executing the step of acquiring the information acquired by the debugging agent by the debugger to obtain the running data of the co-program in hardware.
6. The method according to claim 5, wherein in the interactive mode, the step of executing the control debug agent collects the running information of each thread in the thread group of the co-program and the hardware information of the corresponding thread channel based on the breakpoint information, specifically, in the interactive mode, executing the step of controlling the debug agent to enter the single-step debug mode so as to control the instructions of the executed co-program one by one, and controlling the debug agent to collect the running information of each thread in the thread group corresponding to the executed instructions and the hardware information of the corresponding thread channel.
7. The method of claim 6, wherein, when the debug agent is in a single-step debug mode, the obtaining information collected by the debug agent comprises:
acquiring running information of each thread in a thread group corresponding to an executed previous instruction acquired by a debugging agent and hardware information of a thread channel corresponding to the running information;
updating the operation data of the co-program in hardware according to the acquired information; the operation data of the co-program in hardware is the sum of acquired acquisition data.
8. The method of claim 1, wherein the coprocessor includes a memory, the debug agent storing the operational information in the memory after collecting the operational information; the obtaining the operation information collected by the debugging agent comprises the following steps:
accessing the video memory of the coprocessor to acquire the running information acquired by the debugging agent.
9. The method of claim 8, wherein after the obtaining the operation information collected by the debug agent, further comprises:
sending an analysis instruction to the video memory to analyze the operation information in the video memory into graphic information;
and sending a display instruction to the display memory so as to display the graphic information to preset equipment.
10. The method of claim 1, wherein debug symbol information is inserted into the target program; the debugging sign information comprises the position of each row of source codes in the target program and/or the position of each function entry in the target program;
the setting breakpoint information for the co-program in the target program comprises the following steps:
loading the debugging symbol information in the target program;
searching a loading address corresponding to the breakpoint of the target program according to the debugging symbol information;
and replacing the searched instruction of the loading address with a trap instruction so that the trap instruction is used as breakpoint information of the target program.
11. The method of claim 10, wherein replacing the instruction of the looked up load address with a trap instruction comprises:
in a main program in the target program, replacing the searched instruction of the loading address with a main program trap instruction;
and replacing the searched instruction of the loading address with a coprogram trap instruction in the coprogram in the target program.
12. An information acquisition method, which is applied to a debugging agent, comprises the following steps:
Acquiring the running information of each thread in a thread group of a co-program and the hardware information of a corresponding thread channel based on breakpoint information in the co-program in the running process of the co-program in a target program; the method comprises the steps that a program in a target program is a program running on a coprocessor, breakpoint information is used for marking starting and stopping positions of information acquisition, hardware information of a thread channel comprises a hardware identifier of the thread channel and state information of the thread channel, and the hardware identifier of the thread channel designates a unique label for the thread channel;
and sending the acquired information to a debugger so that the debugger can obtain the running data of the co-program in hardware.
13. The method of claim 12, wherein the operational information comprises: the thread group transmits and completes the time stamp in the thread channel, and executes the time stamp of each instruction of the co-program; the hardware identifier corresponds to a hardware processing unit where the thread channel is located.
14. The method of claim 12, wherein the breakpoint information includes start breakpoint information and end breakpoint information;
After receiving the interrupt message corresponding to the break point termination information, the debugger enters an interaction mode with a debugging agent; in the interactive mode, the debugging agent executes the step of sending the acquired information to a debugger so that the debugger can obtain the running data of the co-program in hardware;
or after receiving the interrupt message corresponding to the start breakpoint information, the debugger enters an interaction mode with a debugging agent; in the interaction mode, the debugging agent executes the steps of acquiring the running information of each thread in the thread group of the co-program and the hardware information of the corresponding thread channel based on the breakpoint information in the co-program, and the step of sending the acquired information to the debugger so as to enable the debugger to obtain the running data of the co-program in hardware.
15. The method according to claim 14, wherein the step of the debug agent executing the step of collecting the running information of each thread in the thread group of the co-program and the hardware information of the corresponding thread channel based on the breakpoint information in the co-program, specifically, in the interaction mode, the debug agent entering the single step debug mode, controlling the instructions of the executed co-program one by one, and collecting the running information of each thread in the thread group corresponding to the last instruction executed and the hardware information of the corresponding thread channel.
16. The method of claim 12, wherein the coprocessor includes a memory, and after the step of collecting the running information of each thread in the thread group of the coprocessor and the hardware information of the corresponding thread channel, before sending the collected information to the debugger, the method further comprises:
storing the operation information in the video memory;
and the acquired information is sent to a debugger, specifically, the acquired information is sent to the debugger based on the access of the debugger to the video memory of the coprocessor.
17. The method of claim 16, wherein after sending the collected information to the debugger, further comprising:
acquiring an analysis instruction sent to the video memory by the debugger, and analyzing the running information in the video memory into graphic information;
and acquiring a display instruction sent to the video memory by the debugger, and displaying the graphic information to preset equipment.
18. The method of claim 12, wherein a trap instruction is inserted into the target program, and the trap instruction is used as breakpoint information of the target program.
19. An information acquisition device, comprising:
The breakpoint setting module is used for setting breakpoint information for a co-program in a target program, so that in the running process of the co-program, the debugging agent is controlled to acquire running information of each thread in a thread group of the co-program and hardware information of a corresponding thread channel based on the breakpoint information; the breakpoint information is used for marking the start and stop positions of information acquisition, and the co-program is a program running on the coprocessor; the hardware information of the thread channel comprises a hardware identifier of the thread channel and state information of the thread channel, wherein the hardware identifier of the thread channel designates a unique label for the thread channel;
and the information acquisition module is used for acquiring the information acquired by the debugging agent to obtain the operation data of the co-program in hardware.
20. An information acquisition device, comprising:
the information acquisition module is used for acquiring the operation information of each thread in the thread group of the co-program and the hardware information of the corresponding thread channel based on the breakpoint information in the co-program in the operation process of the co-program in the target program; the method comprises the steps that a program in a target program is a program running on a coprocessor, breakpoint information is used for marking starting and stopping positions of information acquisition, hardware information of a thread channel comprises a hardware identifier of the thread channel and state information of the thread channel, and the hardware identifier of the thread channel designates a unique label for the thread channel;
And the information sending module is used for sending the acquired information to the debugger so that the debugger can obtain the operation data of the co-program in hardware.
21. A computer device, comprising: at least one memory and at least one processor; the memory stores one or more computer-executable instructions that the processor invokes to perform the information collection method of any one of claims 1-11 and/or to perform the information collection method of any one of claims 12-18.
22. A storage medium storing one or more computer-executable instructions, the one or more computers being operable to perform the information gathering method of any one of claims 1-11 and/or to perform the information gathering method of any one of claims 12-18.
CN202210668137.9A 2022-06-14 2022-06-14 Information acquisition method and device and related equipment Active CN115048145B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210668137.9A CN115048145B (en) 2022-06-14 2022-06-14 Information acquisition method and device and related equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210668137.9A CN115048145B (en) 2022-06-14 2022-06-14 Information acquisition method and device and related equipment

Publications (2)

Publication Number Publication Date
CN115048145A CN115048145A (en) 2022-09-13
CN115048145B true CN115048145B (en) 2023-04-25

Family

ID=83161258

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210668137.9A Active CN115048145B (en) 2022-06-14 2022-06-14 Information acquisition method and device and related equipment

Country Status (1)

Country Link
CN (1) CN115048145B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117909087A (en) * 2024-03-20 2024-04-19 新华三技术有限公司 Data processing method and device, central processing unit and electronic equipment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113961452A (en) * 2021-09-27 2022-01-21 北京奕斯伟计算技术有限公司 Hard interrupt method and related device
CN114218067A (en) * 2021-04-30 2022-03-22 无锡江南计算技术研究所 Heterogeneous many-core software debugging device and method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4388518B2 (en) * 2005-11-01 2009-12-24 株式会社ソニー・コンピュータエンタテインメント Thread debugging device, thread debugging method and program
CN101295279B (en) * 2007-04-29 2012-05-09 国际商业机器公司 Method and system for debugging program in multi-threading surroundings
WO2015079291A1 (en) * 2013-11-29 2015-06-04 Freescale Semiconductor, Inc. Code injection for conditional breakpoints
CN104834504A (en) * 2015-04-28 2015-08-12 江苏宏云技术有限公司 SOC dual-core structure based on master-slave cooperative work of MCU and DSP and working method thereof
US11126537B2 (en) * 2019-05-02 2021-09-21 Microsoft Technology Licensing, Llc Coprocessor-based logging for time travel debugging
CN112256570B (en) * 2020-10-19 2023-08-11 网易(杭州)网络有限公司 Remote debugging method, device, equipment and storage medium
CN113986771B (en) * 2021-12-29 2022-04-08 北京壁仞科技开发有限公司 Method and device for debugging target program code and electronic equipment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114218067A (en) * 2021-04-30 2022-03-22 无锡江南计算技术研究所 Heterogeneous many-core software debugging device and method
CN113961452A (en) * 2021-09-27 2022-01-21 北京奕斯伟计算技术有限公司 Hard interrupt method and related device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨群 ; 李笑天 ; 何虎 ; .面向Superscalar与VLIW混合架构处理器的调试器设计.计算机应用与软件.2015,(05),全文. *

Also Published As

Publication number Publication date
CN115048145A (en) 2022-09-13

Similar Documents

Publication Publication Date Title
KR101522444B1 (en) Source code processing method, system, and program
CN110427252B (en) Task scheduling method, device and storage medium based on task dependency relationship
CN110389834B (en) Method and device for submitting deep learning training task
US9015724B2 (en) Job dispatching with scheduler record updates containing characteristics combinations of job characteristics
CN109388537B (en) Operation information tracking method and device and computer readable storage medium
US9069517B1 (en) Graphical interface for monitoring the status of concurrent computing units executing a concurrent computing process
US7945900B2 (en) Debugging tool for debugging multi-threaded programs
EP1870810A2 (en) Kernel-aware debugging system, medium, and method
US20070168985A1 (en) Thread debugging device, thread debugging method and information storage medium
CN109656782A (en) Visual scheduling monitoring method, device and server
CN109886859B (en) Data processing method, system, electronic device and computer readable storage medium
JP2000235511A (en) Performance analysis method for application program and system/device used for performance analysis for application program
US5361352A (en) Method for debugging in a parallel computer system and system for the same
CN115048145B (en) Information acquisition method and device and related equipment
CN111797157B (en) Data processing method, system, electronic equipment and storage medium
CN115357515B (en) Debugging method and device of multi-core system, computer equipment and storage medium
US9405564B2 (en) System and method for targeting commands to concurrent computing units executing a concurrent computing process
US7996658B2 (en) Processor system and method for monitoring performance of a selected task among a plurality of tasks
Corbett Modeling and analysis of real-time ada tasking programs
US20160202993A1 (en) Instruction stream tracing of multi-threaded processors
CN113254350A (en) Flink operation testing method, device, equipment and storage medium
CN109800166B (en) Debugging method and device for embedded real-time operating system
CN112749062A (en) Server program monitoring method and device, computer equipment and storage medium
CN110750346A (en) Task operation optimization method, device, terminal and storage medium
CN115470926B (en) Quantum computing task processing device and method and quantum computer

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant