Refactor how CUDA kernels get launched
Implement partial support for multiple kernel parameters
Eliminate bulk_add() in favor of bulk_async() & bulk_invoke()
Reorganize code in cuda_executor.hpp
Add shared parameters to cuda_executor
executor_traits::shared_param_type defers to the implementation in the executor_type, should it exist.
cuda_executor's shared_param_type is a thrust::tuple of references
The lambda used in executor_traits needs to be mutable to allow for non-const operator() in captured functors
Provided the specialization std::flattened_executor<cuda_executor>
Rename cuda_executor -> cuda::grid_executor
Fix some typos
Introduce change_executor() function, which gets called by execution_policy.on()
Replace change_executor() function with rebind_executor metafunction.
Merge branch 'master' of github.com:jaredhoberock/asyncpp into cuda
Add initial CUDA support and a couple of example programs
Merge branch 'master' of github.com:jaredhoberock/asyncpp into cuda
eliminate typo in the implementation of rebind_executor
Merge branch 'master' of github.com:jaredhoberock/asyncpp into cuda
Implement partial support of cuda::concurrent_agent
Add cuda::block_executor
Add cuda::uninitialized
Reorganize the code inside grid_executor.hpp
Reenable some commented-out code in grid_executor.hpp