08 年 月一般財団法人高度情報科学技術研究機構 本資料を教育目的等で利用いただいて構いません 利用に際しては以下の点に留意いただくとともに 下記のヘルプデスクにお問い合わせ下さい 本資料は 構成 文章 画像などの全てにおいて著作権法上の保護を受けています 本資料の一部あるいは全部について いかなる

Size: px
Start display at page:

Download "08 年 月一般財団法人高度情報科学技術研究機構 本資料を教育目的等で利用いただいて構いません 利用に際しては以下の点に留意いただくとともに 下記のヘルプデスクにお問い合わせ下さい 本資料は 構成 文章 画像などの全てにおいて著作権法上の保護を受けています 本資料の一部あるいは全部について いかなる"

Transcription

1 チューニング技法入門 : キャッシュチューニング太田幸宏 ( 高度情報科学技術研究機構 ) yota@rist.or.jp 教科書青山幸也 チューニング技法虎の巻 ( 平成 8 年 8 月 日版 ) 質問について ( 主に ) 休憩時間に受け付けます もご利用ください ( 後日, 回答します ) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング

2 08 年 月一般財団法人高度情報科学技術研究機構 本資料を教育目的等で利用いただいて構いません 利用に際しては以下の点に留意いただくとともに 下記のヘルプデスクにお問い合わせ下さい 本資料は 構成 文章 画像などの全てにおいて著作権法上の保護を受けています 本資料の一部あるいは全部について いかなる方法においても無断での転載 複製を禁じます 本資料に記載された内容などは 予告なく変更される場合があります 本資料に起因して使用者に直接または間接的損害が生じても 著作者はいかなる責任も負わないものとします 問い合わせ先 : ヘルプデスク helpdesk[-at-]hpci-office.jp([-at-] にしてください ) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング

3 アウトライン 第 章チューニングの基礎経過時間, CPU 時間, ホットスポット第 章コンパイルオプションコンパイラ ( 最適化 ) を上手に使う第 章パフォーマンス測定方法時間計測の方法, ホットスポットの特定第 4 章キャッシュチューニングメモリ階層 ( キャッシュの役割 ), キャッシュ ( 手早く取れるデータ ) の活用第 5 章その他のチューニング 高価 な作業 無駄な計算の削減, 条件分岐 (if 文 ), ループアンローリング第 7 章数値計算ライブラリーよく調整されたコード利用 (BLAS, LAPACK, FFTW) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング

4 4- キャッシュとは 記憶装置の階層構造 (Memory hierarchy) (4-) 記憶装置 ( メモリ, キャッシュ, レジスター ) の 物理的 特徴 *) 高速 or 大容量 高価低速 or 小容量 低価 速度 容量 コスト ( 値段 ) のバランス メモリの階層構造 ( 階層構造において ) キャッシュの役割 ( データの動き ) を理解キャッシュの効率よい利用 パフォーマンスの向上 *) 内田啓一郎, 小柳滋 コンピュータアーキテクチャ ( オーム社 ) 章渡辺宙志 高速化チューニングとその関連技術 (CMSI 計算科学技術特論 A 第 9 回 ); P. van der Lindern エキスパート C プログラミング 知られざる C の深層 ( 梅原系訳 ) ( アスキー,996) chapter 7 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 4

5 4- キャッシュとは Case study: バランス のとれたアーキテクチャー ( 図 4--) プログラム ( 実行可能モジュール ) a.out の処理の流れ機械語命令とデータから構成 各々専用の 場所 に転送 解読 or 演算 Question: 処理の流れ をどのように計算機中で実現するか? メモリ ( 低速 大容量 ) とレジスタ ( 高速 小容量 ) の 段構成 [ 図 4--()] 性能と価格のバランスデータ : メモリ上に一度格納処理にとって重要な部分 : レジスタへ転送 解読 演算 メモリ ( 低速 / 安価 / 大容量 ) 命令レジスタ ( 高速 / 高価 / 小容量 ) 機械語命令 命令 データ データレジスタ ( 高速 / 高価 / 小容量 ) データ a.out: ロード ( 実行 ) モジュール HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 5

6 4- キャッシュとは Case study: バランス のとれたアーキテクチャー ( 図 4--) プログラム ( 実行可能モジュール ) a.out の処理の流れ機械語命令とデータから構成 各々専用の 場所 に転送 解読 or 演算 Question: 処理の流れ をどのように計算機中で実現するか? 高速 大容量メモリのみ [ 図 4--()] 高コスト 解読 演算 メモリ ( 低速 / 安価 / 大容量 ) 機械語命令 データ a.out: ロード ( 実行 ) モジュール HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 6

7 4- キャッシュとは Case study: バランス のとれたアーキテクチャー ( 図 4--) プログラム ( 実行可能モジュール ) a.out の処理の流れ機械語命令とデータから構成 各々専用の 場所 に転送 解読 or 演算 Question: 処理の流れ をどのように計算機中で実現するか? キャッシュの挿入 [ 図 4--()] メモリ ( 低速 大容量 ) とレジスタ ( 高速 小容量 ) の中間的な存在必要性に応じた階層的なデータ格納 ここのデータの動きを追う 高速 / 高価 / 小容量 / 必要性高い 命令レジスタ 命令 データ データレジスタ 命令キャッシュ 命令 データ データキャッシュ メモリ 機械語命令 データ メモリ 低速 / 安価 / 大容量 / 必要性低い HDD/SSD 機械語命令 データ HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 7

8 4- キャッシュとは Memo 典型的なデバイスのデータ転送特性 *) バンド幅 (bandwidth): 単位時間あたりのデータ転送量 (throughput) レイテンシ (latency): データ転送の立ち上げに 必ず かかる時間 L キャッシュ L/L キャッシュ メインメモリ HDD 0 8 レイテンシ (sec) 0 7 バンド幅 (bytes/sec) *) Hager and Wellein, Introduction to High Performance Computing for Scientists and Engineers (CRC) p.64 Parallel I/O in Practice; HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 8

9 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルの設定 ( 図 4--) ( 実際の例 4- 節 ) データレジスタ : 個 ; データキャッシュ : 段 (-way); メモリ データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 メモリ内もキャッシュラインに対応するよう小区画に分かれている 各段は小区画 ( キャッシュライン ) に分かれている HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 9

10 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルの設定 ( 図 4--) ( 実際の例 4- 節 ) データレジスタ : 個 ; データキャッシュ : 段 (-way); メモリ Memo 京 (SPARC64 TM VIIIfx) の場合 ( 倍精度浮動小数点レジスタ : 56 個 ( コア当り ) 次命令キャッシュ : KiByte ( 段, 段当りキャッシュラインは 8 個 ) 次データキャッシュ : KiByte ( 段, 段当りキャッシュラインは 8 個 ) 画 を描いてみるとよい KiB, 段 ==> 6 (=/) KiB per 段 6 KiB ==> 6/(8 bytes) = 048 要素 ( 倍精度浮動小数点 ) 8 ラインの幅 = L (bytes) 6 04 bytes = 8 L ==> L = 8 bytes ==> 8/(8 bytes) = 6 要素 ( 倍精度浮動小数点 ) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 0

11 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルの設定 ( 図 4--) ( 実際の例 4- 節 ) 動作に関する約束 メモリ - キャッシュ間でデータはキャッシュライン単位で移動 ( コピー ) データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 A() A() A() A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング

12 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルの設定 ( 図 4--) ( 実際の例 4- 節 ) 動作に関する約束 メモリ - キャッシュ間は, 同じ数字のラベル同士で移動 ( コピー ) (,, ) データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 A() A() A() A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング

13 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルの設定 ( 図 4--) ( 実際の例 4- 節 ) 動作に関する約束 データはキャッシュ上の空いている段に移動 ( コピー ) データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 A(6) A(7) A(8) A(4) A(5) A(6) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング

14 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step 0 配列データはメモリ上に ( キャッシュの構造から見て ) 連続的 に配置 [ 図 4--()] メモリ上の配置開始位置は状況依存 ( 図では左上からと仮定 ) データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 4

15 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step ループで I=[ 図 4--()] A() が必要 データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 I= A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 5

16 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step ループで I=[ 図 4--()] A() が必要 メモリからキャッシュに転送 データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 I= A() A() A() ( 低速 ) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 6

17 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step ループで I=[ 図 4--()] A() が必要 メモリからキャッシュに転送 キャッシュからレジスタへ A() が転送 演算 I= データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 ( 高速 ) A() A() A() A() A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 7

18 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step ループで I=[ 図 4--()] A() が必要 メモリからキャッシュに転送 キャッシュからレジスタへ A() が転送 演算 演算後, レジスタからキャッシュへ A() が転送 I= データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 ( 高速 ) A() A() A() A() A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 8

19 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step ループで I=[ 図 4--()] A() が必要 データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 I= A() A() A() A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 9

20 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step ループで I=[ 図 4--()] A() が必要 既にあるキャッシュ上のデータをレジスターへ転送 演算 I= データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 A() ( 高速 ) A() A() A() A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 0

21 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step ループで I=[ 図 4--()] A() が必要 既にあるキャッシュ上のデータをレジスターへ転送 演算 演算後, レジスターからキャッシュへ A() が転送 I= データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 A() ( 高速 ) A() A() A() A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング

22 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step ループで I=4[ 図 4--()] A(4) が必要 メモリからキャッシュへ転送 データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 I=4 A() A() A() A(4) A(5) A(6) ( 低速 ) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング

23 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step ループで I=4[ 図 4--()] A(4) が必要 メモリからキャッシュへ転送 キャッシュからレジスタへ A(4) が転送 演算 データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 I=4 A(4) ( 高速 ) A() A() A() A() A() A() A(4) A(4) A(5) A(5) A(6) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング

24 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step ループで I=4[ 図 4--()] A(4) が必要 メモリからキャッシュへ転送 キャッシュからレジスタへ A(4) が転送 演算 演算後, レジスターからキャッシュへ A(4) が転送 データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 I=4 A(4) ( 高速 ) A() A() A() A() A() A() A(4) A(4) A(5) A(5) A(6) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 4

25 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step 4 ループで I=8 の処理が終わった時点の状態 [ 図 4--()] キャッシュは 段目, 段目どちらも満杯 データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 I=8 A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 5

26 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step 5 ループで I=9 図 4--()] A(9) が必要 データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 I=9 A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 6

27 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step 5 ループで I=9 図 4--()] A(9) が必要 古いデータがキャッシュより追い出し メモリ内データと異なればメモリ内データを変更 データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 I=9 A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) ( 低速 ) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 7

28 4- キャッシュとは レジスター キャッシュ メモリ間のデータ転送 (4-) 簡易モデルによるデータ転送の説明 ( 図 4--) Step 5 ループで I=9 図 4--()] A(9) が必要 古いデータがキャッシュより追い出し メモリ内データと異なればメモリ内データを変更 空いたキャッシュラインにメモリから転送 以後, I=6 まで同様の処理 データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 I=9 A(9) A(0) A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) ( 低速 ) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 8

29 4- キャッシュとは Memo キャッシュ上データとメモリ上のデータの同期 ( 一貫性 ) *) 今回の方式 : ライトバックキャッシュ上からデータの追い出し メモリ上のデータ更新 *) 内田啓一郎, 小柳滋 コンピュータアーキテクチャ ( オーム社 ) 章 データレジスタ ( 高速 ) データキャッシュメモリ ( 低速 ) 段目 段目 I=9 A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) ( 低速 ) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 9

30 4- キャッシュミスを少なくするための考慮点 キャッシュミスとは (4-) 計算に必要なデータがキャッシュにない状態キャッシュミス : メモリからのデータ転送が要求 パフォーマンス低下データ転送速度 : ( レジスタ キャッシュ ) > ( キャッシュ メモリ ) キャッシュミスを抑える [] ゼロは難しい ( 例 : 初期段階ではメモリから転送する必要あり ) 一度キャッシュに入ったデータの有効利用 大事 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 0

31 ここまでのまとめ 第 4 章キャッシュチューニングキャッシュの役割 ( メモリ階層 ) レジスタ ( 演算器に最も近いデータ格納領域 ) とメモリの中間必要性が高いデータを格納し, 高速にレジスタへ転送 キャッシュミスキャッシュ上のデータが有効利用されないことミスの原因を理解 : ( ある程度は ) ハードウェアの知識が必要着眼点 : レジスタ - キャッシュ - メモリ間のデータ転送の動きを理解 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング

32 アウトライン 第 章チューニングの基礎経過時間, CPU 時間, ホットスポット第 章コンパイルオプションコンパイラ ( 最適化 ) を上手に使う第 章パフォーマンス測定方法時間計測の方法, ホットスポットの特定第 4 章キャッシュチューニングメモリ階層 ( キャッシュの役割 ), キャッシュ ( 手早く取れるデータ ) の活用第 5 章その他のチューニング 高価 な作業 無駄な計算の削減, 条件分岐 (if 文 ), ループアンローリング第 7 章数値計算ライブラリーよく調整されたコード利用 (BLAS, LAPACK, FFTW) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング

33 4- キャッシュミスを少なくするための考慮点 次元配列 ( 重ループ ) とキャッシュミス (4-) ストライド : メモリ上での処理される配列要素間の距離 ( 図 4--, 図 4--) 次元配列の考慮点キャッシュミスを少なくするためには, ストライドを短くすること Case study: 次元配列のアクセスパターン ( 図 4--, 図 4--) どちらがキャッシュが有効利用されているか? ( 簡易モデルで考える ) キャッシュ : 段, キャッシュライン : 個, ラインあたりに 要素入力可能 ストライド ストライド 4 ストライド A[] A[] A[] A[4] A[5] A[6] A[7] A[8] A[9] A[0] A[] A[] A[] A[4] A[5] A[6] A[7] A[8] A[9] A[0] A[] A[] A[] A[4] A[5] A[6] A[7] A[8] A[9] A[0] A[] A[] A[] A[4] A[5] A[6] でキャッシュミス発生 ; ストライド 4 A[] A[] A[] A[4] A[5] A[6] A[7] A[8] A[9] のデータはキャッシュ上 A[0] A[] A[] A[] A[4] A[5] A[6] A[7] A[8] A[9] A[0] A[] A[] A[] A[4] A[5] A[6] A[7] A[8] A[9] A[0] A[] A[] A[] A[4] A[5] A[6] HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング

34 4- キャッシュミスを少なくするための考慮点 Case study: 次元配列のアクセスパターン ( 図 4--, 図 4--) ストライド 4 の何が問題か? ( 簡易モデルで考える ) データキャッシュ 段目 段目 メモリ I= I=5 ストライド4 I= I=7 A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(9) A(0) A() A() A(4) A(5) A(6) A(7) A(8) I= の時点 ( キャッシュは満杯 ) 利用されたデータ : 赤字のみ A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) I=9 I= HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 4

35 4- キャッシュミスを少なくするための考慮点 Case study: 次元配列のアクセスパターン ( 図 4--, 図 4--) ストライド 4 の何が問題か? ( 簡易モデルで考える ) データキャッシュ 段目 段目 メモリ I= I=5 I=9 ストライド4 I= I=7 I= A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(9) A(0) A() A() A(4) A(5) A(6) A(7) A(8) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) I= の時点 ( キャッシュは満杯 ) 利用されたデータ : 赤字のみ次 (I=5) のデータはキャッシュ上にないメモリから転送 + キャッシュから ( 未使用の ) 古いデータの追い出し A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) A(7) A(8) A(9) A(0) A() A() A() A(4) A(5) A(6) I=5 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 5

36 4- キャッシュミスを少なくするための考慮点 次元配列 ( 重ループ ) とキャッシュミス (4-) ストライド : メモリ上での処理される配列要素間の距離 ( 図 4--, 図 4--) 次元配列の考慮点キャッシュミスを少なくするためには, ストライドを短くすること Memo ストライド アクセスなら問題ないか? キャッシュミスに関する留意点あり : 4-4 節, 4-5 節 ( スラッシング, Thrashing) *) サンプルコード : thrashing *) 今村俊幸 キャッシュ性能安定性について スーパーコンピューティングニュース Vol.9 特集号 (008) pp.-; HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 6

37 4- キャッシュミスを少なくするための考慮点 サンプルコード : allocd [Fortran の場合 ] 多次元配列 ( 多重ループ ) とキャッシュミス (4-4) メモリー上の配列の配置 [ 図 4--(), 図 4--4()] 左側の添字が先に動くキャッシュミスを抑制 : ストライド のアクセスパターンが好ましい 内側のループを配列の左側の添字で反復させること Memo コンパイラによる自動ループ入れ替え (4- 節 ) 例 : 簡易モデルにおける 次元配列 A(4,9) のメモリ上の配置 A(,) A(,) A(,) A(4,) A(,) A(,) A(,) A(4,) A(,) A(,) A(,) A(4,) A(,4) A(,4) A(,4) A(4,4) A(,5) A(,5) A(,5) A(4,5) A(,6) A(,6) A(,6) A(4,6) A(,7) A(,7) A(,7) A(4,7) A(,8) A(,8) A(,8) A(4,8) A(,9) A(,9) A(,9) A(4,9) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 7

38 4- キャッシュミスを少なくするための考慮点 Case study: 配列の図とメモリ上の配置の比較 配列 A(I,J) の図 ( 行列とみなす場合 ) ( 図 4--5) J I A(,) A(,) A(,) A(4,) A(,) A(,) A(,) A(4,) A(,) A(,) A(,) A(4,) A(,4) A(,4) A(,4) A(4,4) A(,5) A(,5) A(,5) A(4,5) A(,6) A(,6) A(,6) A(4,6) A(,7) A(,7) A(,7) A(4,7) A(,8) A(,8) A(,8) A(4,8) A(,9) A(,9) A(,9) A(4,9) メモリ上の配置 ( 簡易モデル ) A(,) A(,) A(,) A(4,) A(,) A(,) A(,) A(4,) A(,) A(,) A(,) A(4,) A(,4) A(,4) A(,4) A(4,4) A(,5) A(,5) A(,5) A(4,5) A(,6) A(,6) A(,6) A(4,6) A(,7) A(,7) A(,7) A(4,7) A(,8) A(,8) A(,8) A(4,8) A(,9) A(,9) A(,9) A(4,9) 左側の添字が先に動く (column major order) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 8

39 4- キャッシュミスを少なくするための考慮点 Case study: 次元配列 A(4,9) に対する 重ループ計算 ( 簡易モデル ) 多重ループでは ( より ) 内側の添字が ( より ) 先に動く 右側の添字左側の添字 左側の添字右側の添字 ストライド ストライド 4 内側のループを配列の左側の添字で反復させること A(,) A(,) A(,) A(4,) A(,) A(,) A(,) A(4,) A(,) A(,) A(,) A(4,) A(,4) A(,4) A(,4) A(4,4) A(,5) A(,5) A(,5) A(4,5) A(,6) A(,6) A(,6) A(4,6) A(,7) A(,7) A(,7) A(4,7) A(,8) A(,8) A(,8) A(4,8) A(,9) A(,9) A(,9) A(4,9) A(,) A(,) A(,) A(4,) A(,) A(,) A(,) A(4,) A(,) A(,) A(,) A(4,) A(,4) A(,4) A(,4) A(4,4) A(,5) A(,5) A(,5) A(4,5) A(,6) A(,6) A(,6) A(4,6) A(,7) A(,7) A(,7) A(4,7) A(,8) A(,8) A(,8) A(4,8) A(,9) A(,9) A(,9) A(4,9) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 9

40 4- キャッシュミスを少なくするための考慮点 サンプルコード : allocd [C の場合 ] 多次元配列 ( 多重ループ ) とキャッシュミス (4-5) メモリー上の配列の配置 [ 図 4--6(), 図 4--7()] 右側の添字が先に動くキャッシュミスを抑制 : ストライド のアクセスパターンが好ましい 内側のループを配列の右側の添字で反復させること Memo コンパイラによる自動ループ入れ替え (4- 節 ) 例 : 簡易モデルにおける 次元配列 a[9][4] のメモリ上の配置 a[0][0] a[0][] a[0][] a[0][] a[][0] a[][] a[][] a[][] a[][0] a[][] a[][] a[][] a[][0] a[][] a[][] a[][] a[4][0] a[4][] a[4][] a[4][] a[5][0] a[5][] a[5][] a[5][] a[6][0] a[6][] a[6][] a[6][] a[7][0] a[7][] a[7][] a[7][] a[8][0] a[8][] a[8][] a[8][] HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 40

41 4-6 キャッシュチューニング 行と列の入れ替え (Interchange) (4-6) 重ループの最内ループ [ 図 4-6-()]: 配列 B(J, I) でキャッシュミス多発 Fortran における 左側の添字から動かす 原則に従っていない対策 : 一時配列の利用による行と列の入れ替え [ 図 4-6-()] 入れ替えでキャッシュミス発生 0000 回実行されるループ中ではキャッシュミス軽減 性能向上が期待 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 4

42 4-6 キャッシュチューニング ブロック化 (Loop blocking) (4-9, 4-0; 4-8 も参照 ) [7] サンプルコード : mattp 重ループの最内ループ [ 図 4-6-8()]: 配列 B(J, I) でキャッシュミス多発 Fortran における 左側の添字から動かす 原則に従っていない対策 : 行と列の入れ替えをせず, キャッシュミスを軽減 ブロック化 [ 図 4-6-9()] Memo プログラムの演算順序を変更する対策利用前提 : 順序変更によるロジック変更が発生しないこと HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 4

43 4-6 キャッシュチューニング ブロック化 (Loop blocking) (4-9, 4-0; 4-8 も参照 ) [7] サンプルコード : mattp プログラムの書き換え方 ( ループ変換 ) ループを ( ループ長がより短い ) 入れ子ループ (nested loop) に変換ブロック化, ストリップマイニング (4-0) において基本となる変換変換後 : コードの可読性は低下 効果がある部分のみに適用すべき HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 4

44 4-6 キャッシュチューニング ブロック化 (Loop blocking) (4-9, 4-0; 4-8 も参照 ) [7] サンプルコード : mattp プログラムの書き換え方 ( ループ変換 ) ループを ( ループ長がより短い ) 入れ子ループ (nested loop) に変換ブロック化, ストリップマイニング (4-0) において基本となる変換変換後 : コードの可読性は低下 効果がある部分のみに適用すべきブロック化 = 重 ( 多重 ) ループの各ループに対し 分割 & 入れ子化 期待 : ループ長を短くする キャッシュ内データの再利用を促進 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 44

45 4-6 キャッシュチューニング Case study: ブロック化によるキャッシュミス軽減 ( 簡易モデル ) ブロック化前 J I 配列の図 ( メモリ上の配置ではない ) J I メモリ上の配置 配列 A: ストライド アクセス 配列 B: ストライド 6 アクセス キャッシュミス多発の温床 A(,) A(,) A(,) A(4,) A(5,) A(6,) A(,) A(,) A(,) A(4,) A(5,) A(6,) A(,) A(,) A(,) A(4,) A(5,) A(6,) A(,4) A(,4) A(,4) A(4,4) A(5,4) A(6,4) A(,5) A(,5) A(,5) A(4,5) A(5,5) A(6,5) A(,6) A(,6) A(,6) A(4,6) A(5,6) A(6,6) B(,) B(,) B(,) B(4,) B(5,) B(6,) B(,) B(,) B(,) B(4,) B(5,) B(6,) B(,) B(,) B(,) B(4,) B(5,) B(6,) B(,4) B(,4) B(,4) B(4,4) B(5,4) B(6,4) B(,5) B(,5) B(,5) B(4,5) B(5,5) B(6,5) B(,6) B(,6) B(,6) B(4,6) B(5,6) B(6,6) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 45

46 4-6 キャッシュチューニング Case study: ブロック化によるキャッシュミス軽減 ( 簡易モデル ) A(,) A(,) A(,) B(,) B(,) B(,) B(,) B(,) B(,) B(,) B(,) B(,) A(,) A(,) A(,) A(4,) A(5,) A(6,) A(,) A(,) A(,) A(4,) A(5,) A(6,) A(,) A(,) A(,) A(4,) A(5,) A(6,) A(,4) A(,4) A(,4) A(4,4) A(5,4) A(6,4) A(,5) A(,5) A(,5) A(4,5) A(5,5) A(6,5) A(,6) A(,6) A(,6) A(4,6) A(5,6) A(6,6) B(,) B(,) B(,) B(4,) B(5,) B(6,) B(,) B(,) B(,) B(4,) B(5,) B(6,) B(,) B(,) B(,) B(4,) B(5,) B(6,) B(,4) B(,4) B(,4) B(4,4) B(5,4) B(6,4) B(,5) B(,5) B(,5) B(4,5) B(5,5) B(6,5) B(,6) B(,6) B(,6) B(4,6) B(5,6) B(6,6) データキャッシュ I=, J= の時点利用されたキャッシュ上データ : 赤字のみ配列 B(J,I) を転送するため, キャッシュミス多発 メモリ ブロック化前 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 46

47 4-6 キャッシュチューニング Case study: ブロック化によるキャッシュミス軽減 ( 簡易モデル ) A(,) A(,) A(,) B(,) B(,) B(,) B(,) B(,) B(,) B(,) B(,) B(,) A(,) A(,) A(,) A(4,) A(5,) A(6,) A(,) A(,) A(,) A(4,) A(5,) A(6,) A(,) A(,) A(,) A(4,) A(5,) A(6,) A(,4) A(,4) A(,4) A(4,4) A(5,4) A(6,4) A(,5) A(,5) A(,5) A(4,5) A(5,5) A(6,5) A(,6) A(,6) A(,6) A(4,6) A(5,6) A(6,6) B(,) B(,) B(,) B(4,) B(5,) B(6,) B(,) B(,) B(,) B(4,) B(5,) B(6,) B(,) B(,) B(,) B(4,) B(5,) B(6,) B(,4) B(,4) B(,4) B(4,4) B(5,4) B(6,4) B(,5) B(,5) B(,5) B(4,5) B(5,5) B(6,5) B(,6) B(,6) B(,6) B(4,6) B(5,6) B(6,6) データキャッシュ I=, J= の時点利用されたキャッシュ上データ : 赤字のみ配列 B(J,I) を転送するため, キャッシュミス多発次のデータ (I=4, J=) キャッシュ上にないメモリから転送古いキャッシュ上の ( 未使用 ) データをメモリに追い出す可能性 メモリ ブロック化前 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 47

48 4-6 キャッシュチューニング Case study: ブロック化によるキャッシュミス軽減 ( 簡易モデル ) A(,) A(,) A(,) B(,) B(,) B(,) B(,) B(,) B(,) B(,) B(,) B(,) A(,) A(,) A(,) A(4,) A(5,) A(6,) A(,) A(,) A(,) A(4,) A(5,) A(6,) A(,) A(,) A(,) A(4,) A(5,) A(6,) A(,4) A(,4) A(,4) A(4,4) A(5,4) A(6,4) A(,5) A(,5) A(,5) A(4,5) A(5,5) A(6,5) A(,6) A(,6) A(,6) A(4,6) A(5,6) A(6,6) B(,) B(,) B(,) B(4,) B(5,) B(6,) B(,) B(,) B(,) B(4,) B(5,) B(6,) B(,) B(,) B(,) B(4,) B(5,) B(6,) B(,4) B(,4) B(,4) B(4,4) B(5,4) B(6,4) B(,5) B(,5) B(,5) B(4,5) B(5,5) B(6,5) B(,6) B(,6) B(,6) B(4,6) B(5,6) B(6,6) データキャッシュ I=, J= の時点利用されたキャッシュ上データ : 赤字のみ配列 B(J,I) を転送するため, キャッシュミス多発もし, 次のデータを (I=, J=) から取るとする : メモリから転送キャッシュ上のデータが利用される可能性 多重ループの内側を短くすると, キャッシュミスが軽減される可能性 (4- 節 ) ブロック化 メモリ I J 4 6 I J 4 6 飛ばす ( 後回し ) HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 48

49 4-6 キャッシュチューニング Case study: ブロック化によるキャッシュミス軽減 ( 簡易モデル ) ブロック化後 J I I J ブロック化後の配列の図 ( メモリ上の配置ではない ) 内側のループの反復数を小さくする 反復数は 配列 A: ブロック内でストライドが変わる例 : A, A, A ストライド ; A,A ストライド 4 オリジナル版よりキャッシュミスは若干増える可能性配列 B: 内側ループの反復数が小さいキャッシュミスは軽減される可能性 種の効果のバランスで, 性能向上が期待 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 49

50 4-6 キャッシュチューニング Case study: ブロック化によるキャッシュミス軽減 ( 簡易モデル ) ブロック化後 J I I J ブロック化後の配列の図 ( メモリ上の配置ではない ) 内側のループの反復数を小さくする 反復数は 配列 A: ブロック内でストライドが変わる例 : A, A, A ストライド ; A,A ストライド 4 オリジナル版よりキャッシュミスは若干増える可能性配列 B: 内側ループの反復数が小さいキャッシュミスは軽減される可能性 種の効果のバランスで, 性能向上が期待 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 50

51 4-6 キャッシュチューニング Case study: ブロック化によるキャッシュミス軽減 ( 簡易モデル ) ブロック化後 J I I J ブロック化後の配列の図 ( メモリ上の配置ではない ) 内側のループの反復数を小さくする 反復数は 配列 A: ブロック内でストライドが変わる例 : A, A, A ストライド ; A,A ストライド 4 オリジナル版よりキャッシュミスは若干増える可能性配列 B: 内側ループの反復数が小さいキャッシュミスは軽減される可能性 種の効果のバランスで, 性能向上が期待 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 5

52 4-6 キャッシュチューニング ブロック化 (Loop blocking) (4-9, 4-0; 4-8 も参照 ) 重ループの最内ループ [ 図 4-6-8()]: 配列 B(J, I) でキャッシュミス多発 Fortran における 左側の添字から動かす 原則に従っていない対策 : 行と列の入れ替えをせず, キャッシュミスを軽減 ブロック化 [ 図 4-6-9()] Memo ブロック化は行列演算で有効 ブロック数 ( 最内ループ反復数 ) はマシン環境および課題依存最適値の決定には try&error が必要 [7] の第 章メモリ階層の視点からブロック化を統一的に理解 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 5

53 まとめ 第 4 章キャッシュチューニング高速で転送されるキャッシュ上データを効率よく利用すること 重ループ : ストライドを短く多重ループ [Fortran]: 内側のループを配列の左側の添字で反復多重ループ [C]: 内側のループを配列の右側の添字で反復 キャッシュチューニング キャッシュミスの軽減策ブロック化 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 5

54 Appendix HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 54

55 4-5ストライドがでキャッシュミスが発生する例 ( キャッシュスラッシング ) キャッシュスラッシングとは (Thrashing) (4-0) メモリ上データ要求の度に, キャッシュ上データ追い出し (eviction) キャッシュの構造と関連キャッシュライン数, 段当たりの要素数 : のベキ乗 ( が典型 ) サンプルコード : thrashing Case study: より現実的な簡易モデル ( 図 4-5-) 段数 : 段 (-way), キャッシュライン数 :, 段当たりの要素数 : 8 データキャッシュ 段目 段目 メモリ ライン Recall: データの移動はキャッシュライン単位 Recall: キャッシュ - メモリ間のマッピング, ライン HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 55

56 4-5ストライドがでキャッシュミスが発生する例 ( キャッシュスラッシング ) キャッシュスラッシングとは (Thrashing) (4-0) メモリ上データ要求の度に, キャッシュ上データ追い出し (eviction) キャッシュの構造と関連キャッシュライン数, 段当たりの要素数 : のベキ乗 ( が典型 ) サンプルコード : thrashing Case study: より現実的な簡易モデル ( 図 4-5-) 段数 : 段 (-way), キャッシュライン数 :, 段当たりの要素数 : 8 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 56

57 4-5ストライドがでキャッシュミスが発生する例 ( キャッシュスラッシング ) キャッシュスラッシングとは (Thrashing) (4-0) メモリ上データ要求の度に, キャッシュ上データ追い出し (eviction) キャッシュの構造と関連キャッシュライン数, 段当たりの要素数 : のベキ乗 ( が典型 ) サンプルコード : thrashing Case study: より現実的な簡易モデル ( 図 4-5-) 段数 : 段 (-way), キャッシュライン数 :, 段当たりの要素数 : 8 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 57

58 4-5ストライドがでキャッシュミスが発生する例 ( キャッシュスラッシング ) キャッシュスラッシングとは (Thrashing) (4-0) メモリ上データ要求の度に, キャッシュ上データ追い出し (eviction) キャッシュの構造と関連キャッシュライン数, 段当たりの要素数 : のベキ乗 ( が典型 ) サンプルコード : thrashing Case study: より現実的な簡易モデル ( 図 4-5-) 段数 : 段 (-way), キャッシュライン数 :, 段当たりの要素数 : 8 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 58

59 4-5ストライドがでキャッシュミスが発生する例 ( キャッシュスラッシング ) キャッシュスラッシングとは (Thrashing) (4-0) メモリ上データ要求の度に, キャッシュ上データ追い出し (eviction) キャッシュの構造と関連キャッシュライン数, 段当たりの要素数 : のベキ乗 ( が典型 ) サンプルコード : thrashing Case study: より現実的な簡易モデル ( 図 4-5-) 段数 : 段 (-way), キャッシュライン数 :, 段当たりの要素数 : 8 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 59

60 4-5ストライドがでキャッシュミスが発生する例 ( キャッシュスラッシング ) キャッシュスラッシングとは (Thrashing) (4-0) メモリ上データ要求の度に, キャッシュ上データ追い出し (eviction) キャッシュの構造と関連キャッシュライン数, 段当たりの要素数 : のベキ乗 ( が典型 ) サンプルコード : thrashing Case study: より現実的な簡易モデル ( 図 4-5-) 段数 : 段 (-way), キャッシュライン数 :, 段当たりの要素数 : 8 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 60

61 4-5ストライドがでキャッシュミスが発生する例 ( キャッシュスラッシング ) キャッシュスラッシングとは (Thrashing) (4-0) メモリ上データ要求の度に, キャッシュ上データ追い出し (eviction) キャッシュの構造と関連キャッシュライン数, 段当たりの要素数 : のベキ乗 ( が典型 ) サンプルコード : thrashing Case study: より現実的な簡易モデル ( 図 4-5-) 段数 : 段 (-way), キャッシュライン数 :, 段当たりの要素数 : 8 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 6

62 4-5ストライドがでキャッシュミスが発生する例 ( キャッシュスラッシング ) キャッシュスラッシングとは (Thrashing) (4-0) メモリ上データ要求の度に, キャッシュ上データ追い出し (eviction) キャッシュの構造と関連キャッシュライン数, 段当たりの要素数 : のベキ乗 ( が典型 ) サンプルコード : thrashing Case study: より現実的な簡易モデル ( 図 4-5-) 段数 : 段 (-way), キャッシュライン数 :, 段当たりの要素数 : 8 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 6

63 4-5ストライドがでキャッシュミスが発生する例 ( キャッシュスラッシング ) キャッシュスラッシングとは (Thrashing) (4-0) メモリ上データ要求の度に, キャッシュ上データ追い出し (eviction) キャッシュの構造と関連キャッシュライン数, 段当たりの要素数 : のベキ乗 ( が典型 ) サンプルコード : thrashing Case study: より現実的な簡易モデル ( 図 4-5-) 段数 : 段 (-way), キャッシュライン数 :, 段当たりの要素数 : 8 何故発生したか? 配列の要素数 (8) = 段当たりの要素数 A(i), B(i), C(i): 同一キャッシュライン上で, 同一位置への配置を要求 段数は のため, この要求は実現不可能 HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 6

64 4-5ストライドがでキャッシュミスが発生する例 ( キャッシュスラッシング ) キャッシュスラッシングとは (Thrashing) (4-0) スラッシングが発生し得る状況 : ( 典型的には ) 配列の要素数 = n [ 配列の要素数 ]=[ キャッシュ 段当たりの要素数の整数倍 ] 特定のキャッシュライン上のデータ配置が常に要求キャッシュの連想度 (associativity, 段数に対応 ) が小さい場合特に配慮が必要 ( 著しい性能劣化の可能性 ) スラッシングの検出 *) キャッシュミス率を取得可能なプロファイラが必要スラッシングの回避 **) パディング (padding) (4-), 配列マージなど (4-) サンプルコード : thrashing *) 今村俊幸 キャッシュ性能安定性について スーパーコンピューティングニュース Vol.9 特集号 (008) pp.-; **) サイエンティフィック システム研究会 ポストペタアプリ性能 WG 成果報告書 ( 別冊 ) ( 会員登録が必要 ); HPC プログラミングセミナー チューニング技法入門 : キャッシュチューニング 64

08 年 月一般財団法人高度情報科学技術研究機構 本資料を教育目的等で利用いただいて構いません 利用に際しては以下の点に留意いただくとともに 下記のヘルプデスクにお問い合わせ下さい 本資料は 構成 文章 画像などの全てにおいて著作権法上の保護を受けています 本資料の一部あるいは全部について いかなる

08 年 月一般財団法人高度情報科学技術研究機構 本資料を教育目的等で利用いただいて構いません 利用に際しては以下の点に留意いただくとともに 下記のヘルプデスクにお問い合わせ下さい 本資料は 構成 文章 画像などの全てにおいて著作権法上の保護を受けています 本資料の一部あるいは全部について いかなる チューニング技法入門 : キャッシュチューニング (C 版 ) 太田幸宏 ( 高度情報科学技術研究機構 ) E-mail: yota@rist.or.jp 教科書青山幸也 チューニング技法虎の巻 ( 平成 8 年 8 月 日版 ) 質問について ( 主に ) 休憩時間に受け付けます E-mail もご利用ください ( 後日, 回答します ) HPC プログラミングセミナー チューニング技法入門 :

More information

チューニング技法入門 : チューニングの基礎太田幸宏 ( 高度情報科学技術研究機構 ) 教科書青山幸也 チューニング技法虎の巻 ( 平成 28 年 8 月 1 日版 ) 質問について ( 主に ) 休憩時間に受け付けます もご利用ください

チューニング技法入門 : チューニングの基礎太田幸宏 ( 高度情報科学技術研究機構 )   教科書青山幸也 チューニング技法虎の巻 ( 平成 28 年 8 月 1 日版 ) 質問について ( 主に ) 休憩時間に受け付けます  もご利用ください チューニング技法入門 : チューニングの基礎太田幸宏 ( 高度情報科学技術研究機構 ) E-mail: yota@rist.or.jp 教科書青山幸也 チューニング技法虎の巻 ( 平成 28 年 8 月 1 日版 ) 質問について ( 主に ) 休憩時間に受け付けます E-mail もご利用ください ( 後日, 回答します ) HPC プログラミングセミナー チューニング技法入門 : チューニングの基礎

More information

Microsoft PowerPoint - sales2.ppt

Microsoft PowerPoint - sales2.ppt 最適化とは何? CPU アーキテクチャに沿った形で最適な性能を抽出できるようにする技法 ( 性能向上技法 ) コンパイラによるプログラム最適化 コンパイラメーカの技量 経験量に依存 最適化ツールによるプログラム最適化 KAP (Kuck & Associates, Inc. ) 人によるプログラム最適化 アーキテクチャのボトルネックを知ること 3 使用コンパイラによる性能の違い MFLOPS 90

More information

Operating System 仮想記憶

Operating System 仮想記憶 Operating System 仮想記憶 2018-12 記憶階層 高速 & 小容量 ( 高価 ) レジスタ アクセスタイム 数ナノ秒 容量 ~1KB CPU 内キャッシュ (SRAM) 数ナノ秒 1MB 程度 ランダムアクセス 主記憶 (DRAM) 数十ナノ秒 数 GB 程度 ランダムアクセス フラッシュメモリ (SSD) 約 100 万倍 シーケンシャルアクセス 磁気ディスク (HDD) 数十ミリ秒

More information

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の 計算機システム Ⅱ 演習問題学科学籍番号氏名 1. 以下の分の空白を埋めなさい. CPUは, 命令フェッチ (F), 命令デコード (D), 実行 (E), 計算結果の書き戻し (W), の異なるステージの処理を反復実行するが, ある命令の計算結果の書き戻しをするまで, 次の命令のフェッチをしない場合, ( 単位時間当たりに実行できる命令数 ) が低くなる. これを解決するために考案されたのがパイプライン処理である.

More information

OS

OS Operatig System 仮想記憶 2017-12 記憶階層 高速 & 小容量 ( 高価 ) レジスタ アクセスタイム 数ナノ秒 容量 ~1KB ランダムアクセス ランダムアクセス CPU 内キャッシュ (SRAM) 主記憶 (DRAM) フラッシュメモリ 数ナノ秒 数十ナノ秒 1MB 程度 数 GB 程度 シーケンシャルアクセス 磁気ディスク (HDD) 光磁気ディスク (CD-R DVD-RW

More information

講義計画 1. コンピュータの歴史 1 2. コンピュータの歴史 2 3. コンピュータの歴史 3 4. 論理回路と記憶, 計算 : レジスタとALU 5. 主記憶装置とALU, レジスタの制御 6. 命令セットアーキテクチャ 7. 演習問題 8. パイプライン処理 9. メモリ階層 : キャッシュ

講義計画 1. コンピュータの歴史 1 2. コンピュータの歴史 2 3. コンピュータの歴史 3 4. 論理回路と記憶, 計算 : レジスタとALU 5. 主記憶装置とALU, レジスタの制御 6. 命令セットアーキテクチャ 7. 演習問題 8. パイプライン処理 9. メモリ階層 : キャッシュ 計算機システム Ⅱ キャッシュと仮想記憶 和田俊和 講義計画 1. コンピュータの歴史 1 2. コンピュータの歴史 2 3. コンピュータの歴史 3 4. 論理回路と記憶, 計算 : レジスタとALU 5. 主記憶装置とALU, レジスタの制御 6. 命令セットアーキテクチャ 7. 演習問題 8. パイプライン処理 9. メモリ階層 : キャッシュと仮想記憶 ( 本日 ) 10. 命令レベル並列処理

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 応用数理概論 準備 端末上で cd ~/ mkdir cppwork cd cppwork wget http://271.jp/gairon/main.cpp wget http://271.jp/gairon/matrix.hpp とコマンドを記入. ls とコマンドをうち,main.cppとmatrix.hppがダウンロードされていることを確認. 1 準備 コンパイル c++ -I. -std=c++0x

More information

スライド 1

スライド 1 知能制御システム学 画像処理の高速化 OpenCV による基礎的な例 東北大学大学院情報科学研究科鏡慎吾 swk(at)ic.is.tohoku.ac.jp 2007.07.03 リアルタイム処理と高速化 リアルタイム = 高速 ではない 目標となる時間制約が定められているのがリアルタイム処理である.34 ms かかった処理が 33 ms に縮んだだけでも, それによって与えられた時間制約が満たされるのであれば,

More information

Microsoft PowerPoint - 11Web.pptx

Microsoft PowerPoint - 11Web.pptx 計算機システムの基礎 ( 第 10 回配布 ) 第 7 章 2 節コンピュータの性能の推移 (1) コンピュータの歴史 (2) コンピュータの性能 (3) 集積回路の進歩 (4) アーキテクチャ 第 4 章プロセッサ (1) プロセッサの基本機能 (2) プロセッサの構成回路 (3) コンピュータアーキテクチャ 第 5 章メモリアーキテクチャ 1. コンピュータの世代 計算する機械 解析機関 by

More information

Microsoft PowerPoint - ARC2009HashiguchiSlides.pptx

Microsoft PowerPoint - ARC2009HashiguchiSlides.pptx 3 次元 DRAM プロセッサ積層実装を 対象としたオンチップ メモリ アーキテクチャの提案と評価 橋口慎哉 小野貴継 ( 現 ) 井上弘士 村上和彰 九州大学大学院システム情報科学府 九州大学大学院システム情報科学研究院 発表手順 研究背景 研究目的 ハイブリッド キャッシュ アーキテクチャ 評価実験 まとめと今後の課題 2 3 次元実装技術 研究背景 グローバル配線長の削減 チップ面積縮小 異なるプロセスを経て製造されたダイ同士の積層

More information

Microsoft PowerPoint - OS12.pptx

Microsoft PowerPoint - OS12.pptx # # この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました パワーポイント 7 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です # 主記憶管理 : ページ置き換え方式

More information

出 アーキテクチャ 誰が 出 装置を制御するのか 1

出 アーキテクチャ 誰が 出 装置を制御するのか 1 出 アーキテクチャ 誰が 出 装置を制御するのか 1 が 出 装置を制御する メモリ ( 主記憶 ) 命令データ 出 装置 2 が 出 装置を制御する 命令 実 入出力装置を制御する命令を実行する メモリ ( 主記憶 ) 命令データ 制御 出 装置 3 が 出 装置を制御する メモリ ( 主記憶 ) 命令 実 制御 命令データ データを出力せよ 出 装置 4 が 出 装置を制御する メモリ ( 主記憶

More information

< B8CDD8AB B83685D>

< B8CDD8AB B83685D> () 坂井 修一 東京大学大学院情報理工学系研究科電子情報学専攻東京大学工学部電子情報工学科 / 電気電子工学科 はじめに アウトオブオーダ処理 工学部講義 はじめに 本講義の目的 の基本を学ぶ 場所 火曜日 8:40-0:0 工学部 号館 4 ホームページ ( ダウンロード可能 ) url: http://www.mtl.t.u-tokyo.ac.jp/~sakai/hard/ 教科書 坂井修一

More information

Microsoft Word ●IntelクアッドコアCPUでのベンチマーク_吉岡_ _更新__ doc

Microsoft Word ●IntelクアッドコアCPUでのベンチマーク_吉岡_ _更新__ doc 2.3. アプリ性能 2.3.1. Intel クアッドコア CPU でのベンチマーク 東京海洋大学吉岡諭 1. はじめにこの数年でマルチコア CPU の普及が進んできた x86 系の CPU でも Intel と AD がデュアルコア クアッドコアの CPU を次々と市場に送り出していて それらが PC クラスタの CPU として採用され HPC に活用されている ここでは Intel クアッドコア

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2015 年度 5 セメスター クラス D 計算機工学 6. MIPS の命令と動作 演算 ロード ストア ( 教科書 6.3 節,6.4 節 ) 大学院情報科学研究科鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ レジスタ間の演算命令 (C 言語 ) c = a + b; ( 疑似的な MIPS アセンブリ言語 )

More information

Microsoft Word - HOKUSAI_system_overview_ja.docx

Microsoft Word - HOKUSAI_system_overview_ja.docx HOKUSAI システムの概要 1.1 システム構成 HOKUSAI システムは 超並列演算システム (GWMPC BWMPC) アプリケーション演算サーバ群 ( 大容量メモリ演算サーバ GPU 演算サーバ ) と システムの利用入口となるフロントエンドサーバ 用途の異なる 2 つのストレージ ( オンライン ストレージ 階層型ストレージ ) から構成されるシステムです 図 0-1 システム構成図

More information

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments 計算機アーキテクチャ第 11 回 マルチプロセッサ 本資料は授業用です 無断で転載することを禁じます 名古屋大学 大学院情報科学研究科 准教授加藤真平 デスクトップ ジョブレベル並列性 スーパーコンピュータ 並列処理プログラム プログラムの並列化 for (i = 0; i < N; i++) { x[i] = a[i] + b[i]; } プログラムの並列化 x[0] = a[0] + b[0];

More information

Microsoft PowerPoint - ARC-SWoPP2011OkaSlides.pptx

Microsoft PowerPoint - ARC-SWoPP2011OkaSlides.pptx データ値の局所性を利用した ライン共有キャッシュの提案 九州大学大学院 岡慶太郎 福本尚人 井上弘士 村上和彰 1 キャッシュメモリの大容量化 マルチコア プロセッサが主流 メモリウォール問題の深刻化 メモリアクセス要求増加 IOピンの制限 大容量の LL(Last Level) キャッシュを搭載 8MB の L3 キャッシュを搭載 Core i7 のチップ写真 * * http://www.atmarkit.co.jp/fsys/zunouhoudan/102zunou/corei7.html

More information

ex04_2012.ppt

ex04_2012.ppt 2012 年度計算機システム演習第 4 回 2012.05.07 第 2 回課題の補足 } TSUBAMEへのログイン } TSUBAMEは学内からのログインはパスワードで可能 } } } } しかし 演習室ではパスワードでログインできない設定 } 公開鍵認証でログイン 公開鍵, 秘密鍵の生成 } ターミナルを開く } $ ssh-keygen } Enter file in which to save

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション コンピュータアーキテクチャ 第 13 週 割込みアーキテクチャ 2013 年 12 月 18 日 金岡晃 授業計画 第 1 週 (9/25) 第 2 週 (10/2) 第 3 週 (10/9) 第 4 週 (10/16) 第 5 週 (10/23) 第 6 週 (10/30) 第 7 週 (11/6) 授業概要 2 進数表現 論理回路の復習 2 進演算 ( 数の表現 ) 演算アーキテクチャ ( 演算アルゴリズムと回路

More information

ERDAS IMAGINE における処理速度の向上 株式会社ベストシステムズ PASCO CORPORATION 2015

ERDAS IMAGINE における処理速度の向上 株式会社ベストシステムズ PASCO CORPORATION 2015 ERDAS IMAGINE における処理速度の向上 株式会社ベストシステムズ 本セッションの目的 本セッションでは ERDAS IMAGINEにおける処理速度向上を目的として機器 (SSD 等 ) 及び並列処理の比較 検討を行った 1.SSD 及び RAMDISK を利用した処理速度の検証 2.Condorによる複数 PCを用いた並列処理 2.1 分散並列処理による高速化試験 (ERDAS IMAGINEのCondorを使用した試験

More information

第9回 配列(array)型の変数

第9回 配列(array)型の変数 第 12 回 配列型の変数 情報処理演習 ( テキスト : 第 4 章, 第 8 章 ) 今日の内容 1. 配列の必要性 2. 配列の宣言 3. 配列変数のイメージ 4. 配列変数を使用した例 5. 範囲を超えた添字を使うと? 6. 多次元配列変数 7. 多次元配列変数を使用した例 8. データのソーティング 9. 今日の練習問題 多数のデータ処理 1. 配列の必要性 ( テキスト 31 ページ )

More information

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc Article ID: NVSI-050110JP Created: 2005/10/19 Revised: - NetVault 仮想テープ ライブラリのパフォーマンス検証 : dothill SANnetⅡSATA 編 1. 検証の目的 ドットヒルシステムズ株式会社の SANnetll SATA は 安価な SATA ドライブを使用した大容量ストレージで ディスクへのバックアップを行う際の対象デバイスとして最適と言えます

More information

スライド 1

スライド 1 知能制御システム学 画像処理の高速化 東北大学大学院情報科学研究科鏡慎吾 swk(at)ic.is.tohoku.ac.jp 2008.07.22 今日の内容 ビジュアルサーボのようなリアルタイム応用を考える場合, 画像処理を高速に実装することも重要となる いくつかの基本的な知識を押さえておかないと, 同じアルゴリズムを実行しているのに性能が上がらないということがしばしば生じる 今日は, あくまで普通の

More information

計算機アーキテクチャ

計算機アーキテクチャ 計算機アーキテクチャ 第 11 回命令実行の流れ 2014 年 6 月 20 日 電気情報工学科 田島孝治 1 授業スケジュール ( 前期 ) 2 回日付タイトル 1 4/7 コンピュータ技術の歴史と コンピュータアーキテクチャ 2 4/14 ノイマン型コンピュータ 3 4/21 コンピュータのハードウェア 4 4/28 数と文字の表現 5 5/12 固定小数点数と浮動小数点表現 6 5/19 計算アーキテクチャ

More information

020105.メモリの高機能化

020105.メモリの高機能化 速化記憶階層の活用 5. メモリの高機能化 メモリインタリーブ メモリインタリーブとは 0 2 3 5 バンク番号 0 2 3 5 8 9 0 2 3 5 8 9 20 並列アクセス 主記憶装置をいくつかのバンクに分割し 各バンク毎にアクセスパスを設定する あるバンクの情報に対するアクセスがある時は それに続く全てのバンクの情報を同時にそれぞれのアクセスパスを経由して読み出す バンク数をウェイといい

More information

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1 COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1 ここでは機械命令レベルプログラミングを学びます 機械命令の形式は学びましたね機械命令を並べたプログラムを作ります 2 その前に プログラミング言語について 4 プログラミング言語について 高級言語 (Java とか C とか ) と機械命令レベルの言語 ( アセンブリ言語 ) があります 5 プログラミング言語について

More information

Microsoft PowerPoint - OS07.pptx

Microsoft PowerPoint - OS07.pptx この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました 主記憶管理 主記憶管理基礎 パワーポイント 27 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 復習 OS

More information

Microsoft PowerPoint - os ppt [互換モード]

Microsoft PowerPoint - os ppt [互換モード] 4. メモリ管理 (1) 概要メモリ管理の必要性静的メモリ管理と動的メモリ管理スワッピング, 仮想記憶ページングとセグメンテーション 2008/5/ 20 メモリ管理 (1) 1 メモリはコンピュータの 5 大構成要素 装置 ( キーボード, マウス ) CPU ( 中央演算装置 ) 出 装置 ( モニタ, プリンタ ) 主記憶装置 ( メインメモリ ) 外部記憶装置 (HDD) 2008/5/ 20

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション コンパイラとプログラミング言語 第 3 4 週 プログラミング言語の形式的な記述 2014 年 4 月 23 日 金岡晃 授業計画 第 1 週 (4/9) コンパイラの概要 第 8 週 (5/28) 下向き構文解析 / 構文解析プログラム 第 2 週 (4/16) コンパイラの構成 第 9 週 (6/4) 中間表現と意味解析 第 3 週 (4/23) プログラミング言語の形式的な記述 第 10 週

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 各種計算機アプリケーション性能比較 目次. はじめに. 行列積計算.QDR 積計算 4.N 体問題計算 5. 多次元積分計算 5. 次元積分計算 5. 次元積分計算 5. 4 次元積分計算 5.4 5 次元積分計算 5.5 6 次元積分計算 平成 6 年度第 四半期 . はじめに 今までと少し性質の異なるグラフィックボードが使用できる様になったので従来のアプリケーションで性能比較を実施しました 主に使用した計算機は以下のものです

More information

Microsoft PowerPoint - 演習1:並列化と評価.pptx

Microsoft PowerPoint - 演習1:並列化と評価.pptx 講義 2& 演習 1 プログラム並列化と性能評価 神戸大学大学院システム情報学研究科横川三津夫 yokokawa@port.kobe-u.ac.jp 2014/3/5 RIKEN AICS HPC Spring School 2014: プログラム並列化と性能評価 1 2014/3/5 RIKEN AICS HPC Spring School 2014: プログラム並列化と性能評価 2 2 次元温度分布の計算

More information

Microsoft PowerPoint - OS11.pptx

Microsoft PowerPoint - OS11.pptx この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました パワーポイント 27 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 主記憶管理 : 仮想記憶 復習 : 主記憶管理

More information

目次 1 はじめに 登録商標 商標 注意事項 免債事項 SR-IOV の機能概要 性能検証事例 測定環境 測定結果 各方式による共有 NIC 性能比較 ( ポートあ

目次 1 はじめに 登録商標 商標 注意事項 免債事項 SR-IOV の機能概要 性能検証事例 測定環境 測定結果 各方式による共有 NIC 性能比較 ( ポートあ ホワイトペーパー BladeSymphony Virtage SR-IOV のご紹介 2014 年 7 月発行 株式会社日立製作所 1 / 8 Copyright 2014 Hitachi, Ltd. All rights reserved 目次 1 はじめに... 3 1.1 登録商標 商標... 3 1.2 注意事項... 3 1.3 免債事項... 3 2 SR-IOV の機能概要... 4

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション vsmp Foundation スケーラブル SMP システム スケーラブル SMP システム 製品コンセプト 2U サイズの 8 ソケット SMP サーバ コンパクトな筐体に多くのコアとメモリを実装し SMP システムとして利用可能 スイッチなし構成でのシステム構築によりラックスペースを無駄にしない構成 将来的な拡張性を保証 8 ソケット以上への拡張も可能 2 システム構成例 ベースシステム 2U

More information

Microsoft PowerPoint - ICD2011TakadaSlides.pptx

Microsoft PowerPoint - ICD2011TakadaSlides.pptx キャッシュウェイ割り当てと コード配置の同時最適化による メモリアクセスエネルギーの削減 九州大学 高田純司井上弘士京都大学石原亨 2012/8/9 1 目次 研究背景 組込みプロセッサにおけるエネルギー削減の必要性 キャッシュウェイ割り当て 提案手法 キャッシュウェイ割り当てとコード配置の組み合わせ 同時最適化 評価実験 まとめ 2012/8/9 2 組込みプロセッサの課題 研究背景 低消費エネルギー化,

More information

にゃんぱすー

にゃんぱすー ビッグデータ分析技術ワークショップ ~ グラフマイニング研究の最新動向と応用事例 ~ 平成 28 年 2 月 28 日 頂点順序の最適化による 高速なグラフ分析 新井淳也 日本電信電話株式会社 ソフトウェアイノベーションセンタ この発表について 下記論文についての発表です Rabbit Order: Just-in-time Parallel Reordering for Fast Graph Analysis

More information

24,828,330 Contents 9,931,332 8,223,840 3,436,978 9,931,332 7,674,406 3,413,724 2,985,287 1

24,828,330 Contents 9,931,332 8,223,840 3,436,978 9,931,332 7,674,406 3,413,724 2,985,287 1 24,828,330 Contents 9,931,332 8,223,840 3,436,978 9,931,332 7,674,406 3,413,724 2,985,287 1 2 3 1Chapter 138 4 5 Case Study 1 Case Study 2 6 Case Study 4 7 Case Study 3 9 Case Study 6 Case Study 5 8 10

More information

Microsoft PowerPoint - GPGPU実践基礎工学(web).pptx

Microsoft PowerPoint - GPGPU実践基礎工学(web).pptx GPU のメモリ階層 長岡技術科学大学電気電子情報工学専攻出川智啓 今回の内容 GPU のメモリ階層 グローバルメモリ 共有メモリ モザイク処理への適用 コンスタントメモリ 空間フィルタへの適用 577 GPU の主要部品 基盤 GPU( チップ )+ 冷却部品 画面出力端子 電源入力端子 メモリ 特性の把握が重要 電源入力端子 画面出力端子 メモリ チップ PCI Ex 端子 http://www.geforce.com/whats

More information

Microsoft PowerPoint 知る集い(京都)最終.ppt

Microsoft PowerPoint 知る集い(京都)最終.ppt 次世代スパコンについて知る集い 配布資料 世界最高性能を目指すシステム開発について ー次世代スパコンのシステム構成と施設の概要 - 平成 22 年 1 月 28 日 理化学研究所次世代スーパーコンピュータ開発実施本部横川三津夫 高性能かつ大規模システムの課題と対応 演算性能の向上 CPU のマルチコア化,SIMD( ベクトル化 ) 機構 主記憶へのアクセス頻度の削減 - CPU 性能とメモリアクセス性能のギャップ

More information

CCS HPCサマーセミナー 並列数値計算アルゴリズム

CCS HPCサマーセミナー 並列数値計算アルゴリズム 大規模系での高速フーリエ変換 2 高橋大介 daisuke@cs.tsukuba.ac.jp 筑波大学計算科学研究センター 2016/6/2 計算科学技術特論 B 1 講義内容 並列三次元 FFT における自動チューニング 二次元分割を用いた並列三次元 FFT アルゴリズム GPU クラスタにおける並列三次元 FFT 2016/6/2 計算科学技術特論 B 2 並列三次元 FFT における 自動チューニング

More information

プログラミング基礎

プログラミング基礎 C プログラミング Ⅰ 授業ガイダンス C 言語の概要プログラム作成 実行方法 授業内容について 授業目的 C 言語によるプログラミングの基礎を学ぶこと 学習内容 C 言語の基礎的な文法 入出力, 変数, 演算, 条件分岐, 繰り返し, 配列,( 関数 ) C 言語による簡単な計算処理プログラムの開発 到達目標 C 言語の基礎的な文法を理解する 簡単な計算処理プログラムを作成できるようにする 授業ガイダンス

More information

memo

memo 計数工学プログラミング演習 ( 第 3 回 ) 2016/04/26 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 内容 ポインタ malloc 構造体 2 ポインタ あるメモリ領域 ( アドレス ) を代入できる変数 型は一致している必要がある 定義時には値は不定 ( 何も指していない ) 実際にはどこかのメモリを指しているので, #include

More information

Microsoft PowerPoint - No6note.ppt

Microsoft PowerPoint - No6note.ppt 前回 : 管理 管理の目的 : の効率的利用 ( 固定区画方式 可変区画方式 ) しかし, いかに効率よく使ったとしても, 実行可能なプログラムサイズや同時に実行できるプロセス数は実装されているの大きさ ( 容量 ) に制限される 256kB の上で,28kB のプロセスを同時に 4 個実行させることはできないか? 2 256kB の上で,52kB のプロセスを実行させることはできないか? 方策 :

More information

VXPRO R1400® ご提案資料

VXPRO R1400® ご提案資料 Intel Core i7 プロセッサ 920 Preliminary Performance Report ノード性能評価 ノード性能の評価 NAS Parallel Benchmark Class B OpenMP 版での性能評価 実行スレッド数を 4 で固定 ( デュアルソケットでは各プロセッサに 2 スレッド ) 全て 2.66GHz のコアとなるため コアあたりのピーク性能は同じ 評価システム

More information

目次 1. はじめに 用語説明 対象アダプタ P HBA/2P HBAで異なる性能 付録 ( 性能測定環境 ) P HBAでの性能測定環境 P HBAでの性能測定環境 本書の

目次 1. はじめに 用語説明 対象アダプタ P HBA/2P HBAで異なる性能 付録 ( 性能測定環境 ) P HBAでの性能測定環境 P HBAでの性能測定環境 本書の ホワイトペーパー Hitachi Gigabit Fibre Channel アダプタ - 16G FC アダプタに搭載される FC ポート数の性能への影響 について - 2014 年 4 月発行 株式会社日立製作所 1 / 9 Copyright 2014 Hitachi, Ltd. All rights reserved 目次 1. はじめに... 3 2. 用語説明... 4 3. 対象アダプタ...

More information

<4D F736F F D20332E322E332E819C97AC91CC89F090CD82A982E78CA982E9466F E393082CC8D5C91A291CC90AB945C955D89BF5F8D8296D85F F8D F5F E646F63>

<4D F736F F D20332E322E332E819C97AC91CC89F090CD82A982E78CA982E9466F E393082CC8D5C91A291CC90AB945C955D89BF5F8D8296D85F F8D F5F E646F63> 3.2.3. 流体解析から見る Fortran90 の構造体性能評価 宇宙航空研究開発機構 高木亮治 1. はじめに Fortran90 では 構造体 動的配列 ポインターなど様々な便利な機能が追加され ユーザーがプログラムを作成する際に選択の幅が広がりより便利になった 一方で 実際のアプリケーションプログラムを開発する際には 解析対象となる物理現象を記述する数学モデルやそれらを解析するための計算手法が内包する階層構造を反映したプログラムを作成できるかどうかは一つの重要な観点であると考えられる

More information

Microsoft PowerPoint - os ppt [互換モード]

Microsoft PowerPoint - os ppt [互換モード] 5. メモリ管理 (2) 概要ページ管理 式ページ置換アルゴリズム 28/5/23 メモリ管理 (2) 1 ページング ( 復習 ) 仮想アドレス空間, 主記憶 ( 実アドレス空間 ) を固定サイズのページに分割 仮想アドレス空間のページを主記憶 ( メモリ ) のページに対応させる ページテーブル ( 変換表 ) を実メモリ上に保持 ページを単位としたアドレス変換 ( 仮想ページ番号, オフセット

More information

修士論文

修士論文 AVX を用いた倍々精度疎行列ベクトル積の高速化 菱沼利彰 1 藤井昭宏 1 田中輝雄 1 長谷川秀彦 2 1 工学院大学 2 筑波大学 1 目次 1. 研究背景 目的 2. 実装, 実験環境 3. 実験 - 倍々精度ベクトル演算 - 4. 実験 - 倍々精度疎行列ベクトル積 - 5. まとめ 多倍長精度計算フォーラム 2 目次 1. 研究背景 目的 2. 実装, 実験環境 3. 実験 - 倍々精度ベクトル演算

More information

memo

memo 計数工学プログラミング演習 ( 第 3 回 ) 2017/04/25 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 内容 ポインタの続き 引数の値渡しと参照渡し 構造体 2 ポインタで指されるメモリへのアクセス double **R; 型 R[i] と *(R+i) は同じ意味 意味 R double ** ポインタの配列 ( の先頭 ) へのポインタ R[i]

More information

- 主な機能 - 設定機能キャッシュメモリをキャッシュセグメントに分割し 業務で使用する論理ディスクを割り付けるための設定を行います WebSAM istoragemanager のクライアント画面から操作が可能です キャッシュセグメント作成 削除機能キャッシュセグメントの作成 削除を可能にします

- 主な機能 - 設定機能キャッシュメモリをキャッシュセグメントに分割し 業務で使用する論理ディスクを割り付けるための設定を行います WebSAM istoragemanager のクライアント画面から操作が可能です キャッシュセグメント作成 削除機能キャッシュセグメントの作成 削除を可能にします istorage VirtualCachePartitioning 製品概要 istorage VirtualCachePartitioning は ストレージのキャッシュメモリを複数の区画 ( キャッシュセグメント ) に分割する機能をサポートします キャッシュ分割は 仮想化環境における各テナントでの占有量を制限して I/O 帯域を確保することで 仮想化環境の高安定性を実現するための機能です この機能を導入することにより

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション Oracle GRID Center Flash SSD + 最新ストレージと Oracle Database で実現するデータベース統合の新しい形 2011 年 2 月 23 日日本オラクル Grid Center エンジニア岩本知博 進化し続けるストレージ関連技術 高速ストレージネットワークの多様化 低価格化 10GbE FCoE 8Gb FC ディスクドライブの多様化および大容量 / 低価格化

More information

Insert your Title here

Insert your Title here マルチコア マルチスレッド環境での静的解析ツールの応用 米 GrammaTech 社 CodeSonar によるスレッド間のデータ競合の検出 2013 GrammaTech, Inc. All rights reserved Agenda 並列実行に起因する不具合の摘出 なぜ 並列実行されるプログラミングは難しいのか データの競合 デッドロック どのようにして静的解析ツールで並列実行の問題を見つけるのか?

More information

ICDE’15 勉強会 R24-4: R27-3 (R24:Query Processing 3, R27 Indexing)

ICDE’15 勉強会 R24-4:  R27-3 (R24:Query Processing 3, R27 Indexing) R24-4: The DBMS - your Big Data Sommelier (R24: Query Processing 3) R27-3: A Comparison of Adaptive Radix Trees and Hash Tables (R27: Indexing) 小山田 (NEC) ICDE 15 勉強会 R24-4: The DBMS - your Big Data Sommelier

More information

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要 C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要 1 コンピュータの構造 1.1 パーソナルコンピュータの構造 自分の ( 目の前にある ) コンピュータの仕様を調べてみよう パソコン本体 = CPU( 中央処理装置

More information

6. パイプライン制御

6. パイプライン制御 6. パイプライン制御 パイプライン (Pipelining) 命令のスループットをあげて性能を向上する Program eection order Time (in instrctions) lw $, ($) fetch 2 4 6 8 2 4 6 8 Data access lw $2, 2($) 8 ns fetch Data access lw $3, 3($) Program eection

More information

Microsoft PowerPoint - sp ppt [互換モード]

Microsoft PowerPoint - sp ppt [互換モード] システムプログラム概論 メモリ管理 (1) 第 x 講 : 平成 20 年 10 月 15 日 ( 水 ) 2 限 S1 教室 今日の講義概要 メモリ管理の必要性 静的メモリ管理と動的メモリ管理 スワッピング, 仮想記憶 ページングとセグメンテーション 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/

More information

ソフトウェア基礎技術研修

ソフトウェア基礎技術研修 マルチサイクルを用いた実現方式 ( 教科書 5. 節 ) マルチサイクル方式 () 2 つのデータパス実現方式 単一クロックサイクル : 命令を クロックサイクルで処理 マルチクロックサイクル : 命令を複数クロックサイクルで処理 単一クロックサイクル方式は処理効率が悪い. CLK 処理時間 命令命令命令命令命令 時間のかかる命令にクロック サイクル時間をあわさなければならない. 余り時間の発生 クロック

More information

HDDコピーツール CloneDrive2

HDDコピーツール CloneDrive2 裸族のお立ち台 DJ Revolution CROS2U3RV 専用アプリ 2018 04/24 HDD コピーツール CloneDrive2 取扱説明書 HDD コピーツール CloneDrive2 1. 概要 3 2. 対応 OS 対応機種 4 3. ソフトウェアを起動する 5 4. 用方法 8 もくじ2 1概要HDDコピーツール CloneDrive2 OS がインストールされた HDDやSSDのデータを

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2016 年度 5 セメスター クラス C3 D1 D2 D3 計算機工学 13. メモリシステム ( 教科書 8 章 ) 大学院情報科学研究科 鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ レジスタ選択( 復習 ) MIPS の構造 PC 命令デコーダ 次 PC 計算 mux 32x32 ビットレジスタファイル

More information

ワイヤレスセンサモジュール取扱説明書

ワイヤレスセンサモジュール取扱説明書 スポーツセンシング 遠隔制御アプリケーション (For Windows) [ スポーツセンシング無線 ] 目次 1. 概要... 3 1.1 はじめに... 3 2. 遠隔制御アプリケーション... 4 2.1 はじめに... 4 2.2 アプリケーションの構成... 4 3. 機能詳細... 5 3.1 共通メニュー... 5 3.1.1. 接続... 5 3.1.1. COM ポート... 5

More information

コンピュータの仕組み(1)ハードウェア

コンピュータの仕組み(1)ハードウェア Copyright 守屋悦朗 2005 コンピュータの仕組み (1) ハードウェア 2.1 CPU の基本原理 2 つの整数の和を出力するプログラムを考えよう main() { int a, b, c; /* 変数 a,b が整数値をとる変数であることを宣言する */ a = 1; /* a に 1 を代入する */ b = 2; /* b に 2 を代入する */ c = a+b; /* a と

More information

bc0710_010_015.indd

bc0710_010_015.indd Case Study.01 Case Study.02 30 Case Study.05 Case Study.03 Case Study.04 Case Study.06 Case Study.07 Case Study.08 Case Study.21 Case Study.22 Case Study.24 Case Study.23 Case Study.25 Case Study.26

More information

Microsoft PowerPoint - No7note.ppt

Microsoft PowerPoint - No7note.ppt 仮想記憶 (2) 実際に存在する主記憶 ( 物理メモリ ) の容量に制限されない 仮想的な記憶空間 をユーザに提供する 仮想記憶の基本アイディア 主記憶に入りきらない大きなプログラムでも, ある時点で実行されているのはプログラムの一部のみ, 必要となるデータも一時には一部のデータのみ ( 参照の局所性 ) プログラム全体はディスク装置に入れておき, 実行時に必要な部分を主記憶にもってくればよい 主記憶容量

More information

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤 情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤 2017.12.7 前回の演習問題の解答例 1. 四則演算のできる計算機のプログラム ( 括弧も使える ) 2. 実数の扱える四則演算の計算機のプログラム ( 実数 も というより実数 が が正しかったです ) 3. 変数も扱える四則演算の計算機のプログラム ( 変数と実数が扱える ) 演習問題 1 で行うべきこと

More information

Microsoft PowerPoint - ARCEMB08HayashiSlides.ppt [互換モード]

Microsoft PowerPoint - ARCEMB08HayashiSlides.ppt [互換モード] 演算 / メモリ性能バランスを考慮した CMP 向けオンチップ メモリ貸与法の提案 九州大学 林徹生今里賢一井上弘士村上和彰 1 発表手順 背景 目的 演算 / メモリ性能バランシング 概要 アクセスレイテンシの削減とオーバーヘッド 提案手法の実現方法 着目する命令 (Cell プロセッサへの ) 実装 性能評価 姫野ベンチマーク Susan@MiBench おわりに 2 チップマルチプロセッサ (CMP)

More information

Microsoft PowerPoint - sp ppt [互換モード]

Microsoft PowerPoint - sp ppt [互換モード] // システムプログラム概論 メモリ管理 () 今日の講義概要 ページ管理方式 ページ置換アルゴリズム 第 5 講 : 平成 年 月 日 ( 月 ) 限 S 教室 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/ // 第 5 講メモリ管理 () ページング ( 復習

More information

Microsoft Word ●書式付IO性能_杉崎_ _更新__ doc

Microsoft Word ●書式付IO性能_杉崎_ _更新__ doc 2.2.3. 書式付 I/O 性能 上智大学南部伸孝富士通株式会社内藤俊也 杉崎由典 1. はじめに I/O 処理に要する時間の内訳は システムの実 I/O 時間 + ランタイムの書式処理時間となっている プログラムを用いた書式付 I/O 時間を富士通コンパイラで評価した所 システム時間が約 12% であり ランタイム時間が約 88% ということが確認された 即ち 書式付 I/O 性能は ランタイムの性能に大きく影響される

More information

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1 7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 10001 番地とすると, そこから int 型のサイズ, つまり 4 バイト分の領域が確保される.1

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 多倍長精度演算の性能評価 日時 年 月 日 :3-: 場所工学院大学新宿校舎 8 階第 4 会議室 高エネルギー加速器研究機構 濱口信行 hgu@post.kek.jp // 第 回多倍長精度計算フォーラム . はじめに 計算センター => ユーザプログラムの実行効率は何 % です よく出ています or 改善してください 実行性能 = 演算量 / 実行時間実行効率 = 実行性能 / 理論性能 ユーザ実行時間

More information

V8_教育テキスト.dot

V8_教育テキスト.dot 1.1 Universal Volume Manager 概要 1.1.1 Universal Volume Manager とは Universal Volume Manager は VSP ファミリーに 機種の異なる複数のストレージ ( 外部ストレージ と呼ぶ ) を接続機能です 外部ストレージ接続時 Universal Volume Manager はこの外部ストレージをストレージシステムの内部ストレージ

More information

Microsoft PowerPoint - OS09.pptx

Microsoft PowerPoint - OS09.pptx この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました 主記憶管理 ページング パワーポイント 7 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 復習 復習 主記憶管理

More information

InfiniDB最小推奨仕様ガイド

InfiniDB最小推奨仕様ガイド 最小推奨仕様ガイド Release 4.0 Document Version 4.0-1 www.calpont.com 1 InfiniDB 最小推奨仕様ガイド 2013 年 10 月 Copyright 本書に記載された InfiniDB Calpont InfiniDB ロゴおよびその他のすべての製品またはサービスの名称またはスローガンは Calpont およびそのサプライヤまたはライセンサの商標であり

More information

CPUスケジューリング

CPUスケジューリング 5-6 プロセス管理と CPU スケジューリング 1 多重プログラミングの概念 CPU を無駄なく使いたい ジョブ A ジョブ B 開始遊休状態 : 入力 開始遊休状態 : 入力 遊休状態 : 入力 遊休状態 : 入力 停止 停止 図 4.1 二つの上部 A,B の実行 2 多重プログラミングの概念 ジョブ A 開始遊休状態 : 入力 遊休状態 : 入力 停止 ジョブ B 待ち 開始遊休状態 : 入力

More information

UIOUSBCOM.DLLコマンドリファレンス

UIOUSBCOM.DLLコマンドリファレンス UIOUSBCOM.DLL UIOUSBCOM.DLL Command Reference Rev A.1.0 2008/11/24 オールブルーシステム (All Blue System) ウェブページ : www.allbluesystem.com コンタクト :contact@allbluesystem.com 1 このマニュアルについて...3 1.1 著作権および登録商標...3 1.2

More information

cp-7. 配列

cp-7. 配列 cp-7. 配列 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1 本日の内容 例題 1. 月の日数配列とは. 配列の宣言. 配列の添え字. 例題 2. ベクトルの内積例題 3. 合計点と平均点例題 4. 棒グラフを描く配列と繰り返し計算の関係例題 5. 行列の和 2 次元配列 2 今日の到達目標

More information

共通マイクロアーキテクチャ 富士通はプロセッサー設計に共通マイクロアーキテクチャを導入し メインフレーム UNIX サーバーおよびスーパーコンピューターそれぞれの要件を満たすプロセッサーの継続的かつ効率的な開発を容易にしている また この取り組みにより それぞれの固有要件を共通機能として取り込むこと

共通マイクロアーキテクチャ 富士通はプロセッサー設計に共通マイクロアーキテクチャを導入し メインフレーム UNIX サーバーおよびスーパーコンピューターそれぞれの要件を満たすプロセッサーの継続的かつ効率的な開発を容易にしている また この取り組みにより それぞれの固有要件を共通機能として取り込むこと IDC ホワイトペーパー : メインフレーム UNIX サーバー スーパーコンピューターを統合開発 : 共通マイクロプロセッサーアーキテクチャ 共通マイクロアーキテクチャ 富士通はプロセッサー設計に共通マイクロアーキテクチャを導入し メインフレーム UNIX サーバーおよびスーパーコンピューターそれぞれの要件を満たすプロセッサーの継続的かつ効率的な開発を容易にしている また この取り組みにより それぞれの固有要件を共通機能として取り込むことを可能としている

More information

情報処理概論(第二日目)

情報処理概論(第二日目) 情報処理概論 工学部物質科学工学科応用化学コース機能物質化学クラス 第 8 回 2005 年 6 月 9 日 前回の演習の解答例 多項式の計算 ( 前半 ): program poly implicit none integer, parameter :: number = 5 real(8), dimension(0:number) :: a real(8) :: x, total integer

More information

Microsoft PowerPoint - 3.3タイミング制御.pptx

Microsoft PowerPoint - 3.3タイミング制御.pptx 3.3 タイミング制御 ハザードの回避 同期式回路と非同期式回路 1. 同期式回路 : 回路全体で共通なクロックに合わせてデータの受け渡しをする 通信における例 :I 2 C(1 対 N 通信 ) 2. 非同期式回路 : 同一のクロックを使用せず データを受け渡す回路間の制御信号を用いてデータの受け渡しをす 通信における例 :UART(1 対 1 通信 ) 2 3.3.1 ハザード 3 1 出力回路のハザード

More information

理研スーパーコンピュータ・システム

理研スーパーコンピュータ・システム 線形代数演算ライブラリ BLAS と LAPACK の基礎と実践 2 理化学研究所情報基盤センター 2013/5/30 13:00- 大阪大学基礎工学部 中田真秀 この授業の目的 対象者 - 研究用プログラムを高速化したい人 - LAPACK についてよく知らない人 この講習会の目的 - コンピュータの簡単な仕組みについて - 今後 どうやってプログラムを高速化するか - BLAS, LAPACK

More information

2.1 インテル マイクロアーキテクチャー Haswell インテル マイクロアーキテクチャー Haswell は インテル マイクロアーキテクチャー Sandy Bridge とインテル マイクロアーキテクチャー Ivy Bridge の成功を受けて開発された この新しいマイクロアーキテクチャーの

2.1 インテル マイクロアーキテクチャー Haswell インテル マイクロアーキテクチャー Haswell は インテル マイクロアーキテクチャー Sandy Bridge とインテル マイクロアーキテクチャー Ivy Bridge の成功を受けて開発された この新しいマイクロアーキテクチャーの 2 章インテル 64 プロセッサー アーキテクチャーと IA-32 プロセッサー アーキテクチャー 本章では 最新世代のインテル 64 プロセッサーと IA-32 プロセッサー ( インテル マイクロアーキテクチャー Haswell インテル マイクロアーキテクチャー Ivy Bridge インテル マイクロアーキテクチャー Sandy Bridge ベースのプロセッサーと インテル Core マイクロアーキテクチャー

More information

PixeBurn! for HD Instruction Guide JPN

PixeBurn! for HD Instruction Guide JPN 取扱説明書 PixeBurn! for HD は AVCHD 規格で撮影した映像を そのままの画質で DVD や BD に書き込めるアプリケーションです お持ちのビデオカメラと Mac を接続してご使用ください 困ったときは 弊社ホームページに掲載している最新の情報をご覧ください 株式会社ピクセラオフィシャルホームページ http://www.pixela.co.jp/ それでも解決できない場合はユーザーサポートセンターへお問い合わせください

More information

Microsoft PowerPoint - GPUシンポジウム _d公開版.ppt [互換モード]

Microsoft PowerPoint - GPUシンポジウム _d公開版.ppt [互換モード] 200/0/9 数値流体解析の並列効率とその GPU による高速化の試み 清水建設 ( 株 ) 技術研究所 PHAM VAN PHUC ( ファムバンフック ) 流体計算時間短縮と GPU の活用の試み 現 CPUとの比較によりGPU 活用の可能性 現 CPU の最大利用 ノード内の最大計算資源の利用 すべてCPUコアの利用 適切なアルゴリズムの利用 CPU コア性能の何倍? GPU の利用の試み

More information

ES720_GPS_setup_procedure

ES720_GPS_setup_procedure はじめに 本資料では ES720 に GPS デバイスを接続して計測するまでの手順を説明致します 本資料は下記の INCA 環境を前提としています INCA V7.1 Service Pack 10.3 ES720 V7.1 Service Pack 10 INCA の基本的な操作につきましては オンラインヘルプやマニュアルをご参照ください 本資料では Windows 標準のリモートデスクトップ機能を使用して

More information

ソフトウェア基礎技術研修

ソフトウェア基礎技術研修 算術論理演算ユニットの設計 ( 教科書 4.5 節 ) yi = fi (x, x2, x3,..., xm) (for i n) 基本的な組合せ論理回路 : インバータ,AND ゲート,OR ゲート, y n 組合せ論理回路 ( 復習 ) 組合せ論理回路 : 出力値が入力値のみの関数となっている論理回路. 論理関数 f: {, } m {, } n を実現.( フィードバック ループや記憶回路を含まない

More information

hpc141_shirahata.pdf

hpc141_shirahata.pdf GPU アクセラレータと不揮発性メモリ を考慮した I/O 性能の予備評価 白幡晃一 1,2 佐藤仁 1,2 松岡聡 1 1: 東京工業大学 2: JST CREST 1 GPU と不揮発性メモリを用いた 大規模データ処理 大規模データ処理 センサーネットワーク 遺伝子情報 SNS など ペタ ヨッタバイト級 高速処理が必要 スーパーコンピュータ上での大規模データ処理 GPU 高性能 高バンド幅 例

More information

組込み Linux の起動高速化 株式会社富士通コンピュータテクノロジーズ 亀山英司 1218ka01 Copyright 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED

組込み Linux の起動高速化 株式会社富士通コンピュータテクノロジーズ 亀山英司 1218ka01 Copyright 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED 組込み Linux の起動高速化 株式会社富士通コンピュータテクノロジーズ 亀山英司 1218ka01 組込み Linux における起動高速化 組込み Linux の起動時間短縮について依頼あり スペック CPU : Cortex-A9 ( 800MB - single) RAM: 500MB 程度 要件 起動時間 画出し 5 秒 音出し 3 秒 終了時間 数 ms で電源断 1 課題と対策 問題点

More information

Microsoft PowerPoint - OS08.pptx

Microsoft PowerPoint - OS08.pptx この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました 管理 割り当て パワーポイント 27 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 復習 復習 管理 ユーザに独立した論理アドレス空間を提供

More information

ComputerArchitecture.ppt

ComputerArchitecture.ppt 1 人間とコンピュータの違い コンピュータ 複雑な科学計算や膨大な量のデータの処理, さまざまな装置の制御, 通信などを定められた手順に従って間違いなく高速に実行する 人間 誰かに命令されなくても自発的に処理したり, 条件が変化しても臨機応変に対処できる 多くの問題解決を経験することで, より高度な問題解決法を考え出す 数値では表しにくい情報の処理ができる 2 コンピュータの構成要素 構成要素 ハードウェア

More information

N08

N08 CPU のキモチ C.John 自己紹介 英語きらい 絵かけない 人の話を素直に信じない CPUにキモチなんてない お詫び 予告ではCとC# とありましたがやる気と時間の都合上 C++のみを対象とします 今日のネタ元 MSDN マガジン 2010 年 10 月号 http://msdn.microsoft.com/ja-jp/magazine/cc850829.aspx Windows と C++

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 03 変数と式 人間システム工学科井村誠孝 m.imura@kwansei.ac.jp 3.1 変数と型 変数とは p.60 C 言語のプログラム中で, 入力あるいは計算された数や文字を保持するには, 変数を使用する. 名前がついていて値を入れられる箱, というイメージ. 変数定義 : 変数は変数定義 ( 宣言 ) してからでないと使うことはできない. 代入 : 変数には値を代入できる.

More information

検証結果の利 にあたっての注意事項等について 東日本電信電話株式会社 日本電信電話株式会社 年 5 月 1 5 日更新 1. 本資料の位置づけ 1.1. 本資料は 東日本電信電話株式会社 ( 以下 NTT 東日本 という ) 及び 日本電信電話株式会社 ( 以下 NTT 日本 という

検証結果の利 にあたっての注意事項等について 東日本電信電話株式会社 日本電信電話株式会社 年 5 月 1 5 日更新 1. 本資料の位置づけ 1.1. 本資料は 東日本電信電話株式会社 ( 以下 NTT 東日本 という ) 及び 日本電信電話株式会社 ( 以下 NTT 日本 という 検証結果の利 にあたっての注意事項等について 東日本電信電話株式会社 日本電信電話株式会社 2 0 1 7 年 5 月 1 5 日更新 1. 本資料の位置づけ 1.1. 本資料は 東日本電信電話株式会社 ( 以下 NTT 東日本 という ) 及び 日本電信電話株式会社 ( 以下 NTT 日本 という ) が STN から I 網への移 に伴い提供終了を予定している INS ネットディジタル通信モード

More information

コンピュータ工学Ⅰ

コンピュータ工学Ⅰ コンピュータ工学 Ⅰ 中央処理装置 Rev. 2019.01.16 コンピュータの基本構成と CPU 内容 ➊ CPUの構成要素 ➋ 命令サイクル ➌ アセンブリ言語 ➍ アドレッシング方式 ➎ CPUの高速化 ➏ CPUの性能評価 コンピュータの構成装置 中央処理装置 (CPU) 主記憶装置から命令を読み込み 実行を行う 主記憶装置 CPU で実行するプログラム ( 命令の集合 ) やデータを記憶する

More information

コンピュータ工学Ⅰ

コンピュータ工学Ⅰ コンピュータ工学 Ⅰ Rev. 2018.01.20 コンピュータの基本構成と CPU 内容 ➊ CPUの構成要素 ➋ 命令サイクル ➌ アセンブリ言語 ➍ アドレッシング方式 ➎ CPUの高速化 ➏ CPUの性能評価 コンピュータの構成装置 中央処理装置 (CPU) 主記憶装置から命令を読み込み 実行を行う 主記憶装置 CPU で実行するプログラム ( 命令の集合 ) やデータを記憶する 補助記憶装置

More information

10-vm1.ppt

10-vm1.ppt オペレーティングシステム ~ 仮想記憶 (1) ~ 山田浩史 hiroshiy @ cc.tuat.ac.jp 2015/06/19 OS の目的 裸のコンピュータを抽象化 (abstraction) し より使いやすく安全なコンピュータとして見せること OS はハードウェアを制御し アプリケーションの効率的な動作や容易な開発を支援する OS がないと メモリをアプリケーション自身が管理しなければならない

More information

3次多項式パラメタ推定計算の CUDAを用いた実装 (CUDAプログラミングの練習として) Implementation of the Estimation of the parameters of 3rd-order-Polynomial with CUDA

3次多項式パラメタ推定計算の CUDAを用いた実装 (CUDAプログラミングの練習として)  Implementation of the Estimation of the parameters of 3rd-order-Polynomial with CUDA 3 次多項式パラメタ推定計算の CUDA を用いた実装 (CUDA プログラミングの練習として ) Estimating the Parameters of 3rd-order-Polynomial with CUDA ISS 09/11/12 問題の選択 目的 CUDA プログラミングを経験 ( 試行錯誤と習得 ) 実際に CPU のみの場合と比べて高速化されることを体験 問題 ( インプリメントする内容

More information