{-# LANGUAGE CPP, KindSignatures #-} {-# OPTIONS -Wall #-} -- | informations for generating native codes. module Language.Paraiso.Generator.Native ( Setup(..), defaultSetup, Language(..) ) where import qualified Language.Paraiso.Optimization as Opt -- | the setups that needed to generate the native codes. data Setup (vector :: * -> *) (gauge :: *) = Setup { language :: Language, -- ^ the preferred native language directory :: FilePath, -- ^ the directory on which programs are to be generated optLevel :: Opt.Level, -- ^ the intensity of optimization localSize :: vector gauge, -- ^ the dimension of the physically meaningful region cudaGridSize :: (Int, Int) -- ^ CUDA grid x block size (will be variable of subkernel in the future) } deriving (Show) defaultSetup :: (Opt.Ready v g) => v g -> Setup v g defaultSetup sz = Setup { language = CPlusPlus, directory = "./", optLevel = Opt.O3, localSize = sz, cudaGridSize = (128, 128) } data Language = CPlusPlus | CUDA deriving (Eq, Show)