futhark-0.20.0: An optimising compiler for a functional, array-oriented language.
Safe HaskellNone
LanguageHaskell2010

Futhark.Pass.ExtractKernels.BlockedKernel

Synopsis

Documentation

type DistLore lore = (Bindable lore, HasSegOp lore, BinderOps lore, LetDec lore ~ Type, ExpDec lore ~ (), BodyDec lore ~ ()) Source #

Constraints pertinent to performing distribution/flattening.

type MkSegLevel lore m = [SubExp] -> String -> ThreadRecommendation -> BinderT lore m (SegOpLevel lore) Source #

segRed :: (MonadFreshNames m, DistLore lore, HasScope lore m) => SegOpLevel lore -> Pattern lore -> SubExp -> [SegBinOp lore] -> Lambda lore -> [VName] -> [(VName, SubExp)] -> [KernelInput] -> m (Stms lore) Source #

nonSegRed :: (MonadFreshNames m, DistLore lore, HasScope lore m) => SegOpLevel lore -> Pattern lore -> SubExp -> [SegBinOp lore] -> Lambda lore -> [VName] -> m (Stms lore) Source #

segScan :: (MonadFreshNames m, DistLore lore, HasScope lore m) => SegOpLevel lore -> Pattern lore -> SubExp -> [SegBinOp lore] -> Lambda lore -> [VName] -> [(VName, SubExp)] -> [KernelInput] -> m (Stms lore) Source #

segHist Source #

Arguments

:: (DistLore lore, MonadFreshNames m, HasScope lore m) 
=> SegOpLevel lore 
-> Pattern lore 
-> SubExp 
-> [(VName, SubExp)]

Segment indexes and sizes.

-> [KernelInput] 
-> [HistOp lore] 
-> Lambda lore 
-> [VName] 
-> m (Stms lore) 

segMap :: (MonadFreshNames m, DistLore lore, HasScope lore m) => SegOpLevel lore -> Pattern lore -> SubExp -> Lambda lore -> [VName] -> [(VName, SubExp)] -> [KernelInput] -> m (Stms lore) Source #

mapKernel :: (DistLore lore, HasScope lore m, MonadFreshNames m) => MkSegLevel lore m -> [(VName, SubExp)] -> [KernelInput] -> [Type] -> KernelBody lore -> m (SegOp (SegOpLevel lore) lore, Stms lore) Source #