最適化/高速化対応
作者: admin
â
最終変更
2014年07月29日 14時36分
2013年前期に行われたCMSI計算科学技術特論Aの講義「第1回 プログラム高速化の基礎」をもとに、プログラムの最適化/高速化対応に関して解説しています。
(注) ビデオ画像の開始位置は、回線状況によりずれが生じる可能性があります。その場合は再読み込みを行ってください。
1. はじめに
- スーパコンピュータとは ( P.8, ビデオ画像 )
- スーパーコンピュータで用いる単位 ( P.9, ビデオ画像 )
- スーパコンピュータ用語 ( P.10, ビデオ画像 )
- ムーアの法則 ( P.11, ビデオ画像 )
- スーパーコンピュータ性能推移 (主に日本製、理論性能) ( P.12, ビデオ画像 )
- スーパコンピュータのランキング ( P.13, ビデオ画像 )
- 現在のランキング ( P.14, ビデオ画像 )
2. 単体(CPU)最適化の方法
- 最近の計算機のメモリ階層構造 ( P.16, ビデオ画像 )
- より直観的には… ( P.17, ビデオ画像 )
- 東京大学FX10のメモリ構成例 ( P.18, ビデオ画像 )
- 東京大学FX10のノードのメモリ構成例 ( P.20, ビデオ画像 )
- 東京大学FX10全体メモリ構成 ( P.21, ビデオ画像 )
- FX10計算ノードの構成 ( P.22, ビデオ画像 )
- 東京大学FX10のCPU(SPARC64IXfx)の詳細情報 ( P.23, ビデオ画像 )
3. 演算パイプライン
- 流れ作業 ( P.25, ビデオ画像 )
- 計算機におけるパイプライン処理の形態 ( P.28, ビデオ画像 )
- 演算器の場合 ( P.29, ビデオ画像 )
- 演算パイプラインのまとめ ( P.31, ビデオ画像 )
- 実際のプロセッサの場合 ( P.32, ビデオ画像 )
- FX10のハードウェア情報 ( P.33, ビデオ画像 )
4. ループ内連続アクセス
- 単体最適化のポイント ( P.35, ビデオ画像 )
- 言語に依存した配列の格納方式の違い ( P.36, ビデオ画像 )
- 行列積コード例(C言語) ( P.37, ビデオ画像 )
- 行列の積 ( P.38, ビデオ画像 )
5. ループアンローリング
- ループアンローリング ( P.49, ビデオ画像 )
- ループアンローリングの例(行列-行列積、C言語) ( P.50, ビデオ画像 )
- ループアンローリングの例(行列-行列積、Fortran言語) ( P.55, ビデオ画像 )
6. キャッシュライン衝突
- 不連続アクセスとは ( P.61, ビデオ画像 )
- キャッシュメモリの構成 ( P.62, ビデオ画像 )
- キャッシュとキャッシュライン ( P.63, ビデオ画像 )
- キャッシュライン衝突の例 ( P.64, ビデオ画像 )
- メモリ・インターリービング ( P.68, ビデオ画像 )
- キャッシュライン衝突が起こる条件 ( P.69, ビデオ画像 )
- キャッシュライン衝突への対応 ( P.70, ビデオ画像 )
7. ブロック化
- ブロック化によるアクセス局所化 ( P.72, ビデオ画像 )
- ブロック化によるキャッシュミスヒット削減例 ( P.73, ビデオ画像 )
- 配列とキャッシュライン構成の関係 ( P.74, ビデオ画像 )
- 行列-行列積の場合(ブロック化しない) ( P.75, ビデオ画像 )
- 行列-行列積の場合(ブロック化する:2要素) ( P.78, ビデオ画像 )
- 行列積コード(C言語) : キャッシュブロック化なし ( P.80, ビデオ画像 )
- 行列-行列積のブロック化のコード(C言語) ( P.81, ビデオ画像 )
- 行列-行列積のブロック化のコード(Fortran言語) ( P.82, ビデオ画像 )
- キャッシュブロック化時のデータ・アクセスパターン ( P.83, ビデオ画像 )
- 行列-行列積のブロック化のコードのアンローリング(C言語) ( P.85, ビデオ画像 )
- 行列-行列積のブロック化のコードのアンローリング(Fortran言語) ( P.86, ビデオ画像 )
8. その他の高速化技術
- 共通部分式の削除 ( P.88, ビデオ画像 )
- コードの移動 ( P.90, ビデオ画像 )
- ループ中のIF文 ( P.91, ビデオ画像 )
- ソフトウェア・パイプライニングの強化 ( P.92, ビデオ画像 )
9. 数値計算ライブラリの利用
- 数値計算ライブラリ ( P.94, ビデオ画像 )
- 疎行列用ライブラリの特徴 ( P.95, ビデオ画像 )
- BLAS ( P.96, ビデオ画像 )
- レベル1 BLAS ( P.98, ビデオ画像 )
- レベル2 BLAS ( P.99, ビデオ画像 )
- レベル3 BLAS ( P.100, ビデオ画像 )
- 典型的なBLASの性能 ( P.101, ビデオ画像 )
- BLAS利用例 ( P.102, ビデオ画像 )
- BLASの機能詳細 ( P.103, ビデオ画像 )
- GOTO BLASとは ( P.104, ビデオ画像 )
- LAPACK ( P.105, ビデオ画像 )
- LAPACKの命名規則 ( P.106, ビデオ画像 )
- インタフェース例:DGESV ( P.107, ビデオ画像 )
- ScaLAPACK ( P.110, ビデオ画像 )
- ScaLAPACKのソフトウェア構成図 ( P.111, ビデオ画像 )
- BLACSとPBLAS ( P.112, ビデオ画像 )
- ScaLAPACKの命名規則 ( P.113, ビデオ画像 )
- インタフェース例:PDGESV ( P.114, ビデオ画像 )
- BLAS利用の注意 ( P.118, ビデオ画像 )
- レポート課題 ( P.119, ビデオ画像 )