2

この質問は、 VisualProfilerを使用してPyCudaコードをプロファイリングする方法とほぼ同じです。Linux用のCUDA5を備えた新しいNVIDIANsightIDEについては除きます。

派手なNsightを使用してプロファイリングしたいPyCUDAPythonスクリプトがあります。

サンプルスクリプト(以下に含まれる実行可能アクセス許可付き)をポイントして、外部ツール構成のビルドを設定しました。次に、これを実行して、コンソールでプリントアウトを確認できます。次に、プロファイルモードに移動し、[実行]-> [プロファイル]をクリックします---コンソールにプリントアウトが表示されますが、プロファイラー情報は表示されません。NsightでC/CUDAプログラムを実行したときに表示される、タイミングプロットと占有率計算機、およびコードに対するNVIDIAの提案を取得するにはどうすればよいですか?

ここにあるIDEnoobの合計(主にコマンドライン)。私の質問に重要な情報が含まれていない場合は申し訳ありません。Ubuntu 11.10、PyCUDA2012.1。

Nsightのスクリーンショット

example.py:

#!/usr/bin/env python
import pycuda.autoinit
import pycuda.driver as drv
import numpy

from pycuda.compiler import SourceModule

mod = SourceModule("""
__global__ void multiply_them(float *dest, float *a, float *b)
{
  const int i = threadIdx.x;
  dest[i] = a[i] * b[i];
}
""")

multiply_them = mod.get_function("multiply_them")

a = numpy.random.randn(400).astype(numpy.float32)
b = numpy.random.randn(400).astype(numpy.float32)

dest = numpy.zeros_like(a)
multiply_them(
        drv.Out(dest), drv.In(a), drv.In(b),
        block=(400,1,1), grid=(1,1))

print "error:", numpy.sum(numpy.abs(dest - a*b).ravel())
print "Done"
#pycuda.autoinit.context.detach() # seems to break PyCUDA 2012.1
4

2 に答える 2

1

Nsight Eclipse Editionは現在、PyCUDAアプリケーションのデバッグをサポートしていません。

あなたが試すことができる1つのこと(私はそれを自分で試していません):

  1. メインメニューで、[実行]->[プロファイル構成...]を選択します。
  2. Pythonインタープリター(例:'/ usr / bin / python')を「C /C++アプリケーション」と入力します
  3. 「プロジェクト」リストで既存のプロジェクトを指定します。
  4. [引数]タブで、スクリプトファイルへのパスを指定します。
  5. 右下の「プロファイル」を押します。

pycudaをインストールしていないので、スクリプトのプロファイリングが期待どおりに失敗しました...

于 2012-11-03T00:12:41.450 に答える
0

私は以前nvvp、タイムラインとプログラム分析を取得していました。chmod 755スクリプトだけを追加#!/usr/bin/env pythonし、上部にaを追加してnvvpに渡します。

于 2012-12-06T00:31:25.430 に答える