MoinQ:

Memory_Wall/pttについて、ここに記述してください。

PTT/history

http://yokota-www.cs.titech.ac.jp/ptt/arc/207/207.html

話者: 前野年紀、太田昌孝 題目: メモリ階層むけのプログラミング 概要:

 ワークステーションの演算性能は最近の8年間は毎年2倍向上している。
ところがメモリ(DRAM)アクセス時間の短縮は年7%にすぎない。
そこで、演算器とメモリのあいだにあるレジスタやキャッシュ(SRAM)を意識した
プログラミングが重要になっている。
キャッシュ容量を越える大きさの行列の積を計算する場合を例にとると、
素朴なプログラムではピーク性能の2%程度の演算能力しか発揮できないのに
対し、工夫次第で60ー90%を利用できる。
 そこで使用したプログラミング技法としては、
キャッシュ再利用のためのブロッキング、作業スペースへのコピー、
外側ループの展開、ソフトウェアパイプライン技法による演算の並列実行など
がある。これらの技法の有効性を解説し、一般の行列演算への適用、
コンパイラへの採用の可否を検討する。

食事:


第 207 回 PTTメモ
日時: 1995年4月20日(木) 18:30~20:20 場所: 東京工業大学 大岡山西7号館 204号室 題目: メモリ階層むけのプログラミング 話者: 前野年紀、太田昌孝 出席者: 大駒誠一, 佐々木崇郎(慶應大), 小出洋, 斉藤正伸, 中村嘉志, 多田好克(電通大), 牛嶋哲, 大島芳樹, 太田昌孝, 大野浩之, 柏木伸一郎, 佐々木晃 豊田正史, 原澤康, 深町賢一, 前野年紀, 山岸光(東工大) 小川宏高, 下國治, 立山義祐, 寺田実, 永松礼夫(東大), 田中淳裕(NEC), 外川良太郎, 並木美太郎, 森永智之(農工大), 伊知地宏, 亀井光久(富士ゼロックス), 石畑清(明大), 和田英一 質疑応答:


 ワークステーションの演算性能は最近の8年間は毎年2倍向上している。
ところがメモリ(DRAM)アクセス時間の短縮は年7%にすぎない。
そこで、演算器とメモリのあいだにあるレジスタやキャッシュ(SRAM)を意識した
プログラミングが重要になっている。
  キャッシュ容量を越える大きさの行列の積を計算する場合を例にとると、
素朴なプログラムではピーク性能の2%程度の演算能力しか発揮できないのに対し、
工夫次第では60ー90%を利用できるようになる。
  そこで使用されるプログラミング技法としては、
キャッシュやレジスタの再利用のためのブロッキング、作業スペースへのコピー、
ソフトウェアパイプライン技法による演算の並列実行などがある。

  現実の計算機で演算性能とメモリ性能のバランス見るために、
行列計算の基本パッケージBLAS(1,2,3)の性能を測定し、
また、キャッシュミスペナルティなどのデータとあわせて紹介した。
  そのあと改良した行列乗算の性能、改善法を説明した。
  [測定にはピーク性能200MFLOPSのHP9000/755(100MHz)を使ったが、
90MHzのPentiumでも似たような傾向であった。IBM RS/6000はキャッシュラインが
大きくメモリバンド幅も大きいためHPより行列演算むきであるようだ。]

  コンパイラによる自動変換はさかんに研究されてはいるが、
あと5~10年はアプリケーションプログラム作成者が工夫する必要があるので、
アーキテクチャ教育が重要であると締めくくった。

質  疑:
  キャッシュミスの様子がプログラマにわかるといいというコメントがあった。
CPROF(キャッシュプロファイラ)というツールがある。また、メモリアクセスの
シミュレータも作られている。
  OSやデータベース、GUIのようなローカリティのなさそうな分野ではどうするか、
については、数値計算のように長時間の演算を行なう場合すら研究中であり、
アプリケーション側で工夫するしかなさそうである。
  キャッシュのプリフェッチが有効だろうという意見もあった。ただ、レイテンシだけ
ではなく、メモリバンド幅も問題であり、これからの計算機はメモリを中心に
設計されるようになると思われる。
  特定の計算機むけにチューンすると、ポータビリティのないプログラムができると
いう指摘があった。ポータビリティをどの程度重視するかは、コストパフォーマンスの
問題であり、ソフトウェア作成の永遠の課題である。

感想と反省:
  活発な討論ありがとうございました。素朴なプログラムでは性能がでないことは
理解されるようになったと思います。しかし、日本ではコンパイラの研究が少なく、
高性能のアプリケーションもほとんど評価されていないように思われるがいかが。

文  献:
 前野年紀、太田昌孝:パイプラインとキャッシュを活用するためのプログラミング技法
        情報処理学会 第35回プログラミングシンポジウム報告集 pp.31-42 (1994)

 D. F. Bacon, S. L. Graham, O. J. Sharp: 
        Compiler Transformations for High-Performance Computing,
  ACM Computing Surveys, Vol. 26, 4, December 1994.

第 222 回 PTT のお知らせ 話者: 太田 昌孝 (東京工業大学総合情報処理センター) mohta@necom830.hpcl.titech.ac.jp 題目: 多倍長modular整数乗算

http://yokota-www.cs.titech.ac.jp/ptt/arc/222/222.html

MoinQ: 行列乗算/Memory_Wall/ptt (last edited 2024-10-21 00:38:24 by ToshinoriMaeno)