LuxMark

From LinuxReviews
Jump to navigationJump to search
LuxMark
LuksMark 3.1 OpenCL-ROCm.jpg
Stable release
3.1 / December 13, 2020; 5 months ago (2020-12-13) -->
Repositorygithub.com /LuxCoreRender/LuxMark
Size124M (tar.bz2)
219M installed
TypeOpenCL benchmarking
LicenseGNU General Public License
Documentationwiki.luxcorerender.org/LuxMark
Websiteluxmark.info
Pcie-card-icon.svg

LuxMark is a free open source OpenCL benchmark application used by AMD to promote their Radeon VII graphics cards. The benchmark can be ran using either the Mesa Clover OpenCL 1.1 implementation or the AMD ROCm OpenCL 2.0 driver.

LuxMark runs but fails to produce a valid image with Mesa Clover from Mesa versions prior to 21.x and both Clover and the AMD ROCm driver will fail to produce a valid image if one of the enabled-by-default optimizations (-cl-fast-relaxed-math) is enabled. It can be used to get a valid image with a valid score indicating Clover and AMD ROCm performance on GNU/Linux by disabling that optimization option.

Benchmarks

Luxmark 3.1 has three OpenCL scenes it can benchmark:

  • "Hotel Lobby" (HOTEL) with 4973 thousand triangles
  • "Neumann TLM" (MICROPHONE) 102 SE with 1769 thousand triangles
  • "Luxball HDR" (LUXBALL_HDR) with 217 thousand triangles

Features And Usability

LuxMark launches into a simple GUI and immediately starts running a benchmark with the default options when you launch it. Thus, the first thing you should do when you start it is to select Mode ▸ Pause to stop it so you can actually select the options you want to use. It's one of those laughable design-flaws modern software shouldn't have. You can also start it with ./luxmark --mode=PAUSE to prevent it from starting a benchmark the moment you launch it.

LuxMark has three different scenes available in the Scenes menu. The Mode menu lets you choose if you want to render using just the GPU or just the CPU or both. Several optimization options can be enabled or disabled under OpenCL Compiler Options. The default options cause a utter failure and a garbled image when using the AMD Radeon Open Compute OpenCL stack.

LuxMark presents a simple score when a scene has been rendered and a short informative message telling you if the image failed or passed validation. Validation does matter, results with an invalid image don't count. Both AMD ROCm and Meas Clover from Mesa 21.x+ will produce an invalid image if the -cl-fast-relaxed-math "optimization" is enabled. Clover from Mesa versions prior to 21 will produce an invalid image no matter what you do; it's just broken. Mesa 20.2.x was even worse, running LuxMark with Mesa 20.2.x and earlier can cause the whole X server to crash.

LuxMark supports a command-line benchmark mode. The options for this mode are --scene, --mode, --singlerun and --ext-info. You can run it like:

./luxmark --scene=LUXBALL_HDR --mode=BENCHMARK_OCL_GPU --single-run
./luxmark --scene=HOTEL       --mode=BENCHMARK_OCL_GPU --single-run
./luxmark --scene=MICROPHONE  --mode=BENCHMARK_OCL_GPU --single-run

One huge problem with this automated benchmark-mode is that there's no command-line switch for disabling the "optimizations". That makes it practically useless one of the by-default enabled optimization options makes both AMD ROCm and Mesa Clover produce a invalid image. A work-around is to start it with ./luxmark --mode=PAUSE and run benchmarks manually.

Optimization Failures & Other Failures

LuksMark 3.1 Failed with Mesa Clover.jpg
''LuxMark producing an invalid image with Mesa Clover from Mesa 20.3. It does produce a valid image with Clover from Mesa 21.0.x.

LuxMark 3.1 fails to render any of the scenes correctly with implementation no matter what options you select. It does run all the benchmarks, but it doesn't really matter when it fails validation.

LuxMark fails to render any scene correctly using either the Mesa Clover OpenCL 1.1 implementation or the AMD Radeon Open Compute OpenCL stack if OpenCL Compiler Options ▸ -d-fast-relaxed-math is enabled. Both will render something with this option enabled, but the result fails validation. -d-mad-enable, -d-no-signed-zeros, and -d-strict-aliasing can all be enabled with both aforementioned OpenCL implementaiton. They don't actually help, but it's safe to have them enabled. LuxMark defaults to enabling all of them, including -d-fast-relaxed-math which breaks it and causes a garbled image to be rendered.

AMD ROCm 3.8, MSI Radeon RX 470
  • -d-mad-enable
  • -d-no-signed-zeros
  • -d-strict-aliasing
No optimizations
"Hotel Lobby" 1199 1205
"Neumann TLM" 7654 7813
"Luksball HDR" 12896 12980

AMD Story

"Nothing happened to OpenCL... LuxMark has always been a terribly picky benchmark.... and frankly not worth looking at. The whole point of ROCm is an OpenCL ecosystem, HIP and hipSYCL are built on top of that infrastructure."

gh0stwriter88 on r/AMD, October 1st, 2020

We are not sure if that's why AMD used it to promote the Radeon VII when AMD launched that graphics card.

RadeonVII-ContentCreation.jpg

Verdict And Conclusion

LuxMark is a nice and simple OpenCL benchmarking program you can use to check your OpenCL performance as long as you either use a new enough Mesa Clover OpenCL stack (>=Mesa 21) and you make sure to disable OpenCL Compiler Options ▸ -d-fast-relaxed-math. It is useful both for comparing OpenCL performance in various OpenCL implementations (like Clover vs AMD ROCm) and GPU vs GPU or machine vs machine comparisons.

Links

The LuxMark website is at luxmark.info


Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.