summaryrefslogtreecommitdiff
path: root/app/UI/Benchmark.hs
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2024-02-29 02:55:06 +0100
committerPaul Oliver <contact@pauloliver.dev>2024-02-29 02:55:06 +0100
commita5a5e7f275de6ec9784f75a3e2d313e4eee807fa (patch)
treeffdb76e5a312ce4490b04265c7301463b8958729 /app/UI/Benchmark.hs
Initial (WIP)HEADmaster
Diffstat (limited to 'app/UI/Benchmark.hs')
-rw-r--r--app/UI/Benchmark.hs41
1 files changed, 41 insertions, 0 deletions
diff --git a/app/UI/Benchmark.hs b/app/UI/Benchmark.hs
new file mode 100644
index 0000000..dd2960a
--- /dev/null
+++ b/app/UI/Benchmark.hs
@@ -0,0 +1,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