Skip to content

OpenCL kernel build fails on AMD GPU with rusticl driver #4

@Su3h7aM

Description

@Su3h7aM

When running the gpu_test binary, the OpenCL kernel compilation fails with a CL_BUILD_PROGRAM_FAILURE. The build log indicates an ambiguous call to the atomic_min function within the sha3x.cl kernel file. This issue occurs on an AMD GPU using the open-source rusticl OpenCL driver.

To Reproduce
Steps to reproduce the behavior:

  1. Compile the project in debug mode.
  2. Run the gpu_test binary with the following command:
    RUST_BACKTRACE=full RUSTICL_ENABLE=radeonsi ./target/debug/gpu_test
  3. Observe the error output.

System Details:

  • Miner Version: main
  • Operating System: Linux (CachyOS)
  • GPU: AMD Radeon RX 580 Series
  • OpenCL Driver: rusticl (Mesa)
  • Device String: AMD Radeon RX 580 Series (radeonsi, polaris10, ACO, DRM 3.63, 6.15.6-2-cachyos)

Full Error Log

RUST_BACKTRACE=full RUSTICL_ENABLE=radeonsi ./target/debug/gpu_test
2025-07-14T14:35:23.713713Z  INFO gpu_test: 🎮 GPU Mining Test - Testing RTX 4060 Ti REAL Performance
2025-07-14T14:35:23.809952Z  INFO sha3x_miner::miner::gpu::opencl::device: Found 2 OpenCL platform(s)
2025-07-14T14:35:23.810011Z  INFO sha3x_miner::miner::gpu::opencl::device: Detected OpenCL device 0: AMD Radeon RX 580 Series (radeonsi, polaris10, ACO, DRM 3.63, 6.1
2025-07-14T14:35:23.810025Z  INFO sha3x_miner::miner::gpu::opencl::device: Successfully detected 1 OpenCL GPU device(s)
2025-07-14T14:35:23.810040Z  INFO gpu_test: 🎮 Testing device: AMD Radeon RX 580 Series (radeonsi, polaris10, ACO, DRM 3.63, 6.15.6-2-cachyos) (CU: 36, WG: 1024, MEM:
2025-07-14T14:35:23.810060Z  INFO sha3x_miner::miner::gpu::opencl::engine: Initializing OpenCL engine for AMD Radeon RX 580 Series (radeonsi, polaris10, ACO, DRM 3.63
2025-07-14T14:35:23.810069Z  INFO sha3x_miner::miner::gpu::opencl::engine: 🎮 GPU Settings: Intensity=100%, Batch=None, Power=None%, Temp=None°C
2025-07-14T14:35:23.826262Z ERROR sha3x_miner::miner::gpu::opencl::engine: Failed to build OpenCL program: CL_BUILD_PROGRAM_FAILURE
2025-07-14T14:35:23.826289Z ERROR sha3x_miner::miner::gpu::opencl::engine: Build log for device 0x55f3e42eed50: input.cl:169:13: error: call to 'atomic_min' is ambigu
input.cl:175:13: error: call to 'atomic_min' is ambiguous
Error executing LLVM compilation action.

Error: Program build failed: CL_BUILD_PROGRAM_FAILURE

Stack backtrace:
   0: anyhow::error::<impl anyhow::Error>::msg
             at /home/su3h7am/.local/share/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.98/src/backtrace.rs:27:14
   1: sha3x_miner::miner::gpu::opencl::engine::OpenClEngine::initialize
             at ./src/miner/gpu/opencl/engine.rs:143:28
   2: gpu_test::main::{{closure}}
             at ./src/bin/gpu_test.rs:28:5
   3: tokio::runtime::park::CachedParkThread::block_on::{{closure}}
             at /home/su3h7am/.local/share/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/park.rs:285:60
   4: tokio::task::coop::with_budget
             at /home/su3h7am/.local/share/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/task/coop/mod.rs:167:5
   5: tokio::task::coop::budget
             at /home/su3h7am/.local/share/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/task/coop/mod.rs:133:5
   6: tokio::runtime::park::CachedParkThread::block_on
             at /home/su3h7am/.local/share/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/park.rs:285:31
   7: tokio::runtime::context::blocking::BlockingRegionGuard::block_on
             at /home/su3h7am/.local/share/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/context/blocking.rs:66:9
   8: tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}
             at /home/su3h7am/.local/share/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/scheduler/multi_thread/mod.rs:87:13
   9: tokio::runtime::context::runtime::enter_runtime
             at /home/su3h7am/.local/share/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/context/runtime.rs:65:16
  10: tokio::runtime::scheduler::multi_thread::MultiThread::block_on
             at /home/su3h7am/.local/share/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/scheduler/multi_thread/mod.rs:86:9
  11: tokio::runtime::runtime::Runtime::block_on_inner
             at /home/su3h7am/.local/share/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/runtime.rs:358:45
  12: tokio::runtime::runtime::Runtime::block_on
             at /home/su3h7am/.local/share/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/runtime.rs:330:13
  13: gpu_test::main
             at ./src/bin/gpu_test.rs:164:5
  14: core::ops::function::FnOnce::call_once
             at /home/su3h7am/.local/share/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  15: std::sys::backtrace::__rust_begin_short_backtrace
             at /home/su3h7am/.local/share/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:152:18
  16: std::rt::lang_start::{{closure}}
             at /home/su3h7am/.local/share/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:199:18
  17: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
             at /rustc/934880f586f6ac1f952c7090e2a943fcd7775e7b/library/core/src/ops/function.rs:284:13
  18: std::panicking::try::do_call
             at /rustc/934880f586f6ac1f952c7090e2a943fcd7775e7b/library/std/src/panicking.rs:589:40
  19: std::panicking::try
             at /rustc/934880f586f6ac1f952c7090e2a943fcd7775e7b/library/std/src/panicking.rs:552:19
  20: std::panic::catch_unwind
             at /rustc/934880f586f6ac1f952c7090e2a943fcd7775e7b/library/std/src/panic.rs:359:14
  21: std::rt::lang_start_internal::{{closure}}
             at /rustc/934880f586f6ac1f952c7090e2a943fcd7775e7b/library/std/src/rt.rs:168:24
  22: std::panicking::try::do_call
             at /rustc/934880f586f6ac1f952c7090e2a943fcd7775e7b/library/std/src/panicking.rs:589:40
  23: std::panicking::try
             at /rustc/934880f586f6ac1f952c7090e2a943fcd7775e7b/library/std/src/panicking.rs:552:19
  24: std::panic::catch_unwind
             at /rustc/934880f586f6ac1f952c7090e2a943fcd7775e7b/library/std/src/panic.rs:359:14
  25: std::rt::lang_start_internal
             at /rustc/934880f586f6ac1f952c7090e2a943fcd7775e7b/library/std/src/rt.rs:164:5
  26: std::rt::lang_start
             at /home/su3h7am/.local/share/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:198:5
  27: main
  28: <unknown>
  29: __libc_start_main
  30: _start

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions