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

Futhark.CodeGen.ImpGen.Kernels

Description

Compile a KernelsMem program to imperative code with kernels. This is mostly (but not entirely) the same process no matter if we are targeting OpenCL or CUDA. The important distinctions (the host level code) are introduced later.

Synopsis

Documentation

compileProgOpenCL :: MonadFreshNames m => Prog KernelsMem -> m (Warnings, Program) Source #

Compile a KernelsMem program to low-level parallel code, with either CUDA or OpenCL characteristics.

compileProgCUDA :: MonadFreshNames m => Prog KernelsMem -> m (Warnings, Program) Source #

Compile a KernelsMem program to low-level parallel code, with either CUDA or OpenCL characteristics.

data Warnings Source #

The warnings produced by the compiler. The Show instance produces a human-readable description.

Instances

Instances details
Eq Warnings Source # 
Instance details

Defined in Language.Futhark.Warnings

Show Warnings Source # 
Instance details

Defined in Language.Futhark.Warnings

Semigroup Warnings Source # 
Instance details

Defined in Language.Futhark.Warnings

Monoid Warnings Source # 
Instance details

Defined in Language.Futhark.Warnings

MonadWriter Warnings TypeM Source # 
Instance details

Defined in Language.Futhark.TypeChecker.Monad

Methods

writer :: (a, Warnings) -> TypeM a #

tell :: Warnings -> TypeM () #

listen :: TypeM a -> TypeM (a, Warnings) #

pass :: TypeM (a, Warnings -> Warnings) -> TypeM a #