CUDA Stream compaction: understanding the concept
问题 I am using CUDA/Thrust/CUDPP. As I understand, in Stream compaction, certain items in an array are marked as invalid and then "removed". Now what does "removal" really mean here? Suppose the original array A and has length 6. If 2 elements are invalid (by whatever condition we may provide) then Does the system create a new array of size 4 in GPU-memory to store the valid elements to get the final result? OR does it physically remove the invalid elements from memory and shrink the original