CUDA/Thrust/CUDPP を使用しています。私が理解しているように、ストリーム圧縮では、配列内の特定の項目が無効としてマークされ、「削除」されます。
では、ここでの「削除」とは実際には何を意味するのでしょうか。元の配列のA
長さが 6 であると仮定します。2 つの要素が無効である場合 (どのような条件を指定しても)、次のようになります。
システムは GPU メモリにサイズ 4の新しい配列を作成し、有効な要素を格納して最終結果を取得しますか?
または、メモリから無効な要素を物理的に削除し、有効な要素のみを保持して元の配列 A をサイズ 4 に縮小しますか?
どちらの場合も、内部で動的メモリ割り当てが行われているということではないでしょうか? しかし、CUDA の世界では動的メモリ割り当てができないと聞いていました。