module Futhark.CodeGen.ImpGen.CUDA ( compileProg ) where import Futhark.Representation.ExplicitMemory import qualified Futhark.CodeGen.ImpCode.OpenCL as OpenCL import qualified Futhark.CodeGen.ImpGen.Kernels as ImpGenKernels import Futhark.CodeGen.ImpGen.Kernels.ToOpenCL import Futhark.MonadFreshNames compileProg :: MonadFreshNames m => Prog ExplicitMemory -> m OpenCL.Program compileProg :: Prog ExplicitMemory -> m Program compileProg Prog ExplicitMemory prog = Program -> Program kernelsToCUDA (Program -> Program) -> m Program -> m Program forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Prog ExplicitMemory -> m Program forall (m :: * -> *). MonadFreshNames m => Prog ExplicitMemory -> m Program ImpGenKernels.compileProgCUDA Prog ExplicitMemory prog