eyalroz / cuda-kat

CUDA kernel author's tools
BSD 3-Clause "New" or "Revised" License
104 stars 8 forks source link

Rearrange warp/block/grid primitives #64

Open eyalroz opened 4 years ago

eyalroz commented 4 years ago

We currently have the collaborative/ directory and the sequence_ops/ directory. This is less than ideal, for three reasons:

  1. sequence_ops/ are also a kind of collaborative primitives
  2. Some primitives in the collaborative/ directory can be considered "sequence operations". Actually, lots or even most primitives in the linear_grid namespace are liked that - with the foremost examples being at_grid_stride, at_block_stride and at_warp_stride.
  3. In collaborative/, the linear_grid namespace and non-linear-grid primitives are bunched together in the same file - but not beyond that, i.e. there's no synergy from holding them together.

How should they be rearranged? Good question... I guess:

  1. Everything in a collaborative/ subdir.
  2. Linear grids in a subdir
  3. Then split by kind of collaborative op. Say, "traversal/visitation", "communication", "std_numeric", "std_algorithms", "others"
  4. Same as 3., but for non-linear grids (whatever is already implemented of course)