Difference between revisions of "LuxMark v4"

From LuxCoreRender Wiki
Jump to navigation Jump to search
(Created page with "= LuxMark v4.x = LuxMark is a OpenCL cross-platform benchmark tool and has become, over past years, one of the most used (if not the most used) OpenCL benchmark. It is intend...")
 
Line 5: Line 5:
 
== Render engines ==
 
== Render engines ==
  
This release is based on [https://github.com/LuxCoreRender/LuxCore/releases/tag/luxcorerender_v2.2|LuxCoreRender v2.2] and includes benchmarks with the following rendering engines:
+
This release is based on [https://github.com/LuxCoreRender/LuxCore/releases/tag/luxcorerender_v2.2 LuxCoreRender v2.2] and includes benchmarks with the following rendering engines:
  
 
* A micro-kernel based OpenCL path tracer with/without Global Illumination cache;
 
* A micro-kernel based OpenCL path tracer with/without Global Illumination cache;
Line 14: Line 14:
 
== Denoiser ==
 
== Denoiser ==
  
LuxMark includes [https://github.com/OpenImageDenoise/oidn|Intel OpenImageDenoise]. A comparison between raw and denoised image is shown at the end of the benchmark or during the stress test. However Intel OpenImageDenoise is a CPU-only task and '''it is not part of the benchmark result'''.
+
LuxMark includes [https://github.com/OpenImageDenoise/oidn Intel OpenImageDenoise]. A comparison between raw and denoised image is shown at the end of the benchmark or during the stress test. However Intel OpenImageDenoise is a CPU-only task and '''it is not part of the benchmark result'''.
 +
 
 +
<div align="center">[[Image:LuxMark-v4-denoise.jpg|640px]]</div>
  
 
== Stress mode ==
 
== Stress mode ==
Line 26: Line 28:
 
== Benchmark Scenes ==
 
== Benchmark Scenes ==
  
3 brand new scenes are included. The simple benchmark is the usual ''"LuxBall HDR"'' (217K triangles):
+
=== Brute force path tracing (OpenCL, C++ and Hybrid) ===
  
<div align="center">[[Image:Luxmark01.jpg|640px]]</div>
+
The main LuxMark benchmark is a brute force path tracer (i.e. no cache used).
  
The medium scene is the ''"Neumann TLM-102 Special Edition (with EA-4 shock mount)"''  (1769K traingles) designed by Vlad "SATtva" Miller (http://vladmiller.info/blog/index.php?comment=308):
+
<div align="center">[[Image:LuxMark-v4-bench1.png|640px]]</div>
  
<div align="center">[[Image:Luxmark02.jpg|640px]]</div>
+
=== Path tracing with GI cache (OpenCL, C++ and Hybrid) ===
  
The complex scene is the ''"Hotel Lobby"'' (4973K) designed by Peter "Piita" Sandbacka:
+
The second LuxMark benchmark is a path tracer with global illumination cache. this rendering mode slightly simpler than pure brute force and may work better on some GPU.
  
<div align="center">[[Image:Luxmark03.jpg|640px]]</div>
+
<div align="center">[[Image:LuxMark-v4-bench2.png|640px]]</div>
  
 
== Command line options ==
 
== Command line options ==

Revision as of 09:22, 8 October 2019

LuxMark v4.x

LuxMark is a OpenCL cross-platform benchmark tool and has become, over past years, one of the most used (if not the most used) OpenCL benchmark. It is intended as a promotional tool for LuxCoreRender and it is now based on LuxCore API, the LuxCoreRender v2.x C++ or Python API available under Apache Licence v2.0 and freely usable in open source and commercial applications.

Render engines

This release is based on LuxCoreRender v2.2 and includes benchmarks with the following rendering engines:

  • A micro-kernel based OpenCL path tracer with/without Global Illumination cache;
  • A C++ path tracer with/without Global Illumination cache;
  • An hybrid OpenCL for GPUs and C++ for CPUs path tracer with/without Global Illumination cache;
  • A C++ Bidirectional path tracer;

Denoiser

LuxMark includes Intel OpenImageDenoise. A comparison between raw and denoised image is shown at the end of the benchmark or during the stress test. However Intel OpenImageDenoise is a CPU-only task and it is not part of the benchmark result.

LuxMark-v4-denoise.jpg

Stress mode

Aside from benchmarking modes, it is also available a stress mode to check the reliability of the hardware under heavy load. Hybrid OpenCL GPUs + C++ CPUs is well suited to put the maximum load possible on the system.

Benchmark Result Validation

LuxMark includes a validation of the rendered image by using the same technology used for pdiff in order to check if the benchmarked result is valid or something has gone wrong. It has also a validation of the scene sources used (i.e. hash of scene files).

Benchmark Scenes

Brute force path tracing (OpenCL, C++ and Hybrid)

The main LuxMark benchmark is a brute force path tracer (i.e. no cache used).

LuxMark-v4-bench1.png

Path tracing with GI cache (OpenCL, C++ and Hybrid)

The second LuxMark benchmark is a path tracer with global illumination cache. this rendering mode slightly simpler than pure brute force and may work better on some GPU.

LuxMark-v4-bench2.png

Command line options

Usage: luxmark [options]
--help (display this help and exit)
--scene=LUXBALL_HDR|MICROPHONE|HOTEL (select the scene to use)
--mode=BENCHMARK_OCL_GPU|BENCHMARK_OCL_CPUGPU|BENCHMARK_OCL_CPU|BENCHMARK_NATIVE|STRESSTEST_OCL_GPU|
   STRESSTEST_OCL_CPUGPU|STRESSTEST_OCL_CPU|DEMO_LUXVR|PAUSE (select the mode to use)
--single-run (run the benchmark, print the result to the stdout and exit)
--ext-info (print scene and image verification too with --single-run)

Binaries

- Windows 64bit: https://github.com/LuxCoreRender/LuxMark/releases/download/luxmark_v3.1/luxmark-windows64-v3.1.zip (note: you may have to install VisualStudio 2013 C++ runtime => https://www.microsoft.com/en-US/download/details.aspx?id=40784)

- MacOS 64bit: https://github.com/LuxCoreRender/LuxMark/releases/download/luxmark_v3.1/luxmark-macos64-v3.1.zip

- Linux 64bit: https://github.com/LuxCoreRender/LuxMark/releases/download/luxmark_v3.1/luxmark-linux64-v3.1.tar.bz2

Compile from sources

Some note to compile LuxMark:

- the sources are available here: https://github.com/LuxCoreRender/LuxMark (tag: luxmark_v3.1)

- LuxMark can be compiled exactly like LuxCoreRender. It has exactly the same dependencies (i.e. LuxCore, LuxRays, etc.). The procedure described in repository and repository can be used to compile LuxMark too.

- the complete scenes directory is available here: https://github.com/LuxCoreRender/LuxMark/releases/download/luxmark_v4.0alpha0/scenes.tgz