問題タブ [nvcc]
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.
boost - BOOST_COMPILER の再定義を避けるために、ホスト コードを前処理しないように NVCC に指示します。
ホスト コードとデバイス コードの両方を含む .cu ファイルがあります。
ご覧のとおり、ブーストのミューテックス機能をインクルードします。ファイルをコンパイルすると、次の警告のためにエラーが発生します。
したがって、nvcc がデバイス コードとホスト コードの両方の前処理をすべて処理すると仮定します。はいの場合、どうすればそれを回避し、前処理も cl.exe (MSVC 2010、Win7) に渡すことができますか?
ホストコードを別のhpp/cppファイルに入れ、このファイルをcuファイルに含めようとしました-同じ問題です。ホスト コードでは、デバイス コードで使用されるサーフェス参照を定義します。これが、cu-file と host-code にインクルードして、それぞれデバイス コードで認識されるようにする必要がある理由です。
eclipse - プログラム 'nvcc' が $PATH に見つかりません
また、4x Error launching external scanner info generator (nvcc -dryrun -G -g -O0 .....) を取得します。
ubuntu 12.04用のcudaツールキット5をインストールし、開発ドライバーもインストールしてgtx580を取得しました
c++ - CUDA 実行時に nvcc "-arch"-flag をチェックアウト
たとえばnvcc -arch=sm_11
、またはnvcc -arch=sm_20
コードのコンパイルに使用されたかどうかに応じて、異なるカーネルを呼び出す可能性はありますか? もう少し明確にするには:
ご覧のとおり、CUjit_target_enum
inを見つけましたcuda.h
が、nvcc が enums 値の 1 つに等しいフラグを定義しているかどうかを確認できませんでした。
これに対する私の意図は、私のデバイスが倍精度浮動小数点数をサポートしているかどうかわからないということです。つまり、データを から に変換する必要がdouble
あるfloat
ため、別のカーネルを実行する必要があります (はい、可能であれば、単精度よりも倍精度でカーネルを実行することをお勧めします)。
また、それがうまくいく限り、まったく異なるアプローチをいただければ幸いです。
optimization - NVCCの最適化を完全に無効にする
GPUでピーク単精度フロップを測定しようとしています。そのため、レジスタで連続したMAD命令を実行するようにPTXファイルを変更しています。残念ながら、データのロード/ストアを実行しないため、コンパイラは実際には何の役にも立たないため、すべてのコードを削除しています。コンパイラがコードに触れないようにコードに追加するコンパイラフラグまたはプラグマはありますか?
ありがとう。
c - エラーをCUDAおよびGCCとリンクする
私はCとCUDAコードのセットをコンパイルしようとしてきました。問題は、ファイルを作成するときのコンパイルのリンク段階にあります。ホストで実行されるラッパー関数を作成して、デバイスにメモリを割り当て、デバイスにデータをコピーして、カーネルコードを実行しました。また、ラッパーコードはカーネルコードと同じファイルに含まれています。ラッパー。コードが関数を呼び出す方法は次のとおりです。
これが私が作ったヘッダーファイル「LAMMPS.h」の関数定義です:
そして、これが私が使用しているmakefileです:
最後に、コンパイル手順は正常に機能しますが、それらをすべてリンクしようとすると(tortGPUを使用した最後の手順で、次のエラーメッセージが表示されます)。
-Lを追加してgccを使用してみたところ、まったく同じエラーコードが表示されました。ありがとう!
windows - ホストコードのコンパイルに NVCC が使用するコンパイラを指定する
nvcc を実行すると、常に Visual C++ コンパイラ ( cl.exe
) が使用されます。GCCコンパイラを使用するにはどうすればよいですか?
CC
環境変数をに設定しgcc
ても修正されませんでした。また、実行可能ファイルのヘルプ出力には、これに関するオプションが見つかりませんでした。
eclipse - OSX10.8.1でNsightEclipseEditionRC1を使用する「使用可能なソースがありません。」
OS X MountainLion10.8.1でCUDA5RC1を使用しようとしています。Nsight Eclipse Editionからデバッグすると、次のエラーが発生します。
main()に使用できるソースがありません
nvccが-gと-Gを使用してデバイスとホストのデバッグシンボルを出力するように設定されていること、および-O0が最適化を無効にするように設定されていることを確認しました。
問題が何であるか、または私が実行できる他の診断について何か考えはありますか?
cuda - CUDAアプリケーションのコンピューティング機能は自動的にアップグレードされますか?
計算能力の低いCUDAプログラム(1.3(nvccフラグsm_13)など)をコンパイルし、計算能力2.1のデバイスで実行した場合、計算能力2.1の機能を活用できますか?
そのような状況では、コンピュート2.1デバイスはコンピュート1.3デバイスのように動作しますか?
cuda - #defineによってコンパイル時にCUDAコンピューティング機能(バージョン)を取得できますか?
#defineによってコンパイル時にCUDAコンピューティング機能(バージョン)を取得するにはどうすればよいですか?たとえば、__ballotを使用してコンパイルする場合
__ballotを使用した場合と使用しない場合のコードのブランチを選択するために、#defineによってコードの計算機能のバージョンを取得できますか?