ループ展開との組合せとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > ループ展開との組合せの意味・解説 

ループ展開との組合せ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/16 13:56 UTC 版)

ソフトウェアパイプライン」の記事における「ループ展開との組合せ」の解説

一般にソフトウェアパイプライニングはループ展開組み合わせることで、うまく実現できる例え上記の例は、下記のようにも記述することができる(bignumber が 3 の倍数とする) for i = 1 to (bignumber - 2) step 3 A(i) A(i+1) A(i+2) B(i) B(i+1) B(i+2) C(i) C(i+1) C(i+2)end もちろん、繰り返し回数展開する数で常に割り切れるとは限らない(この問題対す解答は、ループ展開の項目を参照のこと)。なお、ソフトウェアパイプラインではこのような問題対す効率的な解法であるDuff's device利用できない点に注意が必要である。 一般的にはループ展開ソフトウェアパイプライン最適実装方法ない場合もある。下のようにレイテンシ大き命令を含むループ考えると、 for i = 1 to bignumber A(i) ; 3 cycleレイテンシ B(i) ; 3 C(i) ; 12 (浮動小数点演算) D(i) ; 3 E(i) ; 3 F(i) ; 3end 命令 C のボトルネック避けるためには、ループ12 回以上回る必要がある。つまりループ部分コード12倍以上増加する(使用するメモリ量に影響するだけでなく、キャッシュ性能にも影響するコード膨張参照)。さらに、bignumber が 12割り切れない場合追加するコードループ自体より大きくなる可能性がある。このコードでは(これ以上コード膨張させずに)ソフトウェアパイプライン使用できないために効率悪くなるまた、bignumber がループ展開されない場合ループ回数に対してコードサイズの点から適切であったとすると(例え10-20程度)、実行時間大半を、効率的でない12余り部分コード実行費やしてしまい、ソフトウェアパイプラインによる最適化非効率なものになってしまう。 上記の例を異な方法ソフトウェア実装したものを示す。(前処理後処理については後述する) 前処理for i = 1 to (bignumber - 6) A(i+6) B(i+5) C(i+4) D(i+2) ; i+3 をスキップする E(i+1) F(i)end後処理 ループ前後実行する前処理後処理について説明する前に、このコード繰り返し部分について元のコードと同じ結果得られるかを検証する。元のループ7度目の繰り返し考える。パイプライン化されループ最初繰り返しでは、元のループでの7度目の繰り返しまでの命令含んでいる。命令列は下記のようになるIteration 1: A(7) B(6) C(5) D(3) E(2) F(1) Iteration 2: A(8) B(7) C(6) D(4) E(3) F(2) Iteration 3: A(9) B(8) C(7) D(5) E(4) F(3) Iteration 4: A(10) B(9) C(8) D(6) E(5) F(4) Iteration 5: A(11) B(10) C(9) D(7) E(6) F(5) Iteration 6: A(12) B(11) C(10) D(8) E(7) F(6) Iteration 7: A(13) B(12) C(11) D(9) E(8) F(7) しかし、元のループとは異なりパイプライン化されたものは、命令 C のボトルネック回避できる。C(7) およびその結果依存した D(7) の間には命令12個あり、C(7) のレイテンシ無駄にならずに他の命令実行使用される前処理後処理では、繰り返し始め終わり処理する下記前処理として考えられるコードである。 ; 前処理 (行に分割して表示)A(1)A(2), B(1)A(3), B(2), C(1)A(4), B(3), C(2)A(5), B(4), C(3), D(1)A(6), B(5), C(4), D(2), E(1) 各行パイプライン化されループにおける一回分の繰り返し相当し繰り返し自体のための命令取り除かれている。後処理も同様である。

※この「ループ展開との組合せ」の解説は、「ソフトウェアパイプライン」の解説の一部です。
「ループ展開との組合せ」を含む「ソフトウェアパイプライン」の記事については、「ソフトウェアパイプライン」の概要を参照ください。

ウィキペディア小見出し辞書の「ループ展開との組合せ」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ループ展開との組合せ」の関連用語

ループ展開との組合せのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ループ展開との組合せのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのソフトウェアパイプライン (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS