module Futhark.CodeGen.ImpGen.CUDA ( compileProg ) where import Futhark.IR.KernelsMem 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 KernelsMem -> m OpenCL.Program compileProg :: Prog KernelsMem -> m Program compileProg Prog KernelsMem prog = Program -> Program kernelsToCUDA (Program -> Program) -> m Program -> m Program forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Prog KernelsMem -> m Program forall (m :: * -> *). MonadFreshNames m => Prog KernelsMem -> m Program ImpGenKernels.compileProgCUDA Prog KernelsMem prog