問題タブ [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.
cuda - コードに double がないにもかかわらず、Cuda が double を float に降格するエラー
PyCUDA を使用してカーネルを作成しています。私の GPU デバイスはコンピューティング機能 1.1 (arch sm_11) のみをサポートしているため、コードでは float のみを使用できます。すべてを float で行うように多大な努力を払ってきましたが、それにもかかわらず、コンパイラ エラーを引き起こし続けるコード内の特定の行があります。
コードのチャンクは次のとおりです。
ここで、idx()
はピクセル インデックスおよびに__device__
基づいて線形インデックスを返すヘルパー関数であり、整数のみで機能します。私はそれをずっと使用していますが、他の場所ではエラーが発生しないため、そうではないことを強く疑っています。呼び出しは、float をサポートする標準 C 数学関数からのものです。関連するすべての配列、、およびはすべて、関数への入力の一部です (つまり、Python で宣言され、デバイス変数に変換されるなど)。i
j
idx()
sqrt()
x_gradient
y_gradient
gradient_mag
float*
上記のコードでフロートする余分なキャストを削除しようとしましたが、うまくいきませんでした。私はまた、次のような完全に愚かなことをしようとしました:
これらのバリエーションはすべて同じエラーになります。
何か案は?私は自分のコードで多くのエラーをデバッグし、今夜それが機能することを望んでいましたが、これは私が理解できないバグであることが判明しました.
追加- これは、私のマシンで上記と同じエラーを生成するカーネルの切り詰められたバージョンです。
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」は未定義です」
ありがとう!
pycuda - pycuda-'CUDA_ROOTが設定されておらず、nvccがパスにありません。'
pycudaをインストールして使用しても問題ありませんでしたが、(sthを実行せずに)動作しなくなったため、再度インストールを試みましたが、
python configure.py --cuda-root = / usr / local / cuda / bin
タイトルに誤りがあります。
nvccファイルは上記のディレクトリにあります。
pycuda - pycuda-「ライブラリを含む」の扱い方
私はc++のコードを持っています。それをcudaで変更しました。しかし、私はPycudaを使いたいです。コードには、たとえば次のものがあります。
Pycudaではライブラリを使用できません。どうすればその問題に対処できますか?
python - pycuda (lerp) を使用した線形補間
私は pyCUDA に入ったばかりのレクリエーション pythonista です。pyCUDA を使用して線形補間 (lerp) を実装する方法を理解しようとしています。CUDA CG 機能は次のとおりです。http://http.developer.nvidia.com/Cg/lerp.html
私の最終的な目標は、加重ランダム ポイントのセットからの pycuda の双一次補間です。私は C や CUDA をプログラミングしたことがなく、学習しながら学んでいます。
これは私が得た距離です:
これに関するヘルプは素晴らしいでしょう!
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
です。
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」は定義されていません
"::" が後に続く名前は、クラスまたは名前空間の名前でなければなりません
また:
式はオブジェクトへのポインター型でなければなりません (ただし、これはコードの別の部分からのものである可能性があります)
python - Windows 7 x64ビットのビジュアルスタジオ2010のpycuda
私は1週間以上、私のwin7 x64ビットマシンでpycudaのクリア/クリーンインストールを追跡しようとしましたが、http: //wiki.tiker.net/PyCuda/Installation/Windowsを見つけまし た-確かに言うことができます-唯一のページ誰もがそれを参照し続けますが、それはあまりにも曖昧です。pycuda を実際に使用している人に、自分のマシンでのセットアップ、Visual Studio 2010 での使用、およびインストールと pdf リソースに関するガイドを手伝ってくれることを求めています。
php - 複数のアレイの組み合わせをCudaでテストする
私は以下のコードをphpで記述しており、古いGeforce8800UltraのGPU処理能力を利用するためにCudaを読んでいます。このネストされた組み合わせテストをCuda並列処理コードに変換するにはどうすればよいですか(可能であれば...)?2Dアレイの合計の組み合わせ:$ a、$ b、$ c、$ d、$eはすぐに数兆に達します...
pycuda - 以前のカーネルのメモリを再利用するようにPyCUDAに指示するにはどうすればよいですか?
私のプログラムには2つのカーネルがあり、2番目のカーネルはすでにアップロードされた入力データと最初のカーネルからの結果を使用する必要があるため、メモリ転送を節約できます。これをどのようにアーカイブしますか?
これが私のカーネルを起動する方法です: