Abstract:
Methods and apparatus for reducing memory latency in a software application are disclosed. A disclosed system uses one or more helper threads to prefetch variables for a main thread to reduce performance bottlenecks due to memory latency and/or a cache miss. A performance analysis tool is used to profile the software application's resource usage and identifies areas in the software application experiencing performance bottlenecks. Compiler-runtime instructions are generated into the software application to create and manage the helper thread. The helper thread prefetches data in the identified areas of the software application experiencing performance bottlenecks. A counting mechanism is inserted into the helper thread and a counting mechanism is inserted into the main thread to coordinate the execution of the helper thread with the main thread and to help ensure the prefetched data is not removed from the cache before the main thread is able to take advantage of the prefetched data.
Abstract:
PROBLEM TO BE SOLVED: To provide a method and a device for reducing a memory latency in a software application. SOLUTION: A performance analysis tool 208 is used to profile a resource use amount of the software application 210, and specifies an area of the software application 210 experiencing a performance bottleneck. A compiler runtime command is generated within the software application, to generate and manage a helper thread. The helper thread prefetches a data in the specified areas of the software application experiencing the performance bottleneck. A counting mechanism is inserted into the helper thread and the counting mechanism is inserted into a main thread, to help ensure the prefetched data is not removed from a cache before the main thread is able to take advantage of the prefetched data. COPYRIGHT: (C)2011,JPO&INPIT