メモリ帯域とCPUキャッシュの効率が問題だ
の問題がなかなか面白い。
ループ回数が膨大=i,j の軸が結構長いと仮定すると
多分 CPU のキャッシュが実質として効いてない(効かない)のが最初の問題で、メモリ帯域に率速してしまっているのが性能問題の主因だろう。
変化は一方向に伝搬しているように見える(i を更新して i-1 で見てる、j+1を元にjに反映)のでブロックごとに演算して CPU キャッシュを効かせてあげる&依存関係から外れる所を並列化の対象とすると良いんだけど、実コードに落とすとなると結構難しい。
投稿日時 : 2009年11月19日 12:51
Tweet

コメントを追加