現在位置: ホーム 研究支援 アプリ開発支援 アプリ公開の手引 アプリの作成 アプリの最適化 最適化/高速化対応

最適化/高速化対応

作者: admin — 最終変更 2014年07月29日 14時36分
2013年前期に行われたCMSI計算科学技術特論Aの講義「第1回 プログラム高速化の基礎」をもとに、プログラムの最適化/高速化対応に関して解説しています。

(注) ビデオ画像の開始位置は、回線状況によりずれが生じる可能性があります。その場合は再読み込みを行ってください。

 


1. はじめに

 

 


2. 単体(CPU)最適化の方法

 

 


3. 演算パイプライン

 

 


4. ループ内連続アクセス

 

 


5. ループアンローリング

  • ループアンローリング ( P.49, ビデオ画像 )
  • ループアンローリングの例(行列-行列積、C言語) ( P.50, ビデオ画像 )
  • ループアンローリングの例(行列-行列積、Fortran言語) ( P.55, ビデオ画像 )

 

 


6. キャッシュライン衝突

 

 


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. その他の高速化技術

 

 


9. 数値計算ライブラリの利用