sm_21 アーキテクチャを使用する CUDA 対応 GPU を最大限に活用するには、カーネルを uint2 などのベクトル データ型で記述する必要があります。
次のようなカーネルの行を想像してください。
uint2 a = make_uint2 (123);
これはうまくいきます。値 123 は ax と ay の両方に格納されます。しかし、特に大きなコード ブロックを記述し、多くの変数を初期化する必要がある場合、書き込みを読み取るのは面倒です。
私はプレーンな C コードを書くことに慣れているので、C++ オタクではありません。多分私が探しているのはかなり単純です。
演算子を「オーバーロード」する可能性があることは知っています。私の質問は次のとおりです。代入演算子もオーバーロードできますか?
私はこれを試しました:
inline __device__ uint2 operator = (int a)
{
return make_uint2 (a, a);
}
しかし、次のエラー メッセージで失敗します。
エラー: "operator=" はメンバー関数でなければなりません
誰?