問題タブ [pycuda]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3746 参照

cuda - コードに double がないにもかかわらず、Cuda が double を float に降格するエラー

PyCUDA を使用してカーネルを作成しています。私の GPU デバイスはコンピューティング機能 1.1 (arch sm_11) のみをサポートしているため、コードでは float のみを使用できます。すべてを float で行うように多大な努力を払ってきましたが、それにもかかわらず、コンパイラ エラーを引き起こし続けるコード内の特定の行があります。

コードのチャンクは次のとおりです。

ここで、idx()はピクセル インデックスおよびに__device__基づいて線形インデックスを返すヘルパー関数であり、整数のみで機能します。私はそれをずっと使用していますが、他の場所ではエラーが発生しないため、そうではないことを強く疑っています。呼び出しは、float をサポートする標準 C 数学関数からのものです。関連するすべての配列、、およびはすべて、関数への入力の一部です (つまり、Python で宣言され、デバイス変数に変換されるなど)。ijidx()sqrt()x_gradienty_gradientgradient_magfloat*

上記のコードでフロートする余分なキャストを削除しようとしましたが、うまくいきませんでした。私はまた、次のような完全に愚かなことをしようとしました:

これらのバリエーションはすべて同じエラーになります。

何か案は?私は自分のコードで多くのエラーをデバッグし、今夜それが機能することを望んでいましたが、これは私が理解できないバグであることが判明しました.

追加- これは、私のマシンで上記と同じエラーを生成するカーネルの切り詰められたバージョンです。

0 投票する
1 に答える
2445 参照

cuda - pycuda 、cuda -- いくつかの質問と、「識別子 "N" は未定義です」というエラーが発生する簡単なコード

私はpycudaを学ぼうとしていますが、理解しようとしている質問がいくつかあります。私の主な質問は、pycuda と cuda ファイル内の関数の間で通信する方法だと思います。

したがって、C++ ファイル (cuda ファイル) があり、そこにいくつかの関数があり、そのうちの 1 つに pycuda を実装したい場合、たとえば、いくつかの配列を含み、計算を行う関数「compute」が必要だとしましょう。それら.私のアプローチは何ですか?

1) Python で配列を初期化し、メモリを GPU に割り当て、データを GPU に転送します。

2) pycuda から mod=SourceModule(""" global void ......""") を呼び出します。

今、私は尋ねたいです:私はこのモジュールをどのように処理しますか?私はそれにすべての「計算」機能を入れますか?なぜなら、「グローバル」でいくつかの計算を行うだけなら、pycudaとの間で通信する方法がわからないからですc++ 関数。結果を c++ ファイル (cuda ファイル) に戻す方法。

3) cuda では、スレッドの数を「blockDIm」として、ブロックの数を「gridDim」として持っています。 size(16,16) は 256 ブロックを意味しますか?

4) ベクトルを追加する 'cuda by an example book' の例を pycuda で実行しようとしました。コードは以下のとおりです。

しかし、それは私にエラーを与えます:「識別子「N」は未定義です」

ありがとう!

0 投票する
3 に答える
24881 参照

pycuda - pycuda-'CUDA_ROOTが設定されておらず、nvccがパスにありません。'

pycudaをインストールして使用しても問題ありませんでしたが、(sthを実行せずに)動作しなくなったため、再度インストールを試みましたが、

python configure.py --cuda-root = / usr / local / cuda / bin

タイトルに誤りがあります。

nvccファイルは上記のディレクトリにあります。

0 投票する
1 に答える
539 参照

pycuda - pycuda-「ライブラリを含む」の扱い方

私はc++のコードを持っています。それをcudaで変更しました。しかし、私はPycudaを使いたいです。コードには、たとえば次のものがあります。

Pycudaではライブラリを使用できません。どうすればその問題に対処できますか?

0 投票する
1 に答える
2095 参照

python - pycuda (lerp) を使用した線形補間

私は pyCUDA に入ったばかりのレクリエーション pythonista です。pyCUDA を使用して線形補間 (lerp) を実装する方法を理解しようとしています。CUDA CG 機能は次のとおりです。http://http.developer.nvidia.com/Cg/lerp.html

私の最終的な目標は、加重ランダム ポイントのセットからの pycuda の双一次補間です。私は C や CUDA をプログラミングしたことがなく、学習しながら学んでいます。

これは私が得た距離です:

これに関するヘルプは素晴らしいでしょう!

0 投票する
1 に答える
3750 参照

cuda - PyCUDA ですべての NVCC 警告を表示する

[更新]から警告メッセージを出力するにはどうすればよいcompiler.SourceModule(kernel_code)ですか? @flipchart の助けを借りて、PyCUDA を介して適切なパラメーターを NVCC に渡すことができましたが、コンパイラの警告にアクセスする場所はまだわかりません。

[元の質問]

NVCC を直接使用すると、コンパイラ スイッチ-Wall* を使用できます。これをpycudaでどのようにアーカイブしますか?

を試しmod = compiler.SourceModule(kernel_code,options=['-Wall'])ましたが、エラー メッセージには次のように記載されています。

pytools.prefork.ExecError: error invoking 'nvcc --cubin -Wall -arch sm_11 -I/usr/local/lib/python2.6/dist-packages/pycuda-0.94.2-py2.6-linux-x86_64.egg/pycuda/../include/pycuda kernel.cu': status 255 invoking 'nvcc --cubin -Wall -arch sm_11 -I/usr/local/lib/python2.6/dist-packages/pycuda-0.94.2-py2.6-linux-x86_64.egg/pycuda/../include/pycuda kernel.cu': nvcc fatal : Unknown option 'Wall'

floatソースの問題は、 からへの非明示的な変換を見落としたため、丸一日デバッグに費やしたことintです。

* CUDA 3.0 以降、「--compiler-options -Wall」を使用したシステム ヘッダーからの警告

0 投票する
2 に答える
2792 参照

c++ - cuda, pycuda -- 複素数の書き方 -- エラー: クラス "cuComplex" にはメンバ "i" がありません

cuda、pycudaで複素数を使用するのが困難です。

私はCでこれを持っています:

また、同じコードで:

これをpycudaで使用するように変換するにはどうすればよいですか? 私はこのようにsthを試しました(本「例によるcuda」によると):

私が取るエラーのいくつかは次のとおりです。

データ メンバー初期化子は許可されていません

この宣言にはストレージ クラスまたは型指定子がありません

ありがとうございました!

-------------------- -編集- --------------------------- ------------------

私は#include <pycuda-complex.hpp> (上記に関連して)を使用して次のことを行いました:

そして、typedef std::vector< boost::array<std::complex<double>,3 > > ComplexFieldType;

そしてComplexFieldType const & M、グローバル関数内で、「float *M」または「cmplx *M」だけを試しました。

今まで、私はエラーが発生しています:

変数「cmlx」は型名ではありません

pycuda::complex cmplx; を使用する場合 、そして私は得る:

識別子「cmlx」は定義されていません

"::" が後に続く名前は、クラスまたは名前空間の名前でなければなりません

また:

式はオブジェクトへのポインター型でなければなりません (ただし、これはコードの別の部分からのものである可能性があります)

0 投票する
2 に答える
1537 参照

python - Windows 7 x64ビットのビジュアルスタジオ2010のpycuda

私は1週間以上、私のwin7 x64ビットマシンでpycudaのクリア/クリーンインストールを追跡しようとしましたが、http: //wiki.tiker.net/PyCuda/Installation/Windowsを見つけまし た-確かに言うことができます-唯一のページ誰もがそれを参照し続けますが、それはあまりにも曖昧です。pycuda を実際に使用している人に、自分のマシンでのセットアップ、Visual Studio 2010 での使用、およびインストールと pdf リソースに関するガイドを手伝ってくれることを求めています。

0 投票する
1 に答える
456 参照

php - 複数のアレイの組み合わせをCudaでテストする

私は以下のコードをphpで記述しており、古いGeforce8800UltraのGPU処理能力を利用するためにCudaを読んでいます。このネストされた組み合わせテストをCuda並列処理コードに変換するにはどうすればよいですか(可能であれば...)?2Dアレイの合計の組み合わせ:$ a、$ b、$ c、$ d、$eはすぐに数兆に達します...

0 投票する
1 に答える
496 参照

pycuda - 以前のカーネルのメモリを再利用するようにPyCUDAに指示するにはどうすればよいですか?

私のプログラムには2つのカーネルがあり、2番目のカーネルはすでにアップロードされた入力データと最初のカーネルからの結果を使用する必要があるため、メモリ転送を節約できます。これをどのようにアーカイブしますか?

これが私のカーネルを起動する方法です: