12

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

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

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

nvcc x.cu -arch=compute_13 -code=sm_13

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

4

2 に答える 2

10

わかりました、ようやくデフォルト値を発見することができました。NVCC ドキュメントの GPU コンパイルに関する章全体を最初から最後まで読まなかったのは私のせいです。そう、

nvcc x.cu

に等しい

nvcc x.cu –arch=compute_10 -code=sm_10,compute_10

これらはデフォルト値です。コンパイルはデフォルトで仮想アーキテクチャに対して実行されcompute_10a.outコンパイルの結果には、実際のアーキテクチャの CUBIN コードとsm_10アーキテクチャの PTX アセンブリ コードが含まcompute_10れ、CUDA ドライバによって「ジャスト イン タイム」に再コンパイルされます。アーキテクチャが より大きい場合sm_10

于 2011-01-13T12:33:30.440 に答える
2

compute_10明示的に指定しない限り、compute_13 機能を使用できないため、デフォルトはであると思います。(おそらく、CUDA ツールキットに付属の NVCC ドキュメントで指定されていますが、オンラインでリンクが見つかりません)。

于 2011-01-13T07:48:00.560 に答える