High-performance routines of Basic Linear Algebra Subprograms (BLAS) are frequently required in the field of numerical calculations. We have implemented Dynamically Load-balanced BLAS (DL-BLAS) to enhance the per- formance of BLAS when other tasks use the CPU resources of multi-core CPU architectures. DL-BLAS tiles matrices into submatrices to construct subtasks and dynamically assigns tasks to CPU cores. We found that the dimensions of the sub- matrices used in DL-BLAS affect the performance. To achieve high performance, we must solve an optimization problem in which the variables are the dimensions of the submatrices. The search space of the optimization problem is so vast that an exhaustive search is unrealistic. We propose an autotuning search algorithm that consists of Diagonal Search, Reductive Search, and Parameter Selection. The pro- posed autotuning algorithm provides semioptimal parameters in realistic computing time. Using the proposed algorithm, we obtain parameters that provide the best performance in most cases. As a result, in several performance evaluation tests, DL-BLAS achieved a higher performance than ATLAS or GotoBLAS.
['Yuta Sawa', 'Reiji Suda']
Autotuning Method for Deciding Block Size Parameters in Dynamically Load-Balanced BLAS