0

私は大規模な CUDA プロジェクトに関する質問を求めてサイトをスキャンしており、いくつかの良い回答を見つけましたが、とにかくまだ疑問があります.

私のプログラムは、今のところ (まだ完成の途中です)、いくつかの配列を出力し、それが Thrust ライブラリ関数の入力になります。

したがって、私の主な疑問は次のとおりです。

1-CUDA C を使用していることを考えると、extern "C" として宣言された推力関数があります。ヘッダー ファイルでこれらの関数を宣言する正しい方法がわかりませんでした。グーグルで調べた後、次のコードを見つけました。これが正しいことを確認したかったのです。

extern "C" {
void compact(float*intxc,float*intyc,float*intzc);
void sort(float*intxc,float*intyc,float*intzc);
}

2- フォーラムで「Main.cpp」をメイン ファイルとして使用している投稿を見たことがありますが、「Main.cu」ファイルを使用するのは間違っていますか、それとも無関心ですか?

編集: いくつかの考え (およびアドバイス) の後、古い質問は少し退屈だったと思います。

事前に感謝し、アドバイスをありがとうタロンミー

4

1 に答える 1

1
  1. CUDA の最新 (2.3 以降) バージョンでは、関数を extern "C" と宣言する必要はありません。また、これらの関数は単なる C 関数であり、CUDA とは何の関係もありません。

  2. メイン関数を .cu ファイルまたは .cpp ファイルに含めることができます。前者を行う場合は、nvcc でコンパイルする必要があります。後者を行う場合は、C++ コンパイラでコンパイルする必要があります。ファイルの名前を「Main」にする必要はありません。

于 2011-06-02T05:16:53.363 に答える