Safe Haskell | Trustworthy |
---|---|
Language | Haskell2010 |
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.
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. |
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 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 # | |
Defined in Futhark.IR.Kernels.Sizes | |
Show e => Show (Count u e) Source # | |
Pretty e => Pretty (Count u e) Source # | |
IntegralExp e => IntegralExp (Count u e) Source # | |
Defined in Futhark.IR.Kernels.Sizes | |
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.