module Language.Paraiso.Generator.Native (
Setup(..), defaultSetup,
Language(..)
) where
import qualified Language.Paraiso.Optimization as Opt
data Setup (vector :: * -> *) (gauge :: *)
= Setup
{ language :: Language,
directory :: FilePath,
optLevel :: Opt.Level,
localSize :: vector gauge,
cudaGridSize :: (Int, Int)
} 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)