Memory allocation system for multi-tier memory
First Claim
1. A method performed by a computer system for collecting execution statistics of a program, the method comprising:
- during execution of the program,specifying an event for collecting statistics upon occurrences of the event;
upon an occurrence of the event,retrieving an instruction address of a load instruction associated with the event;
retrieving a data address of data of the load instruction associated with the event;
collecting memory request statistics associated with the event;
collecting memory bandwidth utilization statistics associated with the event; and
associating with the occurrence of the event the instruction address, the data address, the memory request statistics, and the memory bandwidth utilization statistics as collected statistics for the occurrence of the event; and
during execution of the program or after execution of the program;
accessing a data structure map that maps data structures of the program to the memory addresses within an address space of the program to which the data structures are allocated; and
associating the collected statistics for an occurrence of the event with the data structure whose memory addresses include the data address associated with the event.
1 Assignment
0 Petitions
Accused Products
Abstract
A system is provided for allocating memory for data of a program for execution by a computer system with a multi-tier memory that includes LBM and HBM. The system accesses a data structure map that maps data structures of the program to the memory addresses within an address space of the program to which the data structures are initially allocated. The system executes the program to collect statistics relating to memory requests and memory bandwidth utilization of the program. The system determines an extent to which each data structure is used by a high memory utilization portion of the program based on the data structure map and the collected statistics. The system generates a memory allocation plan that favors allocating data structures in HBM based on the extent to which the data structures are used by a high memory utilization portion of the program.
1 Citation
22 Claims
-
1. A method performed by a computer system for collecting execution statistics of a program, the method comprising:
-
during execution of the program, specifying an event for collecting statistics upon occurrences of the event; upon an occurrence of the event, retrieving an instruction address of a load instruction associated with the event; retrieving a data address of data of the load instruction associated with the event; collecting memory request statistics associated with the event; collecting memory bandwidth utilization statistics associated with the event; and associating with the occurrence of the event the instruction address, the data address, the memory request statistics, and the memory bandwidth utilization statistics as collected statistics for the occurrence of the event; and during execution of the program or after execution of the program; accessing a data structure map that maps data structures of the program to the memory addresses within an address space of the program to which the data structures are allocated; and associating the collected statistics for an occurrence of the event with the data structure whose memory addresses include the data address associated with the event. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computing system for collecting execution statistics of a program, the computing system comprising:
-
one or more computer-readable storage mediums storing computer-executable instructions for controlling the computing system to;
upon an occurrence of the event,retrieve an instruction address of a load instruction associated with the event; retrieve a data address of data of the load instruction associated with the event; collect memory statistics associated with the event; and associate with the occurrence of the event the instruction address, the data address, and the memory statistics, as collected statistics for the occurrence of the event; access a data structure map that maps data structures of the program to the memory addresses within an address space of the program to which the data structures are allocated; and associate the collected memory statistics for an occurrence of the event with the data structure whose memory addresses include the data address associated with the event; and one or more processors for executing the computer-executable instructions stored in the one or more computer-readable storage mediums. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
-
Specification