今年に行った作業
・多倍長計算
あまり深くまでは行わなかったが、Cell の弱点である Double 計算を float-float で演算してみようとした。しかし float-float に変換する際や、演算自体も大きくなってしまい、効果は薄くなってしまった。もう一度やってみると面白いのかもしれない。
・Cell 用 BLAS
Cell は確かに高速だが、その制約の厳しさなど導入するには敷居が高い。特にアライメント揃っていないデータを SPE に転送できない、LS(ローカルストア)が 256KB など、通常の CPU に比べて癖がある。IBM から正式に発表されたが、こちらも「行数は~の倍数、列数は~の倍数」と使いづらい。
・Shortest Path 高速化
Dijkstra 法を高速化するために良いデータ構造などを検証した。今までの最短路の高速化に関してはどのデータ構造を用いるかという議論であったようだが、最短路問題は多くのデータを用いるので、実際にはどのようなデータアクセスをすればいいかを焦点にする方がよさそうである。メモリアクセスを最適化することでかなりのオーバーヘッドを軽減できるだろう。
いろいろ手をつけてはいるが、現在は ShortestPath 高速化をメインにしている。来年度は今年以上に時間を取れそう(授業がなくなる)なので、より頑張っていこうと思う。
・多倍長計算
あまり深くまでは行わなかったが、Cell の弱点である Double 計算を float-float で演算してみようとした。しかし float-float に変換する際や、演算自体も大きくなってしまい、効果は薄くなってしまった。もう一度やってみると面白いのかもしれない。
・Cell 用 BLAS
Cell は確かに高速だが、その制約の厳しさなど導入するには敷居が高い。特にアライメント揃っていないデータを SPE に転送できない、LS(ローカルストア)が 256KB など、通常の CPU に比べて癖がある。IBM から正式に発表されたが、こちらも「行数は~の倍数、列数は~の倍数」と使いづらい。
・Shortest Path 高速化
Dijkstra 法を高速化するために良いデータ構造などを検証した。今までの最短路の高速化に関してはどのデータ構造を用いるかという議論であったようだが、最短路問題は多くのデータを用いるので、実際にはどのようなデータアクセスをすればいいかを焦点にする方がよさそうである。メモリアクセスを最適化することでかなりのオーバーヘッドを軽減できるだろう。
いろいろ手をつけてはいるが、現在は ShortestPath 高速化をメインにしている。来年度は今年以上に時間を取れそう(授業がなくなる)なので、より頑張っていこうと思う。