futhark-0.25.32: An optimising compiler for a functional, array-oriented language.

Safe Haskell | Safe-Inferred
Language | GHC2021

Futhark.CodeGen.ImpGen.GPU

Description

Compile a `GPUMem` 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

- compileProgOpenCL :: MonadFreshNames m => Prog GPUMem -> m (Warnings, Program)
- compileProgCUDA :: MonadFreshNames m => Prog GPUMem -> m (Warnings, Program)
- compileProgHIP :: MonadFreshNames m => Prog GPUMem -> m (Warnings, Program)
- data Warnings

# Documentation

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

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

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

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

compileProgHIP :: MonadFreshNames m => Prog GPUMem -> m (Warnings, Program) Source #

Compile a `GPUMem` 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

Monoid Warnings Source # |
Instance details Defined in Language.Futhark.Warnings Methods mempty :: Warnings Source # mappend :: Warnings -> Warnings -> Warnings Source # mconcat :: [Warnings] -> Warnings Source #
Semigroup Warnings Source # |
Instance details Defined in Language.Futhark.Warnings Methods (<>) :: Warnings -> Warnings -> Warnings Source # sconcat :: NonEmpty Warnings -> Warnings Source # stimes :: Integral b => b -> Warnings -> Warnings Source #