GB2617868A - Application programming interface to monitor resource usage - Google Patents

Application programming interface to monitor resource usage Download PDF

Info

Publication number
GB2617868A
GB2617868A GB2207088.2A GB202207088A GB2617868A GB 2617868 A GB2617868 A GB 2617868A GB 202207088 A GB202207088 A GB 202207088A GB 2617868 A GB2617868 A GB 2617868A
Authority
GB
United Kingdom
Prior art keywords
computer program
data structures
api
processors
information
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.)
Pending
Application number
GB2207088.2A
Other versions
GB202207088D0 (en
Inventor
Anthony Fontaine David
Bachan John
Wen Ke
Xu Yang
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
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
Priority claimed from US17/720,234 external-priority patent/US20220334890A1/en
Application filed by Nvidia Corp filed Critical Nvidia Corp
Priority claimed from PCT/US2022/024828 external-priority patent/WO2022221538A1/en
Publication of GB202207088D0 publication Critical patent/GB202207088D0/en
Publication of GB2617868A publication Critical patent/GB2617868A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3888Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages

Abstract

Apparatuses, systems, and techniques to generate one or more data structures to be used to monitor use of information by a computer program. In at least one embodiment, one or more data structures to be used to monitor use of information by a computer program are generated, based on, for example, CUDA or other parallel computing platform code.

Claims (24)

1. A processor, comprising: one or more circuits to perform an application programming interface (API) to generate one or more data structures to be used to monitor use of information by a computer program.
2. The processor of claim 1, wherein the one or more data structures indicate at least a number of references associated with the computer program.
3. The processor of claim 1, wherein the information includes at least a region of memory.
4. The processor of claim 1, wherein the one or more circuits are to perform the API based at least in part on a parameter value indicating a location corresponding to the one or more data structures.
5. The processor of claim 1, wherein the one or more circuits are further to execute one or more functions based on at least in part on the use of the information by the computer program.
6. The processor of claim 1, wherein the computer program is executable by one or more graphics processing units (GPUs)
7. A system, comprising: one or more computers having one or more processors to perform an application programming interface (API) to generate one or more data structures to be used to monitor use of information by a computer program.
8. The system of claim 7, wherein the one or more processors are further to: obtain code indicating at least the API; and perform the API by at least executing the code.
9. The system of claim 7, wherein the one or more data structures encode a count of one or more references associated with the information.
10. The system of claim 7, wherein the one or more data structures indicate one or more destructor functions.
11. The system of claim 7, wherein the computer program is executable by at least one or more parallel processing units (PPUs).
12. The system of claim 7, wherein the information includes at least input data to the computer program.
13. A machine-readable medium having stored thereon a set of instructions, which if performed by one or more processors, cause the one or more processors to at least: perform an application programming interface (API) to generate one or more data structures to be used to monitor use of information by a computer program.
14. The machine-readable medium of claim 13, wherein the set of instructions further include instructions, which if performed by the one or more processors, cause the one or more processors to perform the API based at least in part on a parameter value indicating a number of references.
15. The machine-readable medium of claim 13, wherein the use of the information is indicated by one or more references used by the computer program.
16. The machine-readable medium of claim 13, wherein the set of instructions further include instructions, which if performed by the one or more processors, cause the one or more processors to modify the one or more data structures based on the use of the information by the computer program.
17. The machine-readable medium of claim 13, wherein the set of instructions further include instructions, which if performed by the one or more processors, cause the one or more processors to associate the one or more data structures with one or more graph data structures.
18. The machine-readable medium of claim 13, wherein the computer program is executable by one or more general purpose graphics processing units (GPGPUs).
19. A method, comprising: performing an application programming interface (API) to generate one or more data structures to be used to monitor use of information by a computer program.
20. The method of claim 19, further comprising executing one or more functions based at least in part on a number of references indicated by the one or more data structures.
21. The method of claim 19, further comprising performing the API based at least in part on one or more parameter values indicating one or more functions.
22. The method of claim 19, wherein the API is a runtime API.
23. The method of claim 19, wherein the computer program is executable by one or more central processing units (CPUs).
24. The method of claim 19, further comprising obtaining one or more status indications as a result of performing the API.
GB2207088.2A 2021-04-14 2022-04-14 Application programming interface to monitor resource usage Pending GB2617868A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163174999P 2021-04-14 2021-04-14
US17/720,234 US20220334890A1 (en) 2021-04-14 2022-04-13 Application programming interface to indicate increased resource usage
US17/720,236 US20220334900A1 (en) 2021-04-14 2022-04-13 Application programming interface to indicate increased resource usage
US17/720,231 US20220334899A1 (en) 2021-04-14 2022-04-13 Application programming interface to monitor resource usage
PCT/US2022/024828 WO2022221538A1 (en) 2021-04-14 2022-04-14 Application programming interface to monitor resource usage

Publications (2)

Publication Number Publication Date
GB202207088D0 GB202207088D0 (en) 2022-06-29
GB2617868A true GB2617868A (en) 2023-10-25

Family

ID=83803991

Family Applications (1)

Application Number Title Priority Date Filing Date
GB2207088.2A Pending GB2617868A (en) 2021-04-14 2022-04-14 Application programming interface to monitor resource usage

Country Status (5)

Country Link
JP (1) JP2024514370A (en)
KR (1) KR20220143635A (en)
CN (1) CN115698960A (en)
DE (1) DE112022000373T5 (en)
GB (1) GB2617868A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170093661A1 (en) * 2015-09-29 2017-03-30 Netapp, Inc. Methods and systems for monitoring network storage system resources by an api server

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170093661A1 (en) * 2015-09-29 2017-03-30 Netapp, Inc. Methods and systems for monitoring network storage system resources by an api server

Also Published As

Publication number Publication date
JP2024514370A (en) 2024-04-02
DE112022000373T5 (en) 2023-10-19
KR20220143635A (en) 2022-10-25
GB202207088D0 (en) 2022-06-29
CN115698960A (en) 2023-02-03

Similar Documents

Publication Publication Date Title
KR101558831B1 (en) Subbuffer objects
US20160092183A1 (en) Compiler Caching for Runtime Routine Redundancy Tracking
CN108701022B (en) Unified assertion in shader for graphics processing unit
US9817643B2 (en) Incremental interprocedural dataflow analysis during compilation
US10761821B1 (en) Object oriented programming model for graphics processing units (GPUS)
US8359291B2 (en) Architecture-aware field affinity estimation
CN109074625B (en) Prefixes for each shader of graphics processing
US9639391B2 (en) Scaling past the java virtual machine thread limit
US9836288B2 (en) Eager and optimistic evaluation of promises
JP5936135B2 (en) Information processing apparatus, information processing method, and program
GB2617868A (en) Application programming interface to monitor resource usage
US11169777B2 (en) Multiple modes for handling overflow conditions resulting from arithmetic operations
US20180081581A1 (en) Device and method for determining data placement destination, and program recording medium
Collange et al. Interval arithmetic in CUDA
US8387023B2 (en) Instrumentation of computer-based application software
US11144280B2 (en) Method and apparatus for processing data
KR102315279B1 (en) Apparatus and method for determining a work-group size
GB2617623A (en) Application programming interface to locate incomplete graph code
WO2016028487A1 (en) Skipping of data storage
KR102644951B1 (en) Arithmetic Logic Unit Register Sequencing
AU2016203532B2 (en) Parallel runtime execution on multiple processors
CA3192952A1 (en) Execution of a conditional statement by an arithmetic and/or bitwise unit
CN114443123A (en) Cross-platform implementation method and device of bracket electric control system, electronic equipment and storage medium
CN115904677A (en) Memory allocation method, device, computer readable storage medium and program product
Möckela et al. Flexible Implementation of Orbital Propagators in Heterogenous Computing Environments