From 21bd91b7e1eb90c5003a379fd551028efb84eccd Mon Sep 17 00:00:00 2001
From: Ben Gamari <ben@smart-cactus.org>
Date: Thu, 13 May 2021 12:46:14 -0400
Subject: [PATCH] ben-raytrace: Reduce benchmark runtime

By reducing the size of the raytraced image.
---
 real/ben-raytrace/Main.hs                  | 4 +++-
 real/ben-raytrace/Makefile                 | 4 ++++
 real/ben-raytrace/ben-raytrace.stdout      | 2 +-
 real/ben-raytrace/ben-raytrace.stdout.fast | 3 +++
 real/ben-raytrace/ben-raytrace.stdout.slow | 3 +++
 5 files changed, 14 insertions(+), 2 deletions(-)
 create mode 100644 real/ben-raytrace/ben-raytrace.stdout.fast
 create mode 100644 real/ben-raytrace/ben-raytrace.stdout.slow

diff --git a/real/ben-raytrace/Main.hs b/real/ben-raytrace/Main.hs
index ad4e5e9c..772cdd86 100644
--- a/real/ben-raytrace/Main.hs
+++ b/real/ben-raytrace/Main.hs
@@ -14,6 +14,7 @@ import Sampler
 import SamplerMonad
 import Scene.Type
 import Scene.Scene2 as Scene
+import System.Environment
 
 partitionPlane :: Coord -> Int -> [(Coord, Coord)]
 partitionPlane size chunkSize =
@@ -28,11 +29,12 @@ partitionPlane size chunkSize =
 main :: IO ()
 main = do
     scene <- mkScene
+    [size_str] <- getArgs
 
     let nRuns = 1 :: Int
         chunkSize = 64 :: Int
         nSamples = 32  :: Int
-        size = let n = 256
+        size = let n = read size_str
                    aspect = cameraAspect $ sceneCamera scene
                in Coord n (round $ realToFrac n / aspect)
         nRays = nRuns * nSamples * coordX size * coordY size
diff --git a/real/ben-raytrace/Makefile b/real/ben-raytrace/Makefile
index e1443f8e..d34ef1af 100644
--- a/real/ben-raytrace/Makefile
+++ b/real/ben-raytrace/Makefile
@@ -3,6 +3,10 @@ include $(TOP)/mk/boilerplate.mk
 
 SRC_DEPS = binary bytestring array parallel primitive transformers mtl ghc-prim random
 
+FAST_OPTS = 48
+NORM_OPTS = 64
+SLOW_OPTS = 256
+
 ALL_DIRS += Random SamplerMonad Scene
 
 include $(TOP)/mk/target.mk
diff --git a/real/ben-raytrace/ben-raytrace.stdout b/real/ben-raytrace/ben-raytrace.stdout
index ec131bef..a994c1e5 100644
--- a/real/ben-raytrace/ben-raytrace.stdout
+++ b/real/ben-raytrace/ben-raytrace.stdout
@@ -1,3 +1,3 @@
-Rays: 1572864
+Rays: 98304
 Figures: 10
 Sampling...
diff --git a/real/ben-raytrace/ben-raytrace.stdout.fast b/real/ben-raytrace/ben-raytrace.stdout.fast
new file mode 100644
index 00000000..dea2425f
--- /dev/null
+++ b/real/ben-raytrace/ben-raytrace.stdout.fast
@@ -0,0 +1,3 @@
+Rays: 55296
+Figures: 10
+Sampling...
diff --git a/real/ben-raytrace/ben-raytrace.stdout.slow b/real/ben-raytrace/ben-raytrace.stdout.slow
new file mode 100644
index 00000000..ec131bef
--- /dev/null
+++ b/real/ben-raytrace/ben-raytrace.stdout.slow
@@ -0,0 +1,3 @@
+Rays: 1572864
+Figures: 10
+Sampling...
-- 
GitLab