The PHiPAC v1.0 Matrix-Multiply Distribution.

TitleThe PHiPAC v1.0 Matrix-Multiply Distribution.
Publication TypeTechnical Report
Year of Publication1998
AuthorsBilmes, J. A., Asanović K., Chin C-W., & Demmel J.
Other Numbers1151
Abstract

Modern microprocessors can achieve high performance on linear algebra kernels but this currently requires extensive machine-specific hand tuning. We have developed a methodology whereby near-peak performance on a wide range of systems can be achieved automatically for such routines. First, by analyzing current machines and C compilers, we've developed guidelines for writing Portable, High-Performance, ANSI C (PHiPAC, pronounced "fee-pack"). Second, rather than code by hand, we produce parameterized code generators. Third, we write search scripts that find the best parameters for a given system. We report on a BLAS GEMM compatible multi-level cache-blocked matrix multiply generator which produces code that achieves around 90% of peak on the Sparcstation-20/61, IBM RS/6000-590, HP 712/80i, SGI Power Challenge R8k, and SGI Octane R10k, and over 80% of peak on the SGI Indigo R4k. In this paper, we provide a detailed description of the PHiPAC V1.0 matrix multiply distribution. We describe the code generator in detail including the various register and higher level blocking strategies. We also document the organization and parameters of the search scripts. This technical report is an expanded version of a previous paper that appeared in ICS97.

URLhttp://www.icsi.berkeley.edu/ftp/global/pub/techreports/1998/tr-98-035.pdf
Bibliographic Notes

ICSI Technical Report TR-98-035

Abbreviated Authors

J. Bilmes, K. Asanovic, C.-W. Chin, and J. Demmel

ICSI Publication Type

Technical Report