プログラムの処理時間を短縮したくございます。

計算速度を向上させたいです。
AIにプログラム内で作成した沢山のデータを予測させようとしています。
データ数が多いため、データ作成およびAI予測に、長時間を要します。
計算時間を短縮するため、以下の事を既に実行しております。
・parfor の利用は、プログラム上不可能でした。
・Matlab に記載されてある 'パフォーマンス向上の手法' を用いた時間短縮。
・GPUで処理 → 反対に処理時間が延長しました。
 原因は、CPE-GPU間でのデータの遷移時間が長いことに起因していると思います。
以下が、質問内容になります。
①他に計算速度を向上させる方法がございましたら、ご教授願いたいです。
②GPU を使いこなせていない可能性があるため、GPU を用いたデータ作成時間および AI の予測時間を短縮させる方法も知りたくございます。
お手数をおかけしますが、どうぞよろしくお願いします。

3 个评论

Kojiro Saito
Kojiro Saito 2022-6-17
高速化を行うには、闇雲に並列処理を適用せずに、どこが処理のボトルネックになっているのか特定する必要があります。
まず、コードのプロファイリングでどこに一番時間が掛かっているか調べてみてはいかがでしょうか?
全部の処理を行うと時間が掛かるので、使用するデータを少なくして試しみると良いと思います。
かなえ 永井
かなえ 永井 2022-6-20
お早いご対応ありがとうございます。
早速、実行してみます。
また何か疑問点が発生しましたら、再度ご質問します。
ご回答ありがとうございました。
かなえ 永井
かなえ 永井 2022-6-22
追加で質問がございます。
プロファイリングした結果、AI に結果を予測させる時がボトルネックになっていました。
そのAIは genFunctionを用い、関数化しています。
AI(関数)の処理速度を向上させたいのですが、
①パフォーマンス向上の手法(https://jp.mathworks.com/help/matlab/matlab_prog/techniques-for-improving-performance.html) 以外の処理速度向上方法
②GPU を用いた AI 予測時間短縮方法
があればご教授願いたいです。
お手数をおかけしますが、どうぞよろしくお願いします。

请先登录,再进行评论。

 采纳的回答

Kojiro Saito
Kojiro Saito 2022-6-22

0 个投票

genFunctionを使われた関数ということで、浅いネットワークを使った予測をされているのかと思います。
浅いネットワークの場合、以下2つは同じ結果になりますが、
y = sim(net,x,xi,ai)
y = net(x,xi,ai)
sim (ニューラル ネットワークのシミュレーション)ではオプションで並列処理やGPUを指定できます。
y = sim(net,x,xi,ai, 'useGPU','yes');
でGPUを使った予測、
y = sim(net,x,xi,ai,'useParallel','yes');
でマルチCPUを使った予測ができます。
こちらで処理時間短縮になるでしょうか。

5 个评论

かなえ 永井
かなえ 永井 2022-6-22
ご回答ありがとうございます。
y = net(x) で予測はできるのですが、
y = sim(net, x) で予測を行おうとすると、エラーが生じます。
入力因数が不足しています。
エラー:net (54)
isCellX = iscell(X);
関数 net の中でエラーが生じているようですが、何が原因かわかりません。
なお、xi, ai = 0 にして、
y = net(x, 0, 0) で予測できましたが、y = sim(net, x, 0, 0) で予測できませんでした。
net は genFunction で関数化済みです。
どう処理すれば良いか再度、ご教授願えませんか。
何卒よろしくお願い申し上げます。
それではnetでオプションを指定してみたらどうでしょうか?
y = net(x, 0, 0, 'useGPU','yes');
y = net(x, 0, 0, 'useParallel','yes');
Kojiro Saito
Kojiro Saito 2022-6-23
時間短縮できて良かったです。差し支えなければこちらの回答の「採用」をポチッとお願いできますでしょうか?
かなえ 永井
かなえ 永井 2022-6-23
採用を押しました。
今後ともよろしくお願いします。
Kojiro Saito
Kojiro Saito 2022-6-23
ありがとうございます!

请先登录,再进行评论。

更多回答(1 个)

かなえ 永井
かなえ 永井 2022-6-23

0 个投票

ご回答ありがとうございます。
net でオプションを指定し、GPUおよびマルチCPUを用いた予測を行いました。
時間短縮できました (処理時間:GPU < マルチCPU < オプション指定なし)。
親切なご回答ありがとうございました。
今後ともよろしくお願い申し上げます。

类别

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!