複雑な制御構造を持つプログラムのSIMD命令セットによる最適化

書誌事項

タイトル別名
  • フクザツナ セイギョ コウゾウ オ モツ プログラム ノ SIMD メイレイ セット ニ ヨル サイテキカ
  • An Optimizing Method with SIMD Instruction Set for Program with Complex Control Structure

この論文をさがす

抄録

近年の汎用プロセッサの多くは,複数のパックされたデータを1命令で演算可能なSIMD(Single Instruction Multiple Data)命令セットを搭載している.この命令セットはデータの並列性を利用して,大量のデータを通常の命令よりも高速に処理することが可能である.そのため,マルチメディア処理や数値計算処理の高速化に利用されている.これまで,自動解析によってSIMD命令セットを使ったプログラムの並列化を実現するための研究が多くなされており,コンパイラによるSIMD並列化も行われるようになりつつある.ところで,SIMD命令はパックされたデータ1つ1つに対して,異なる演算を実行するということができない.そのため,条件分岐やループのような複雑な制御構造は,あまり最適化対象として扱われなかった.しかし,そのような制御構造がSIMD並列化の適用範囲となれば,より多くのプログラムが最適化可能となることが期待できる.そこで本論文では,複雑な制御構造を持つプログラムをSIMD並列化するための手法を提案する.本論文の提案手法をCOINSコンパイラインフラストラクチャに実装し,テストプログラムをPowerPCのSIMD命令セット向けにSIMD並列化して速度を比較したところ,本来のプログラムの1.19倍から12.3倍の速度で動作した.

Modern general purpose processors have SIMD (Single Instruction Multiple Data) instruction set which computes packed data in parallel. Using data parallelism, this instruction set processes mass data faster than the scalar. Therefore it is used to optimize multimedia or mathmatic processing. There are researches to analyze programs to vectoize with SIMD instruction set, that make compilers to enable to generate SIMD codes. By the way, SIMD instruction set cannot select instructions for every packed data. Accordingly the complex control flow which includes conditional branches or loops are not treated for optimization with the instruction set. However if they became applicable to parallelize with that instruction set, more programs are expected to be optimized. In this paper, the method vectorizing the programs containing complex control structure with SIMD instruction set is proposed.It was implemented with COINS compiler infrastructure and converted some programs from scalar to vector. They achieved from 1.19 to 12.3 times speedup on PowerPC's SIMD instruction set.

収録刊行物

被引用文献 (1)*注記

もっと見る

参考文献 (15)*注記

もっと見る

キーワード

詳細情報 詳細情報について

問題の指摘

ページトップへ