CUDA Programming Guideによれば、計算アーキテクチャ2.xを使用している限り、デバイス/グローバル関数内に動的にメモリを割り当てることができます。__device/global__内のメモリを動的に割り当てるCUDAカーネル
コマンド "いくつかのコマンド" -gencode =アーチ= compute_10、コード= \ "sm_10、compute_10の\" -gencode =:
私の問題は、私はこれをしようとしたとき、私は、コマンドラインのメッセージを取得するということですアーチ= compute_20、コード= \「sm_20、compute_20 \」等...
これは、あなたがデバイス/グローバル機能からホスト機能(malloc関数)を呼び出すことはできませんというエラーが続いています。
上記のメッセージは、計算1.xでコンパイルしようとしていることを示しています。私はVS2010を使用しており、 "CUDA C/C++"プロパティページの "compute_20、sm_20"に "Code Generation"を設定しているので、なぜ計算1.xでコンパイルしようとしているのか分かりません。私は間違いなく2.xをサポートするカードを使用しています。何か案は?
あなたは正しいと思います。compute_20、sm_20の下でコンパイルするようにデフォルトのプロパティを設定しました。しかし、ファイル自体のプロパティを調べると、compute_20、sm_20、compute_10、sm_10の両方に設定されていました。これを変更すると、コードがコンパイルされるようになりました。 – Barjavel