LuxMark

From LinuxReviews
Jump to navigationJump to search
LuxMark
LuksMark 3.1 OpenCL-ROCm.jpg
Stable release
3.1 / December 13, 2020; 48 days' time (2020-12-13) -->
Repositorygithub.com /LuxCoreRender/LuxMark
Size124M (tar.bz2)
219M installed
TypeOpenCL benchmarking
LicenseGNU General Public License
Documentationwiki.luxcorerender.org/LuxMark
Documentationwiki.luxcorerender.org/LuxMark
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 when Mesa Clover is used and it fails to produce a valid image using the AMD ROCm driver if one of the enabled-by-default optimizations is enabled. It can be used to get a valid image with a valid score indicating AMD ROCm performance on GNU/Linux by disabling that one optimization option.

Benchmarks

Luksmark 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, the Mesa Clover OpenCL 1.1 implementation does work with LuxMark and it gets a higher score than the AMD ROCm on the same GPU - but Mesa Clover does not pass validation no matter what optimization settings you use so it doesn't really matter what "score" it gets: The score is in reality zero when it fails to produce a valid result.

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" and since one of them break it when AMD ROCm is used.. it's useless. A work-around is to start the program and run benchmarks manually.

Optimization Failures & Other Failures

LuksMark 3.1 Failed with Mesa Clover.jpg
Mesa Clover produces a invalid image no matter what settings you use.

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

Luksmark fails to render any scene correctly using the AMD Radeon Open Compute OpenCL stack if OpenCL Compiler Options ▸ -d-fast-relaxed-math is enabled. It does 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 AMD ROCm. They don't actually help, but it's safe to have them enabled. Luksmark 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 don't use the Mesa Clover OpenCL stack and you make sure to disable OpenCL Compiler Options ▸ -d-fast-relaxed-math if you use AMD ROCm.

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.