Cultural advice

The Australian National University acknowledges, celebrates and pays our respects to the Ngunnawal and Ngambri people of the Canberra region and to all First Nations Australians on whose traditional lands we meet and work, and whose cultures are among the oldest continuing cultures in human history.

Aboriginal and Torres Strait Islander peoples are advised that ANU Library collections may include images, names, voices, and other representations of deceased persons.

Material in the collection may contain terms, language or views that reflect the period in which the item was created and may be considered inappropriate today.

Swift : a flexible framework for runtime performance tuning

Loading...
Thumbnail Image

Date

Authors

Armstrong, Warren Haley

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Many computational kernels require extensive tuning to achieve optimal performance. The tuning process for some kernels must take into account the architecture on which they are executing, the input data that they are processing and the changing levels of contention for limited system resources. Maintaining performance in the face of such fluctuating influences requires kernels to continuously adapt. Swift is a software tool that performs this adaptation. It can be applied to many different target applications. Such an approach is more efficient than developing application-specific code for continuous tuning. Swift performs controlled experiments to gauge the performance of the target application. Results from these experiments are used to guide the execution of the target application. Swift performs periodic re-evaluations of the application and updates the application if environmental conditions or the internal state of the application have caused performance to degrade. The frequency of evaluation is scaled with its likely necessity -Swift performs few evaluations until it detects a potential performance degradation, at which point more detailed assessments are conducted. Swift is constructed using the DynInst library to modify and tune the executing kernel. The effectiveness of Swift depends on the computational expense of utilising this library. A suite of micro-benchmarks was developed to measure this expense. These benchmarks are not specific to Swift, and could guide the design of future DynInst-enabled applications. Swift was applied to tune sparse matrix-vector multiplication kernels. Tun{u00AC}ing such kernels requires selecting a matrix storage format and the associated multiplication algorithm. The choice of format depends on the characteristics of the matrix being multiplied as well as on prevailing system conditions and the number of multiplications being conducted. Swift was evaluated using both simulated environments and physical hardware. Simulated evaluation demonstrated that Swift could correctly select the best matrix format and could react to changing conditions. Evaluations on physical hardware demonstrated that automatic tuning was viable under certain conditions.

Description

Keywords

Citation

Source

Book Title

Entity type

Access Statement

Open Access

License Rights

Restricted until