Back to results
US 12,585,568 B2Granted
Methods and apparatus to perform instruction-level graphics processing unit (GPU) profiling based on binary instrumentation
AssigneeIntel Corporation
InventorsKonstantin Levit-Gurevich, Aleksey Alekseev, Michael Berezalsky, Sion Berkowits, Julia Fedorova, Anton V. Gorshkov, Sunpyo Hong, Noam Itzhaki, Arik Narkis
Life of this patent
Estimating the term…
Abstract
Disclosed examples include generating instrumented code by inserting profiling instructions at insertion points in code; outputting the instrumented code for execution by second programmable circuitry; and accessing profiling data generated by the second programmable circuitry based on the instrumented code.
Claims20
A system comprising:
- interface circuitry;
- machine-readable instructions;
- and
- at least one first programmable circuit to be programmed by the machine-readable instructions to:
- access an instrumentation schema, the instrumentation schema generated by a profiling application based on compiled binary code, the instrumentation schema to identify points in the compiled binary code, the profiling application separate from a compiler that generated the compiled binary code;
- generate instrumented code by:
- inserting profiling instructions at the points in the compiled binary code identified by the instrumentation schema;
- inserting a memory allocation profiling instruction in the compiled binary code, the memory allocation profiling instruction to cause at least one second programmable circuit to allocate memory space at a location of memory accessible by one or more of the at least one second programmable circuit and by one or more of the at least one first programmable circuit;
- and
- specifying an address of the location of the memory in the compiled binary code, the location at the address to store profiling data, the profiling data to be generated by the one or more of the at least one second programmable circuit based on the instrumented code;
- communicate the instrumented code to a runtime system to cause execution of the instrumented code by the one or more of the at least one second programmable circuit;
- and
- access the profiling data, generated by the one or more of the at least one second programmable circuit, at the location in the memory accessible by the one or more of the at least one second programmable circuit and by the one or more of the at least one first programmable circuit.
10 more elements
A non-transitory computer readable medium comprising instructions to cause at least one first programmable circuit to at least:
- access an instrumentation schema, the instrumentation schema generated by a profiling application based on compiled binary code, the instrumentation schema to specify insertion points in the compiled binary code;
- generate instrumented code by:
- inserting profiling instructions at respective ones of the insertion points in the compiled binary code specified by the instrumentation schema;
- inserting a memory allocation profiling instruction in the compiled binary code, the memory allocation profiling instruction to cause at least one second programmable circuit to allocate memory space at a location of memory accessible by one or more of the at least one second programmable circuit and by one or more of the at least one first programmable circuit;
- and
- specifying an address of the location of the memory in the compiled binary code, the location at the address to store profiling data, the profiling data to be generated by the one or more of the at least one second programmable circuit based on the instrumented code;
- communicate the instrumented code to a runtime system to cause execution of the instrumented code by the one or more of the at least one second programmable circuit;
- and
- access the profiling data, generated by the one or more of the at least one second programmable circuit, at the location in the memory accessible by the one or more of the at least one second programmable circuit and by the one or more of the at least one first programmable circuit.
6 more elements
An apparatus comprising:
- interface circuitry to access an instrumentation schema, the instrumentation schema generated by a profiling application based on compiled binary code, the instrumentation schema to identify points in the compiled binary code, the profiling application separate from a compiler that generated the compiled binary code;
- and
- at least one first programmable circuitry to execute binary instrumentation instructions to:
- generate instrumented code by:
- inserting profiling instructions at respective ones of the points in the compiled binary code based on the instrumentation schema;
- inserting a memory allocation profiling instruction in the compiled binary code, the memory allocation profiling instruction to cause at least one second programmable circuitry to allocate memory space at a location of memory accessible by one or more of the at least one second programmable circuitry and by one or more of the at least the first programmable circuitry;
- and
- specifying an address of the location of the memory in the compiled binary code, the location at the address to store profiling data, the profiling data to be generated by the one or more of the at least one second programmable circuitry based on the instrumented code;
- and
- access the profiling data, generated by the one or more of the at least the second programmable circuitry, at the location in the memory accessible by the one or more of the at least one second programmable circuitry and by the one or more of the at least the first programmable circuitry.
7 more elements
Dependencies are inferred from the claim text.