3.1 / December 13, 2020-->
|License||GNU General Public License|
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.
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
./luxmark --mode=PAUSE to prevent it from starting a benchmark the moment you launch it.
LuxMark has three different scenes available in the Radeon Open Compute OpenCL stack.menu. The 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 . The default options cause a utter failure and a garbled image when using the AMD
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
--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
''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 ▸ is enabled. Both will render something with this option enabled, but the result fails validation. , , and 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 which breaks it and causes a garbled image to be rendered.
|AMD ROCm 3.8, MSI Radeon RX 470|
"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."
We are not sure if that's why AMD used it to promote the Radeon VII when AMD launched that graphics card.
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 ▸ . 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.
The LuxMark website is at luxmark.info