ddc-core-flow-0.4.1.3: Disciplined Disciple Compiler data flow compiler.

Safe HaskellNone

DDC.Core.Flow.Transform.Schedule

Contents

Synopsis

Documentation

scheduleScalar :: Process -> Either Error ProcedureSource

Schedule a process into a procedure, producing scalar code.

Scheduling process kernels

scheduleKernel :: Lifting -> Process -> Either Error ProcedureSource

Schedule a process kernel into a procedure.

A process kernel is a process with the following restricitions: 1) All input series have the same rate. 2) A kernel accumulates data into sinks, rather than allocating new values. 3) A kernel can be scheduled into a single loop.

data Error Source

Reason a process kernel could not be scheduled into a procedure.

Constructors

ErrorNoRateParameters

Process has no rate parameters.

ErrorNoSeriesParameters

Process has no series parameters, but there needs to be at least one.

ErrorMultipleRates

Process has series of different rates, but all series must have the same rate.

ErrorPrimaryRateMismatch

Primary rate variable of the process does not match the rate of the paramter series.

ErrorCannotLiftExp (Exp () Name)

Cannot lift expression to vector operators.

ErrorCannotLiftType (Type Name)

Cannot lift type to vector type.

ErrorUnsupported Operator

Current scheduler does not support this operator.

ErrorSlurpError Error

Cannot slurp process description from one of the top-level declarations.

Instances

data Lifting Source

Lifting config controls how many elements should be processed per loop iteration.

Constructors

Lifting 

Fields

liftingFactor :: Int
 

Instances

Eq Lifting 
Show Lifting