MultithreadCorner/thrust-multi-permutation-iterator
This repository adds functionality missing from the official version of Thrust. Multi_permutation_iterator is a general-purpose iterator, analogous to permutation_iterator that allows for tuple-based indexing into data -- think coalesced multi-dimensional arrays or stencil-based grid traversal. Without multi_permutation_iterator one must resort to redundantly applying zip_iterator to the same iterator perhaps with different offsets, resulting in excessive kernel argument size and overhead, and most importantly consumption of performance-critical GPU registers. Multi_permutation_iterator is completely general-purpose, providing functionality that zip_iterator+permutation_iterator only provides a crude workaround for. Another key missing piece of functionality is support for streaming tuple values via C++ streams.
C++Apache-2.0
No issues in this repository yet.