packages feed

accelerate-examples-1.0.0.0: examples/nofib/Main.hs

module Main where

import Data.Label

import Config
import Test.FFT
import Test.IO
import Test.Prelude
import Test.Sharing
import Test.Imaginary
import Test.Spectral
import Test.Issues
import Test.Foreign

import Data.Array.Accelerate.Examples.Internal


main :: IO ()
main = do

  -- Kick off EKG monitoring. Perhaps not particularly useful since we spend a
  -- lot of time just generating random data, etc.
  --
  beginMonitoring

  -- process command line args, and print a brief usage message
  --
  (conf, opts, rest)    <- parseArgs options defaults header footer
  let backend            = get optBackend opts

  -- Run tests, executing the simplest first. More complex operations, such as
  -- segmented operations, generally depend on simpler tests. We build up to the
  -- larger test programs.
  --
  runTests opts rest
    [ test_prelude backend conf
    , test_sharing conf
    , test_io conf
    , test_imaginary backend conf
    , test_spectral backend conf
    , test_fft backend conf
    , test_foreign backend conf
    , test_issues backend conf
    ]

  -- Now run some criterion benchmarks.
  --
  -- TODO: We should dump the results to file so that they can be analysed and
  --       checked for regressions.
  --