本章では,ソフトウェア自動チューニングにおける性能パラメタ推定の位置付けについ て述べた.
1. ユーザが数値計算ライブラリのソフトウェア自動チューニングを行なうタイミング には,(a)数値計算ライブラリをユーザの計算機環境にインストールするときのイ ンストール時ソフトウェア自動チューニングと,ユーザプログラムを実際に実行す るときの実行時ソフトウェア自動チューニングの2つがあることを示した.
2. それぞれのタイミングでのソフトウェア自動チューニングの役割として,
(a)インストール時ソフトウェア自動チューニングでは,計算機環境に対する チューニングを行なうこと,ユーザプログラムに関する情報がないので,行列 サイズなどについては多くのパタンを調べる必要があることを示した.
(b)実行時ソフトウェア自動チューニングでは,ユーザプログラムに関する情報と して,行列サイズなどを特定することができるので,範囲を絞った性能パラメ タ推定ができること,ユーザプログラムの実行中にソフトウェア自動チューニ ングを行なうので,その時間を限りなくユーザに見せないようにする必要があ ることを示した.
3. ソフトウェア自動チューニングにおける研究課題を整理し,研究課題として,(a) 対象とする計算機環境の拡大,(b)新規の数値計算アルゴリズム開発に伴う性能パ ラメタの抽出,(c)性能パラメタの最適値の導出,(d)推定した最適値の数値計算 ライブラリへの組み込み,(e)ユーザプログラムの精度,実行時間の保証について,
述べた.その中で本論文では,(c)性能パラメタ最適値の導出のための性能パラメ タ推定法を対象とする.
4. 性能パラメタ推定法について,関連研究の分類を行なった.(a) 全数探索:すべて の性能パラメタの組み合わせパタンについて,数値計算ライブラリを実測,(b) 選 択した値の中で全数探索:性能パラメタのとり得る値の中で事前に複数の値を選択 し,その中から,最適な値を決定,(c) 標本点を用いた推定:性能パラメタのとり得 る値の中から,複数の標本点を選択し数値ライブラリを実行.その実測値から推定 を実施し,標本点でない値も含めて最適値を推定する.これらの方式に対し,第4 の方式として標本点を逐次に追加する新しい性能パラメタ推定方式を提案する.こ の方式のこれまでの3つの方式との根本的な違いは,探索範囲を事前に固定して決 めてしまうか,あるいは,探索範囲を柔軟に可変にするかにある.この柔軟性によ り,効率のよい性能パラメタ推定を実現することができることを3章以下で示す.
3 標本点逐次追加型性能パラメタ推定法の提案 3.1 新しい性能パラメタ推定法の検討方針
数値計算ライブラリに組み込まれている性能パラメタを,ユーザの持つ計算機環境で実 行するユーザプログラムに最適に設定するのが自動チューニングである.そのために,性 能パラメタのとり得る値を変えながら数値計算ライブラリを繰り返し実行し,その実行 時間を測定する.数値計算ライブラリの性能は主要な複数のループ構造の性能で決まる [97].それぞれのループ構造の中に,パラメタ化された性能チューニング項目を設定する.
しかしながら,各々のループ構造の最適な性能パラメタ値の組合せを調べつくすには,膨 大な時間がかかる.さらに,インストール時自動チューニングの段階では,ユーザプログ ラムを実際に実行する時に必要とする問題サイズが不明なので,問題サイズを変えなが ら,数値計算ライブラリを繰り返し実行する必要がある.しかしながら,すべての問題サ イズを用いてあらかじめ実行することは不可能である.そのため,性能パラメタのとり得 る値からいくつかの点を選択し標本点とし,その標本点を用いて性能パラメタ推定を行な うことにより,自動チューニングを行なう.
実測データをもとに,実測していないパラメタのとり得る値を含めて,コスト定義関数 を用いてデータフィッティングによる最適なパラメタ値の推定を行なう.ここで,コス ト定義関数とは,評価の基準となる関数であり,最適化問題のコストを定義する.自動 チューニングにおいては数値計算ライブラリの性能として実行時間をコストとする*12.
通常,実測結果に基づくパラメタ推定は,事前に与えられた標本点における実測データ だけを用いて行なわれる.標本点が適切に選択されているかどうかが,パラメタ推定の精 度,つまり,最適なパラメタ値を推定できるかどうかの条件になる.この標本点の選択は 一般に難しい.数値計算ライブラリの性能パラメタの自動チューニングにおいても,実行 時間をコストとしたコスト定義関数が,さまざまの計算機環境およびユーザプログラムに
*12本来,コストとしては,性能以外に,使用するメモリ量,精度,使用量などが考えられるが,本論文では,
性能(=実行時間)に特化して扱う
おいて,どのような特徴を持っているかはわからない.
ソフトウェア自動チューニングにおける標本点の選択について考察する.ここでは,対 象とする計算機環境があり,(時間が許せば)どの性能パラメタのとり得る値についてでも 数値計算ライブラリを実測することができる.実測済みの標本点だけでは結果が不十分と なれば,必要とする標本点をさらに追加して実測することも可能である.したがって,最 初から実測データを揃えるのではなく,まず,コスト定義関数の形状を表現するのに必要 な最低限の数の実測データを用いた推定から開始し,推定結果が十分であるか否かを判定 する.もし十分でなければ,実測すべき標本点を逐次追加する.このことより,推定の効 率と精度を向上できる可能性がある.この場合,推定結果が十分であるか,そうでないか をどのように判断するかの基準や,標本点を逐次追加するときに,どのような基準で選択 するかを決める必要がある.
一方,コスト定義関数については,一般に,多項式近似などの関数近似法などが用いら れる.関数近似法では,その関数をあらわす係数パラメタを最小二乗法などで決定する.
しかし,この方法では関数形そのものの特性が出てくるために,よりよい近似を求めるこ とが難しい.さらに,今回提案する標本点を逐次追加する推定法では,繰り返しコスト定 義関数を計算するので計算量を抑えること,および少ない標本点でも安定した結果が得ら れることが必要となる.したがって,コスト定義関数として,最初から多くの標本点を必 要とする関数(たとえば,区分多項式のB-Splineなど)を用いることも難しい.
以上をまとめると,新しい性能パラメタのチューニング方式では,次の2点について検 討をする必要がある.
1. コスト定義関数の選択
(a)少ない標本点から計算できること
(b)再計算のための計算量(=実行時間)が小さいこと 2. 標本点を動的に追加する方法を用いる時の2つの基準
(a)標本点を追加するか否かの終了判定基準
(b)標本点を追加すると判定したときの選択基準
!"
!
!"#
!$
s s s s
%&('*),+,-(.0/213,4576,8:9<;>=?&
s
'*@,A,9CB E FGH
IJ
HK
L
M
NO
P
図4 近似関数f と実測データの集合yの関係
本論文では,各々について提案を行ない,それらを組み合わせることにより,「標本点 逐次追加型性能パラメタ推定手法」を実現する[91][92][93].