summaryrefslogtreecommitdiff
path: root/app/UI/Benchmark.hs
blob: dd2960a667af504854ea7e4655a60703b222c475 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{-# LANGUAGE RecordWildCards #-}

module UI.Benchmark
  ( selectedMain
  ) where

import Prelude hiding (take)

import Control.Monad (forM_)
import Data.Vector.Unboxed (take)
import Data.Word (Word64)
import System.Environment (getArgs)
import Text.Printf (printf)

import Core (CoreState(..), SalisState(..), new, step)

selectedMain :: IO ()
selectedMain = do
  args <- getArgs
  let x = (read $ head args :: Word64)
  let n = (read $ args !! 1 :: Int)
  let SalisState {..} = step n $ new x
  printf "Salis speed test\n"
  printf "Using seed        : 0x%x\n" x
  printf "Will run N cycles : %i\n" n
  printf "\n"
  printf "iters : %i\n" iters
  printf "syncs : %i\n" syncs
  forM_ cores $ \CoreState {..} -> do
    printf "\n"
    printf "loop : %s\n" $ show loop
    printf "mall : %s\n" $ show mall
    printf "pnum : %s\n" $ show pnum
    printf "pcap : %s\n" $ show pcap
    printf "pfst : %s\n" $ show pfst
    printf "plst : %s\n" $ show plst
    printf "pcur : %s\n" $ show pcur
    printf "psli : %s\n" $ show psli
    printf "muta : %s\n" $ show muta
    printf "mvec : %s\n" $ show $ take 16 mvec
    printf "pvec : %s\n" $ show $ take 16 pvec