@techreport{oai:ipsj.ixsq.nii.ac.jp:00210420, author = {古山, 凌 and 津村, 雄太 and 川角, 冬馬 and 仲田, 優哉 and 梅田, 弾 and 木村, 啓二 and 笠原, 博徳}, issue = {20}, month = {Mar}, note = {組込み向けシステム開発には,MATLAB/Simulink のようなツールが幅広く利用されており,設計から実装・検証を一貫して行うことができる.このような開発では,Embedded Coder や MATLAB Coder のような組み込みシステム上に実装する自動 C コード生成がサポートされているが,マルチコアプロセッサによる並列処理を十分に活用できていない.従来までに,Simulink モデル内のブロック間並列性を抽出する手法が提案されているが,ブロック内部の並列性や MATLAB 言語で記述されたカスタムブロック内の並列性を抽出していない.これに対して,MATLAB/Simulink から自動生成された C コードに対して,モデル内のブロック間並列性やブロック内部のループ並列性を抽出する OSCAR 自動並列化コンパイラを用いたマルチグレイン並列化手法が提案されている.しかしながら,コードレベルでの並列化ではコンパイラの解析機能に依存し,自動生成されたコード特有の冗長的な構造により,コンパイラによる解析が難しい場合が存在した.そこで,従来の OSCAR 自動並列化コンパイラの解析機能に加えて,シンボリック伝搬とループインターチェンジ及び動的メモリ確保解析機能を拡張し,より多くのアプリケーションで自動並列化可能にした.本稿では OSCAR 自動並列化コンパイラにより MATLAB/Simulink アプリケーションを並列化した結果,Intel Xeon X5670 での 4 コア実行時,画像勾配計算では 1.88 倍,二次元台座エッジの抽出では 1.79 倍,時系列データの移動平均計算では 5.04 倍の速度向上が得られた.また PSNR では 3.62 倍の速度向上が得られた.さらに画像回転では 2.63 倍,緑色検出では 3.48 倍の速度向上が得られた.同様に,上記のアプリケーションに対して Cortex-A72 を 4 コア持つ Raspberry Pi4 上での速度向上を確認した.これらの結果から OSCAR 自動並列化コンパイラによる MATLAB/Simulink アプリケーションの並列性抽出が有効であることを確認した.}, title = {OSCARコンパイラによるMATLAB/Simulinkアプリケーションの自動並列化}, year = {2021} }