お客様: 大手電子部品メーカー 研究部門様
ご依頼内容
- 研究中のレーダ3Dイメージングについて、実測データから3D点群を生成するプログラムと、アンテナ配置検討のためのシミュレーションプログラムを、GPUを活用して速くしたい、というご相談。
- 開発を丸ごと任せるのではなく、高速化に用いた手法まで説明してもらい、以後は自分たちで手を入れられるようにしたい。
- 必要な作業量が読みにくいため、時間単位で相談しながら進めたい。
課題
- シミュレーションが1回の実行に10分以上かかり、アンテナ配置のパラメータを振って繰り返す検討に耐えないこと。
- お客様の研究資産であるコードを預かり、計算の中身を変えずに、処理時間だけを短くすること。
- 高速化の判断そのものを、お客様側で再現できる形にして渡すこと。
ソリューション
- 時間単位の技術コンサルティング契約とし、打合せ、コード読解、プロファイリング、高速化実装に時間枠を配分した。作業内容と残り時間は、管理表で共有した。
- プロファイリングにより、シミュレーションのボトルネックが、信号生成処理と、圧縮センシングによる超解像処理にあることを特定した。
- gpuArrayによるGPU化、MEX化、信号生成処理の書き換えを適用し、実測データ処理と理論シミュレーションの2本を、順に高速化した。
- お客様の環境のMATLABバージョンに合わせて、MEXを再ビルドした。
- 高速化前後のプロファイラの比較と、変更点、選んだ手法の解説資料を添えた。


結果
- シミュレーション1回あたりの処理時間は、1500秒から641秒(約2.3倍)まで短くなった。
- アンテナ配置のパラメータを振って繰り返す検討を、研究の進み方に合わせて回せるようになった。
- どこが遅く、なぜその手法を選んだかを資料として残したことにより、お客様側で、以後のコード改良にも同じ考え方を適用できるようになった。
ひとこと
- 「研究のコードが重くて、試行の回数を稼げない」というご相談は、よくいただきます。どこが遅いかの切り分けから、GPU化やMEX化の実装まで、必要な範囲だけをお引き受けしています。
- 研究のコードは、書いたご本人がその後も改良を続けていくものです。速くなった結果だけをお渡しすると、次の改良で元に戻ってしまうため、なぜその手法を選んだかまでお伝えすることを重視しています。
- 高速化は、当てずっぽうに書き換えても効きません。計測でボトルネックを特定し、その処理の性質に合った手法を選ぶ、という順序が要ります。
お問い合わせ
開発事例にご興味ありましたら、お気軽にお問い合わせ下さい。
下記の、「今すぐお問い合わせ」をクリックして、フォームにご記入下さい。
早急に回答致します。


