問題タブ [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.

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

visual-studio-2010 - VS2010 コンパイラと cuda エラー: リンケージ仕様は以前の「ハイポット」と互換性がありません

デバッグ 64 ビット構成で VS 2010 を使用して 64 ビット Windows 7 でプロジェクトをビルドしようとすると、他の 2 つのエラーと共にこのエラーが発生します。

エラー: リンケージ仕様は math.h 行 161 の以前の "hypot" と互換性がありません エラー: リンケージ仕様は math.h 行 161 の以前の "hypotf" と互換性がありません エラー: 関数 "abs(long long)" は math_functions で既に定義されています.h 行 534

32 ビット ビルドではこれらのエラーは発生しません。また、64 ビット ビルドは VS2008 で動作しました。この問題に対する適切な回避策はありますか、それとも nvcc が VS 2010 コンパイラをサポートするまで待つべきですか?

0 投票する
6 に答える
7897 参照

cuda - nvcc -Xptxas –v コンパイラ フラグは無効です

私はCUDAプロジェクトを持っています。これは、アプリケーション ロジックを含むいくつかの .cpp ファイルと、複数のカーネルと__host__それらを呼び出す関数を含む 1 つの .cu ファイルで構成されています。

ここで、カーネルが使用するレジスタの数を特定したいと考えています。私の通常のコンパイラ呼び出しは次のようになります。

nvcc -arch compute_20 -link src/kernel.cu obj/..obj obj/..obj .. -o bin/..exe -l glew32 ...

残念ながら、この呼び出しに "-Xptxas –v" コンパイラ フラグを追加しても効果はありません。コンパイラは、以前と同じテキスト出力を引き続き生成します。コンパイルされた .exe も以前と同じように動作しますが、例外が 1 つあります。私のフレームレートは 80 fps から 1800 fps に跳ね上がります。

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

cuda - nvcc を使用する場合の arch および code オプションのデフォルト値は何ですか?

CUDA コードをコンパイルするときは、コードが生成されるアーキテクチャを選択する必要があります。nvcc基本的に、このアーキテクチャを指定する 2 つのパラメーターを提供します。

  • archcompute_10compute_11などの仮想アーキテクチャを指定します。
  • codesm_10sm_11などの実際のアーキテクチャを指定します。

したがって、次のようなコマンドです。

1.3 コンピューティング機能を備えたデバイス用の「cubin」コードを生成します。私が間違っている場合は、私を修正してください。これら 2 つのパラメーターのデフォルト値はどれですか? またはの値が指定されていない場合に nvcc が使用するデフォルトのアーキテクチャはどれですか? arch code

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

cuda - PTXファイルを実行するにはどうすればよいですか

からファイルを生成する方法と.ptxからファイルを生成する方法を知っていますが、最終的な実行可能ファイルを取得する方法がわかりません。.cu.cubin.ptx.

具体的には、にsample.cuコンパイルされたファイルがありますsample.ptx。次に、nvccを使用してにコンパイルsample.ptxsample.cubinます。ただし、この.cubinファイルはホストコードなしで直接実行することはできません。.cubinファイルを元の.cuファイルにリンクして、最終的な実行可能ファイルを作成するにはどうすればよいですか?

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

c - Cuda コード #define エラー、")" が必要です

次のコードで、#define N 65536 を #if FSIZE よりも大きくすると、次のエラーが発生します。

float1vsfloat2.cu(10): エラー: ")" が必要です

この問題は少し厄介で、なぜそれが起こっているのか本当に知りたいです. 本当にばかげたものを見落としているような気がします。ところで、このコード セクションはファイルの先頭にあります。その前に #include すらありません。可能な説明があれば本当に感謝します。

0 投票する
0 に答える
340 参照

warnings - CUDA: 式の制御に関する NVCC 警告は定数です

nvcc.exeは、.cu ホスト コードでwarning: controlling expression is constant次のassert()に対してa をスローします。

アサートに文字列を含めると警告が生成されるのはなぜですか? この警告の回避策はありますか? 私は assert に有益な文字列を含めるのが好きで、Visual C++ コンパイラで警告なしで正常にコンパイルされます。

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

cuda - CUDA: sm_20 に対して誤った lmem 統計が表示される?

オプションでコンパイルされた CUDA カーネルは、 GPU アーキテクチャが指定されている場合、--ptxas-options=-v誤った lmem (ローカル メモリ)統計を表示しているようです。sm_20同じことで、アーキテクチャに関する意味のある lmem 統計が得られsm_10 / sm_11 / sm_12 / sm_13ます。

sm_20 lmem 統計を別の方法で読み取る必要があるかどうか、またはそれらが明らかに間違っているかどうかを明確にすることはできますか?

カーネルは次のとおりです。

--ptxas-options=-vおよびsm_20報告:

--ptxas-options=-vおよびsm_10 / sm_11 / sm_12 / sm_13報告:

sm_20 は4 バイトの lmem を報告しますが、カーネルで 4x1000 バイト配列が使用されている場合、これは単に不可能です。古い GPU アーキテクチャは、正しい4000 バイトのlmem 統計を報告します。

これはCUDA 3.2で試しました。NVCC マニュアル(v3.2) の「コード生成統計の印刷」セクションを参照しましたが、この異常の説明には役立ちません。

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

cuda - make_uint4 関数をオーバーロードできません

make_uint4次の方法でオーバーロードしようとしています。

しかし、コンパイルしようとすると、nvcc はエラーを返します。

これらのエラーはすべて、"return…"行を指しています。

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

cuda - Surface の低レベル CUDA API を呼び出すコードをコンパイルすると、奇妙なエラーが発生する

この最小限の例:

次のようにコンパイルすると失敗します。

次のエラー メッセージが表示されます。

私は自分が間違っていることを理解できません。CUDA 3.2 を使用して、Linux Ubuntu 64 ビット マシンでコンパイルしています。

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

cuda - Cuda (nvcc) でファイル ポインタを閉じる

gcc では、close 関数を使用してファイル ポインターを閉じます。ただし、私の nvcc コンパイラはそれを許可しません。cuda 固有の呼び出しまたはエイリアスが見つからないようです。

特別なcudaファイルポインタが閉じていますか?

これは私が得るエラーです。 error: identifier "close" is undefined

この単純なコードの場合。 FILE* fp = fopen(filename,"r"); if(fp == NULL) { return NULL; }

close(fp);