主要内容gydF4y2Ba

Gpuパフォ,マンスの測定と向上gydF4y2Ba

Gpuのベンチマ,ク入門gydF4y2Ba

MATLABgydF4y2Ba®gydF4y2Baの各種のベンチマクテストを使用してgpuのパフォマンスを測定できます。gydF4y2Ba

  • 単精度と倍精度の両方で,メモリ使用量と計算量の両方が多いタスクなどの各種テストを実行するには,MATLABで中央文件交换gydF4y2BagpuBenchgydF4y2Baを使用します。ディスプレカドのパフォマンスを演算カドと比較します。詳細にいては,gydF4y2Ba//www.tatmou.com/matlabcentral/fileexchange/34080-gpubenchgydF4y2Baを参照してください。gydF4y2Ba

  • 倍精度の行列計算について,PCIバスの速度,GPUメモリの読み取り/書き込み,およびピーク計算のパフォーマンスに関する情報を取得するには,gydF4y2BaGpuパフォ,マンスの測定gydF4y2BaでgydF4y2Baparalleldemo_gpu_benchgydF4y2Baスクリプトを使用します。gydF4y2Ba

単精度の計算を使用したパフォ,マンスの向上gydF4y2Ba

倍精度の代わりに単精度で計算を実行することにより,gpuのパフォ,マンスを向上できます。一方,cpu計算では,倍精度から単精度に切り替えてもこの向上は見られません。この理由は,多くのGPUカードが,高い単精度のパフォーマンスを要求するグラフィックス表示用に設計されているためです。gydF4y2Ba

Gpuでの単精度計算に適する代表的な計算例には,cpuメ,cpuジ処理と機械学習があります。gydF4y2Ba//www.tatmou.com/content/dam/mathworks/tag-team/Objects/d/Deep_Learning_in_Cloud_Whitepaper.pdfgydF4y2Baなどを参照してください。ただし,線形代数問題などの他の種類の計算には,通常,倍精度の処理が必要ですgydF4y2Ba

GPUカード,およびコアの合計数に応じて,単精度計算のパフォーマンスは倍精度計算と比較して最大50倍に向上します。ハ。gydF4y2BagpuBenchgydF4y2Baを使用して,特定のgpuのパフォ,マンス向上を調べることができます。gydF4y2Ba//www.tatmou.com/matlabcentral/fileexchange/34080-gpubenchgydF4y2Baを参照してください。gydF4y2Ba

英伟达gydF4y2Ba®gydF4y2BaGpuカ、ドの総合的なパフォ、マンスの概要に、gydF4y2Bahttps://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_unitsgydF4y2Baを参照してください。以下のようにして,単精度と倍精度の間のパフォ,マンス向上係数を計算できます。gydF4y2Ba

  • 上記のWikiペジでGPUを見けます。gydF4y2Ba

  • 表に記載されている単精度と倍精度のパフォ,マンス値を取得します。倍精度のgflops値がない場合は,倍精度は24 ~ 32倍の比率で遅いと仮定します。gydF4y2Ba

  • 記載されている単精度のgflops値を倍精度のgflops値で除算します。gydF4y2Ba

メモgydF4y2Ba

ラップトップにモバイルグラフィックスカードが搭載されている場合は,このカードをGPU計算に使用できます。ただし,ラップトップのGPUはデスクトップマシンのGPUと比較してパワーがかなり低い可能性があり,パフォーマンスも低下します。gydF4y2Ba

パフォマンス向上のための基本的なワクフロgydF4y2Ba

Matlabのgpu計算の目的は,アプリケ,ションの高速化です。このトピックでは,GPUハードウェアの構成やコード内でのベストプラクティスなど,GPUのパフォーマンスを向上させるための基本的な概念や方針について説明します。ここでは,難易度の高い実装とパフォマンスのトレドオフにいて説明します。また,gpuArray関数,gydF4y2BaarrayfungydF4y2Ba, mexファaapl . exe, cudaカ. exe,ネルのどれを使用するかを選択するための基準にaapl . exe。最後に,gpuでのパフォ,マンスを正確に測定する方法を説明します。gydF4y2Ba

MATLABコードを変換してGPUで実行できるようにする場合,最初は既に高いパフォーマンスを実現しているMATLABコードを使用するのが最善です。GPUとCPUのパフォーマンス特性は異なりますが,適切なMATLABコードを作成するための一般的な指針はGPU用の適切なMATLABコードを作成する場合にも役立ちます。ほとんどの場合,最初の手順はCPUコ,ドのプロファCPUリングです。プロファイラーでCPUでの処理時間が最も長いと表示されるコードの行については,GPU用のコード作成時に注意しなければならないものと考えられます。gydF4y2Ba

コードの変換時には,gpuArrayデータをサポートするMATLAB組み込み関数を使用するのが最も簡単です。これらの関数はgpuArray入力を使用し,GPUで計算を実行してgpuArray出力を返します。gpuArrayデタをサポトするMATLAB関数の一覧にいては,gydF4y2BaGpuでのmatlab関数の実行gydF4y2Baを参照してください。一般的に,これらの関数はCPUで計算される標準のMATLAB関数と同じ引数とデータ型をサポートしています。gydF4y2Ba

使用するすべての関数がgpuでサポ,トされている場合,gydF4y2BagpuArraygydF4y2Baを呼び出して入力デ,タをgpuに転送し,完了後にgydF4y2Ba收集gydF4y2Baを呼び出してGPUから出力データを取得することにより,GPUでのコードの実行を簡単に行うことができる場合があります。多くの場合はコードをベクトル化し,ループ化されたスカラー演算の代わりにMATLAB行列およびベクトル操作を使用します。ベクトル化はCPUでは一般的によい結果が得られますが,GPUでは通常,高いパフォーマンスを実現するために重要となります。詳細は,gydF4y2BaGpuのパフォ,マンス向上のためのベクトル化gydF4y2Baを参照してください。gydF4y2Ba

パフォマンス向上のための高度なルgydF4y2Ba

入力をgpuArrayに変換してコードをベクトル化した後でも,アルゴリズム内に組み込み関数でない処理や速度がアプリケーションの要件を満たさない処理が存在する場合があります。このような場合の対処としては3通りあり,gydF4y2BaarrayfungydF4y2Baを使用してアプリケーションの要素単位の部分をプリコンパイルするか,GPUライブラリ関数を使用するか,カスタムCUDAカーネルを作成します。gydF4y2Ba

純粋に要素単位の関数を使用している場合は,その関数をgydF4y2BaarrayfungydF4y2Baで呼び出すとパフォ,マンスを向上させることができます。Gpuの関数gydF4y2BaarrayfungydF4y2Baを使って要素単位のMATLAB関数をカスタムCUDAカーネルに変換すると,処理実行のオーバーヘッドを削減できます。多くの場合,アプリケ,ション全体をgydF4y2BaarrayfungydF4y2Baとあわせて使用することはできなくても,アプリケ,ションのサブセットでは可能となっています。gydF4y2Baarrayfunを使用した,要素単位のMATLAB®関数のGPUにおけるパフォーマンス改善gydF4y2Baの例では,この方法の基本的な概念を説明します。また,gydF4y2Baモンテカルロシミュレ,ションでのGPU arrayfunの使用gydF4y2Baの例では,金融アプリケ,ションのシミュレ,ションでこれを実行する方法を説明します。gydF4y2Ba

MATLABでは,并行计算工具箱™,图像处理工具箱™,信号处理工具箱™などの製品でGPU対応関数の拡張ラescブラリを使用できます。しかし,MATLABのGPUサポートでは直接組み込みアナログがない追加関数のライブラリが多数あります。たとえば,MATLAB同梱の CUDA ツールキットに含まれている NVIDIA Performance Primitives ライブラリや CURAND ライブラリなどがこれに該当します。これらのライブラリの関数を呼び出す必要がある場合は、GPU MEX インターフェイスを使用します。このインターフェイスを使用すると、MATLAB gpuArray からポインターをデバイスのデータへ抽出して GPU 関数に渡すことができます。戻り値は gpuArray に変換して MATLAB に返すことができます。詳細は、Cudaコ,ドを含む,mex関数の実行gydF4y2Baを参照してください。gydF4y2Ba

最後に,必要な処理のためのカスタムcudaカ,ネルを作成するという方法もあります。これらのカーネルはCUDAKernelオブジェクトを使用してMATLABに直接統合することができます。gydF4y2Ba

Gpuコンピュ,ティングへの3,のアプロ,チの説明:マンデルブロ集合gydF4y2Baの例では,この節で説明している3通りの方法による簡単な計算の実装方法を説明します。この例では,まず最初にGPUで実行するために簡単に変換できるMATLABコードを作成し,要素単位の処理でgydF4y2BaarrayfungydF4y2Baを使用するためにコードを変更してから同じ処理でカスタムCUDAカーネルを統合する方法を説明します。gydF4y2Ba

この他に,CUDAカーネルを墨西哥人ファイルの一部として作成し,墨西哥人ファイル内のCUDA运行时APIを使用して呼び出すこともできます。いずれの方法でも,MATLABコードで直接利用できない共有メモリやテクスチャメモリなどのGPUの低水準の機能を使用できるようになります。詳細にいては,gydF4y2Ba墨西哥を使用した高度なcuda機能へのアクセスgydF4y2Baの例を参照してください。gydF4y2Ba

パフォ,マンス向上のためのベストプラクティスgydF4y2Ba

ハ,ドウェア構成gydF4y2Ba

一般的に,gpuが計算のみに使用されている場合にパフォ,マンスは最高となります。問題処理のために相当量のメモリが使用され,さらにグラフィックス用のシステムによりデバイスが恒常的に使用されるため,計算とグラフィックスの両方に同じGPUデバイスを使用することは推奨されません。可能であれば,グラフィックス用には別のデバ。計算またはグラフィックス用のデバイス構成についての詳細は,オペレーティングシステムやドライバーのバージョンによって異なります。gydF4y2Ba

窗户gydF4y2Ba®gydF4y2Baシステムでは,gpuデバスは次の2。WDDM (Windows显示驱动程序模型)モ,ドまたはTCC (Tesla计算集群)モ,ドです。最高のパフォ、マンスを実現するには、計算に使用するデバ、スをTCCモ、ドにする必要があります。詳細は,nvidiaのドキュメンテ,ションを参照してください。gydF4y2Ba

英伟达の最高パフォーマンス計算デバイスである特斯拉シリーズでは,GPUメモリの読み取りと書き込みでECC(エラー修正コード)がサポートされています。Eccの目的は,まれに発生するビットエラ,を修正することです。このエラ,は主に動的メモリの読み取りや書き込みの際に発生します。パフォーマンスを向上させる方法のひとつとして,ECCを無効にし,達成可能なメモリの帯域幅を増やすことがあげられます。この方法でハードウェアを構成することは可能ですが,MathWorksではこの方法を推奨していません。パフォ,マンスの向上より,見えないエラ,のために精度が低下する方が影響が大きくなる場合があります。gydF4y2Ba

Matlabでのコ,ディング方法gydF4y2Ba

このトピックでは,gpuのパフォマンスを向上させるための一般的な技法にいて説明します。ここで紹介するヒントの一部は,cpu用のmatlabコ,ドの作成にも適用できます。gydF4y2Ba

Matlab配列のデ,タは列優先の順序で保存されます。そのため,配列の最初の列の次元で操作を行うと高い効果が得られます。データの次元のひとつが他の次元より大幅に長い場合は,その次元を最初の次元にするとパフォーマンスが高くなることがあります。同様に,ある特定の次元で頻繁に操作を行う場合は,その次元を最初の次元にすると最高のパフォーマンスを得られることが多くなります。連続する操作が配列の複数の次元を対象としている場合,各操作の間で配列の転置や並べ替えを行うとパフォーマンスが高まることがあります。gydF4y2Ba

Gpuでは,複数の結果を並列に計算するとパフォ,マンスが高まります。そのため,通常は行列および高次元配列演算の方がベクトルやスカラーでの演算に比べてパフォーマンスが大幅に高まります。高次元演算を使用するようにル,プを書き換えると,パフォ,マンスが高まります。ループベースでスカラー指向のコードを,MATLAB行列およびベクトル操作を使用するように変更するプロセスはベクトル化と呼ばれます。詳細は,gydF4y2Baベクトル化の使用gydF4y2Baを参照してください。gydF4y2Ba

既定では,matlabでのすべての操作は倍精度浮動小数点演算で実行されます。実際には,ほとんどの操作で整数や単精度浮動小数点など多数のデ,タ型がサポ,トされています。最新のgpuやCPUでは通常,単精度操作の方がスル,プットがはるかに高くなります。また,単精度浮動小数点デ,タの方がメモリの使用量が少なくなります。アプリケーションの精度に関する要件で単精度浮動小数点を使用できる場合,MATLABコードのパフォーマンスを大幅に向上させることができます。gydF4y2Ba

Gpuは,pciバスと呼ばれるデ,タ転送メカニズムの最後で使用されます。このバスはPCホストメモリから各種の拡張カードにデータを転送するための効率的で高い帯域幅を使用できる方法ですが,GPUデバイスまたはCPUのグローバルメモリの全体の帯域に比べると大幅に遅くなります(詳細については,gydF4y2BaGpuパフォ,マンスの測定gydF4y2Baの例を参照)。さらに,GPUデバイスからMATLABホストメモリへの転送を実行すると,MATLABは他のステートメントを実行する前に,デバイス上で保留中のすべての処理が完了するまで待機します。これにより,アプリケ,ションのパフォ,マンスが大幅に低下する可能性があります。一般的に,MATLABワークスペースとGPUの間でのデータ転送の回数は制限する必要があります。アプリケーションの起動時にデータをGPUに1回転送できる場合,GPUで可能なすべての計算を実行してから,その結果を最後にMATLABに転送すると,通常は最高のパフォーマンスを実現できます。同様に,可能な場合には,gydF4y2Ba0gydF4y2Baのような関数のgydF4y2Ba“gpuArray”gydF4y2BaオプションまたはgydF4y2Ba“喜欢”gydF4y2Baオプションを使用してgpu上に配列を直接作成するうえで役立ます(gydF4y2BaZ = 0 (___,'gpuArray')gydF4y2Ba,既存のgpuArraygydF4y2BaggydF4y2Baに対するgydF4y2BaZ = 0 (N,'like',g)gydF4y2Baなど)。gydF4y2Ba

Gpuでのパフォ,マンスの測定gydF4y2Ba

Gpuでパフォ,マンスを測定するための最適な方法は,gydF4y2BagputimeitgydF4y2Baを使用することです。この関数は入力として入力引数がない関数ハンドルを使用し,その関数について測定された実行時間を返します。この方法では,より適切な分解能を実現するためタイマー操作を繰り返すこと,初期化のオーバーヘッドを回避するため測定の前に関数を実行すること,タイミング関数のオーバーヘッドを抑制することなどのベンチマークに関する考慮事項に対応しています。また,gydF4y2BagputimeitgydF4y2Baを使用するとgpuでのすべての操作が最後のタ显卡ミングの前に完了します。gydF4y2Ba

たとえば,サgydF4y2BaNgydF4y2Ba行gydF4y2BaNgydF4y2Ba列の乱数行列gydF4y2Ba一个gydF4y2BaのgydF4y2Ba陆gydF4y2Ba分解を計算するために必要な時間の測定にいて考えてみます。これは,gydF4y2Ba陆gydF4y2Ba分解を実行する関数を定義し,関数ハンドルをgydF4y2BagputimeitgydF4y2Baに渡すことにより行うことができます。gydF4y2Ba

A = rand(N,gydF4y2Ba“gpuArray”gydF4y2Ba);fh = @() lu(A);gputimeit (fh, 2);gydF4y2Ba%第二个参数表示输出数量gydF4y2Ba

抽搐gydF4y2BaおよびgydF4y2BatocgydF4y2Baを使用してパフォ,マンスを測定することもできます。ただし,gpuの正確なタ,显卡ミングを取得するには,gydF4y2BatocgydF4y2Baを呼び出す前に処理が完了するまで待機しなければなりません。これを行う2の方法があります。最後のgpu出力で,gydF4y2BatocgydF4y2Baを呼び出す前にgydF4y2Ba收集gydF4y2Baを呼び出すことができます。この方法では,すべての計算が完了してから時間測定が実行されます。あるいは,gydF4y2BagpuDevicegydF4y2Baオブジェクトを入力として指定して,関数gydF4y2Ba等待gydF4y2Baを使用することもできます。たとえば,gydF4y2Ba抽搐gydF4y2Ba、gydF4y2BatocgydF4y2BaおよびgydF4y2Ba等待gydF4y2Baを使用して,行列gydF4y2Ba一个gydF4y2BaのgydF4y2Ba陆gydF4y2Ba分解の計算時間を測定する場合,以下のようにして行うことができます。gydF4y2Ba

gd = gpuDevice();抽搐();[l,u] = lu(A);等待(gd);tLU = toc();gydF4y2Ba

また,MATLABプロファイラーを使用して,計算時間がどのようにGPUコードに分散されているかを表示することもできます。時間測定を実行する場合,プロファイラーが各コード行を個別に実行するようにし,通常の動作中に発生するようなオーバーラップ(非同期)実行の原因とならないよう注意してください。アルゴリズム全体の時間測定を行うには,前述のようにgydF4y2Ba抽搐gydF4y2BaおよびgydF4y2BatocgydF4y2Ba,あるいはgydF4y2BagputimeitgydF4y2Baを使用してください。また,ユーザー定義の MEX 関数を非同期で実行した場合、プロファイルの検証結果が正確にならない場合があります。

Gpuのパフォ,マンス向上のためのベクトル化gydF4y2Ba

この例では、CPUの代わりにGPUで関数を実行し,計算をベクトル化することによってパフォーマンスを向上させる方法を説明します。gydF4y2Ba

行列の列に高速の畳み込みを実行する関数にいて考えてみましょう。高速の畳み込みは信号処理アプリケーションでは一般的な操作で,データの各列を時間領域から周波数領域に変換し,フィルターベクトルの変換により乗算して時間領域に再度変換し,結果を出力行列に格納します。gydF4y2Ba

函数gydF4y2Bay = fastConvolution(data,filter) [m,n] = size(data);gydF4y2Ba零垫过滤到列长度的数据,并进行转换gydF4y2BaFilter_f = fft(filter,m);gydF4y2Ba创建一个与data大小和类别相同的零数组gydF4y2BaY = 0 (m,n,gydF4y2Ba“喜欢”gydF4y2Ba、数据);gydF4y2Ba转换数据的每一列gydF4y2Ba为gydF4y2BaIx = 1:n af = fft(data(:, Ix));Y (:,ix) = ifft(af .* filter_f);gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba

CPU内でこの関数を特定のサ转换器ズのデ转换器タに対して実行し,実行時間をmatlab関数gydF4y2Ba时间gydF4y2Baで測定します。関数gydF4y2Ba时间gydF4y2Baは,起動やオ,バ,ヘッドの把握など一般的なベンチマ,クの考慮事項に対応しています。gydF4y2Ba

A = complex(randn(4096,100),randn(4096,100));gydF4y2Ba数据输入gydF4y2BaB = randn(16,1);gydF4y2Ba%过滤器输入gydF4y2Bac = fastConvolution(a,b);gydF4y2Ba计算输出gydF4y2Bactime = timeit(@()fastConvolution(a,b));gydF4y2Ba测量CPU时间gydF4y2Badisp ([gydF4y2Ba' CPU上的执行时间= 'gydF4y2Banum2str (ctime)]);gydF4y2Ba

サンプルマシンでは,このコ,ドにより以下の出力が表示されます。gydF4y2Ba

CPU上的执行时间= 0.019335gydF4y2Ba

次に,この関数をgpuで実行します。この操作は,入力データを通常のMATLAB配列ではなくgpuArrayに変更することにより簡単に実行できます。関数内で出力を作成する際にgydF4y2Ba“喜欢”gydF4y2Ba構文を使用すると,gydF4y2Ba数据gydF4y2BaがgpuArrayの場合にgydF4y2BaygydF4y2BaがgpuArrayになります。gydF4y2Ba

ga = gpuArray(a);gydF4y2Ba移动数组到GPUgydF4y2Bagb = gpuArray(b);gydF4y2Ba移动过滤器到GPUgydF4y2Bagc = fastConvolution(ga,gb);gydF4y2Ba% GPU计算gydF4y2Bagtime = gputimeit(@()fastConvolution(ga,gb));gydF4y2Ba测量GPU时间gydF4y2BaGerr = max(max(abs(gather(gc)-c)));gydF4y2Ba%计算错误gydF4y2Badisp ([gydF4y2Ba' GPU上的执行时间= 'gydF4y2Banum2str (gtime)]);disp ([gydF4y2Ba'最大绝对误差= 'gydF4y2Banum2str (gerr)]);gydF4y2Ba

同じマシンで,このコ,ドにより以下の出力が表示されます。gydF4y2Ba

CPU执行时间= 0.019335 GPU执行时间= 0.027235最大绝对误差= 1.1374e-14gydF4y2Ba

残念ながら,この問題によりgpuはCPUより処理が遅くなります。その理由は,gydF4y2Ba为gydF4y2BaループがFFT,乗算,逆FFTの各操作を長さが4096の各列に個別に実行しているためです。パフォーマンスを向上させるための最適な方法は,コードをベクトル化してMATLAB関数を1回呼び出すだけで多くの計算を実行できるようにすることです。FFT操作とifft操作は簡単にベクトル化できます。gydF4y2Bafft (A)gydF4y2Baは行列gydF4y2Ba一个gydF4y2Baの各列のFFTを計算します。MATLABバイナリ スカラー拡張関数bsxfungydF4y2Baを使用すると,行列の各列とフィルタ,との乗算を一度に実行できます。ベクトル化された関数は次のようになります。gydF4y2Ba

函数gydF4y2Bay = fastConvolution_v2(data,filter) m = size(data,1);gydF4y2Ba零垫过滤到数据长度,并转换gydF4y2BaFilter_f = fft(filter,m);gydF4y2Ba转换输入的每一列gydF4y2BaAf = fft(数据);gydF4y2Ba将每一列乘以过滤器并计算逆变换gydF4y2BaY = ift (bsxfun(@times,af,filter_f));gydF4y2Ba结束gydF4y2Ba

ベクトル化された関数を使用して同じ実験を実行します。gydF4y2Ba

A = complex(randn(4096,100),randn(4096,100));gydF4y2Ba数据输入gydF4y2BaB = randn(16,1);gydF4y2Ba%过滤器输入gydF4y2Bac = fastConvolution_v2(a,b);gydF4y2Ba计算输出gydF4y2Bactime = timeit(@()fastConvolution_v2(a,b));gydF4y2Ba测量CPU时间gydF4y2Badisp ([gydF4y2Ba' CPU上的执行时间= 'gydF4y2Banum2str (ctime)]);ga = gpuArray(a);gydF4y2Ba将数据移动到GPUgydF4y2Bagb = gpuArray(b);gydF4y2Ba移动过滤器到GPUgydF4y2Bagc = fastConvolution_v2(ga, gb);gydF4y2Ba% GPU计算gydF4y2Bagtime = gputimeit(@()fastConvolution_v2(ga,gb));gydF4y2Ba测量GPU时间gydF4y2BaGerr = max(max(abs(gather(gc)-c)));gydF4y2Ba%计算错误gydF4y2Badisp ([gydF4y2Ba' GPU上的执行时间= 'gydF4y2Banum2str (gtime)]);disp ([gydF4y2Ba'最大绝对误差= 'gydF4y2Banum2str (gerr)]);gydF4y2Ba
CPU执行时间= 0.010393 GPU执行时间= 0.0020537最大绝对误差= 1.1374e-14gydF4y2Ba

結論として,コードをベクトル化するとCPUとGPUの両方のバージョンで処理速度が向上します。しかし,ベクトル化の効果はCPUよりgpuバ,ジョンの方が高くなります。パフォーマンスが向上したCPUバージョンの処理速度は元の約2倍ですが,GPUバージョンの場合は元の13倍になります。元のバージョンではGPUのコード処理速度はCPUより40%遅くなっていますが,パフォーマンスが向上したバージョンでは約5倍速くなっています。gydF4y2Ba

Gpuのトラブルシュ,ティングgydF4y2Ba

マシンに搭載されているGPUが1つのみの場合,グラフィックスカードがディスプレイカードとしても機能している可能性があります。この場合,GPUはオペレーティングシステム(OS)が課すタイムアウトの影響を受ける可能性があります。以下のようにして,使用しているgpuにいてこれを調べることができます。gydF4y2Ba

gpuDevicegydF4y2Ba
ans =gydF4y2Ba
...gydF4y2Ba
KernelExecutionTimeout: 1gydF4y2Ba
KernelExecutionTimeout = 1gydF4y2Baである場合、OSが常に更新内容を画面に出力できるように,GPUはOSが課すタイムアウトの影響を受けます。Gpuの計算時間が長すぎる場合,実行は強制終了されます。この場合は,matlabを再起動してgpuの計算を正常に再開しなければなりません。gydF4y2Ba

参考gydF4y2Ba

関連するトピックgydF4y2Ba