Introducing @reduce for group level reduction
Created by: brabreda
The @reduce
macro performs a group level reduction.
TODOs:
- Figure out a place for the implementation.
- Add a lane level reduction.
- Create a more advanced group level reduction that is able to utilize platform dependant feature such as lane reduction and atomics.