お客様: 大手電子部品メーカー 研究部門様

ご依頼内容

  • 研究中のレーダ3Dイメージングについて、実測データから3D点群を生成するプログラムと、アンテナ配置検討のためのシミュレーションプログラムを、GPUを活用して速くしたい、というご相談。
  • 開発を丸ごと任せるのではなく、高速化に用いた手法まで説明してもらい、以後は自分たちで手を入れられるようにしたい。
  • 必要な作業量が読みにくいため、時間単位で相談しながら進めたい。

課題

  • シミュレーションが1回の実行に10分以上かかり、アンテナ配置のパラメータを振って繰り返す検討に耐えないこと。
  • お客様の研究資産であるコードを預かり、計算の中身を変えずに、処理時間だけを短くすること。
  • 高速化の判断そのものを、お客様側で再現できる形にして渡すこと。

ソリューション

  • 時間単位の技術コンサルティング契約とし、打合せ、コード読解、プロファイリング、高速化実装に時間枠を配分した。作業内容と残り時間は、管理表で共有した。
  • プロファイリングにより、シミュレーションのボトルネックが、信号生成処理と、圧縮センシングによる超解像処理にあることを特定した。
  • gpuArrayによるGPU化、MEX化、信号生成処理の書き換えを適用し、実測データ処理と理論シミュレーションの2本を、順に高速化した。
  • お客様の環境のMATLABバージョンに合わせて、MEXを再ビルドした。
  • 高速化前後のプロファイラの比較と、変更点、選んだ手法の解説資料を添えた。
高速化前後の処理時間の比較
プロファイリングで測った、高速化前後の処理時間の内訳。処理時間の大半を信号生成処理が占めていた。
案件の課題・アプローチ・結果のまとめ図
案件の全体像。課題、適用した手法、結果をまとめたもの。

結果

  • シミュレーション1回あたりの処理時間は、1500秒から641秒(約2.3倍)まで短くなった。
  • アンテナ配置のパラメータを振って繰り返す検討を、研究の進み方に合わせて回せるようになった。
  • どこが遅く、なぜその手法を選んだかを資料として残したことにより、お客様側で、以後のコード改良にも同じ考え方を適用できるようになった。

ひとこと

  • 「研究のコードが重くて、試行の回数を稼げない」というご相談は、よくいただきます。どこが遅いかの切り分けから、GPU化やMEX化の実装まで、必要な範囲だけをお引き受けしています。
  • 研究のコードは、書いたご本人がその後も改良を続けていくものです。速くなった結果だけをお渡しすると、次の改良で元に戻ってしまうため、なぜその手法を選んだかまでお伝えすることを重視しています。
  • 高速化は、当てずっぽうに書き換えても効きません。計測でボトルネックを特定し、その処理の性質に合った手法を選ぶ、という順序が要ります。

お問い合わせ

開発事例にご興味ありましたら、お気軽にお問い合わせ下さい。
下記の、「今すぐお問い合わせ」をクリックして、フォームにご記入下さい。
早急に回答致します。

今すぐお問い合わせ