Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Futhark.IR.GPU.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 NumBlocks
- data BlockSize
- 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. |
SizeThreadBlock | |
SizeGrid | The number of thread blocks. |
SizeTile | |
SizeRegTile | |
SizeSharedMemory | Likely not useful on its own, but querying the maximum can be handy. |
SizeBespoke Name Int64 | A bespoke size with a default. |
SizeRegisters | Amount of registers available per threadblock. Mostly meaningful for querying the maximum. |
SizeCache | Amount of L2 cache memory, in bytes. Mostly meaningful for querying the maximum. |
Instances
Show SizeClass Source # | |
Eq SizeClass Source # | |
Ord SizeClass Source # | |
Defined in Futhark.IR.GPU.Sizes | |
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
data NumThreads Source #
Phantom type for number of threads.