| Safe Haskell | Trustworthy |
|---|---|
| Language | Haskell2010 |
Futhark.IR.Kernels.Sizes
Description
In the context of this module, a "size" is any kind of tunable (run-time) constant.
Synopsis
- data SizeClass
- sizeDefault :: SizeClass -> Maybe Int64
- type KernelPath = [(Name, Bool)]
- newtype Count u e = Count {
- unCount :: e
- data NumGroups
- data GroupSize
- data NumThreads
Documentation
The class of some kind of configurable size. Each class may impose constraints on the valid values.
Constructors
| SizeThreshold KernelPath (Maybe Int64) | A threshold with an optional default. |
| SizeGroup | |
| SizeNumGroups | |
| SizeTile | |
| SizeRegTile | |
| SizeLocalMemory | Likely not useful on its own, but querying the maximum can be handy. |
| SizeBespoke Name Int64 | A bespoke size with a default. |
Instances
| Eq SizeClass Source # | |
| Ord SizeClass Source # | |
| Show SizeClass Source # | |
| Pretty SizeClass Source # | |
sizeDefault :: SizeClass -> Maybe Int64 Source #
The default value for the size. If Nothing, that means the backend gets to decide.
type KernelPath = [(Name, Bool)] Source #
An indication of which comparisons have been performed to get to this point, as well as the result of each comparison.
A wrapper supporting a phantom type for indicating what we are counting.
Instances
| Functor (Count u) Source # | |
| Foldable (Count u) Source # | |
Defined in Futhark.IR.Kernels.Sizes Methods fold :: Monoid m => Count u m -> m # foldMap :: Monoid m => (a -> m) -> Count u a -> m # foldMap' :: Monoid m => (a -> m) -> Count u a -> m # foldr :: (a -> b -> b) -> b -> Count u a -> b # foldr' :: (a -> b -> b) -> b -> Count u a -> b # foldl :: (b -> a -> b) -> b -> Count u a -> b # foldl' :: (b -> a -> b) -> b -> Count u a -> b # foldr1 :: (a -> a -> a) -> Count u a -> a # foldl1 :: (a -> a -> a) -> Count u a -> a # elem :: Eq a => a -> Count u a -> Bool # maximum :: Ord a => Count u a -> a # minimum :: Ord a => Count u a -> a # | |
| Traversable (Count u) Source # | |
| Eq e => Eq (Count u e) Source # | |
| Num e => Num (Count u e) Source # | |
Defined in Futhark.IR.Kernels.Sizes | |
| Ord e => Ord (Count u e) Source # | |
| Show e => Show (Count u e) Source # | |
| Pretty e => Pretty (Count u e) Source # | |
| IntegralExp e => IntegralExp (Count u e) Source # | |
| FreeIn e => FreeIn (Count u e) Source # | |
| Substitute e => Substitute (Count u e) Source # | |
Defined in Futhark.IR.Kernels.Sizes | |
data NumThreads Source #
Phantom type for number of threads.