2017-07-17 23 views
0

私は最近、並列コードの高速化を目指してP100 GPUを購入しましたが、MATLABコードをCUDAコードに変換する方法を決定する助けが必要です(私はMATLABでは平文gpuarraysから移動しました) 。私は.ptxのカーネルとMEXのファイルを実験しており、両方でいくつかのロードブロッキングを実行しました。MATLABコードのCUDA実装

パラレルコードには、要素累乗、要素単位乗算、FFTおよびIFFT呼び出しがあります。複素数も組み込まれています。

.ptxは、CUDAカーネルまたはMEX CUDAファイルからコンパイルされたファイルで、FFT、IFFT、exp、およびマルチコールの実行に必要なファイルは簡単ですか?

+0

あなたはcuFFT(http://docs.nvidia.com/cuda/cufft/index.html)を試しましたか? – Matso

+0

私はcuFFTがMATLABのgpuArrray fft呼び出しに組み込まれていると信じています。そのような場合は、その面で改善すべき点はあまりありません。 – Jesse

答えて

2

本当にシンプルです。 MEXを使用する必要があるのは、ホストからのみ行うことができるNVIDIA cufftライブラリを呼び出すためです。ただし、MATLABのGPUメモリプールとFFTプランキャッシュが追加されているため、FFTとIFFTをMATLABから呼び出すよりも妥当なスピードアップを得ることはできません。だから多分あなたは要素ごとのカーネルに焦点を当てるべきです。

+0

お返事ありがとうございます。私はこの問題も認識し、要素単位の乗法と累乗のための複数のカーネルの解法を使って、MATLABを使ってfftとifftを呼び出すと思います。 – Jesse

関連する問題