struct
layout::ell
ELL-shaped tile-atom layout view (uniform tile size).
Tiles correspond to rows; every tile holds exactly pitch atoms (some of which may be padding, signaled by a sentinel column index in the storage array). No offsets array is needed: tile_begin(t) = t * pitch tile_end(t) = (t + 1) * pitch tile_size(t) = pitch tile_end_iter() = transform_iterator: i ->
Defined in include/loops/container/layout.hxxTemplate Parameters
| Parameter | Description |
|---|---|
tile_id_type | Tile-id type (e.g., row id). |
atom_id_type | Atom-id type (flat index into the per-row buckets). |
Members
n_tiles_
pitch_
Methods
__host__ __device__ ell()
atoms per tile (uniform); = max-non-zeros-per-row in SpMV.
__host__ __device__ ell(tile_id_t num_tiles, atom_id_t pitch)
__host__ __device__ tile_id_t num_tiles( const)
__host__ __device__ atom_id_t num_atoms( const)
__host__ __device__ atom_id_t tile_begin(tile_id_t t) const)
__host__ __device__ atom_id_t tile_end(tile_id_t t) const)
__host__ __device__ atom_id_t tile_size(tile_id_t) const)
__host__ __device__ tile_end_iterator_t tile_end_iter( const)
Random-access iterator i where i[k] == tile_end(k).
__host__ __device__ tile_id_t tile_of(atom_id_t a) const)
Tile-id (row) that owns atom a. O(1) for ELL.