Add AMD OpenCL kernel, runtime-loaded CUDA, mixed backend, portability
AMD GPU backend: - Add the GCN-tuned equihash192_7.cl kernel (clearCounter/blake/round1..7/ combine pipeline) and its host driver src/gpu_amd.rs. GpuSolver now dispatches AMD-vendor OpenCL devices to it and other devices to the existing kernel (force with ZCL_OPENCL_KERNEL=amd|legacy). Validated on an RX 9060 XT: GPU solutions match the CPU reference 1/1. - Expose BatchHasher::midstate() for the kernel's ulong8 hashState arg. Runtime-loaded GPU drivers (minimum host deps): - dlopen libcuda / libnvidia-ml via libloading instead of linking them (src/dylib.rs macro; cuda.rs, nvml.rs, gpu_probe.rs). The binary now builds and starts on hosts without an NVIDIA driver and reports no CUDA devices gracefully; remove build.rs (its only job was linking those libs). - Add Dockerfile.portable + build-portable.sh: build against Debian bullseye's glibc 2.31 for a binary that runs on older distros and drives both AMD (OpenCL) and NVIDIA (CUDA) cards. Document the build matrix in the README. Mixed backend (default): - Add --backend mixed (now the default): each card on its native backend (NVIDIA->CUDA, AMD/Intel->OpenCL), deduped so no card is mined twice. --devices indexes the unified list shown by --list-devices. Misc: - Stale-work timeout (--job-timeout) default 300s -> 600s (10 minutes). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+5
-3
@@ -23,9 +23,11 @@ user = "t1YourZClassicAddressHere.rig1" # payout address / worker login
|
||||
# no-jackpot = true # PPLNS
|
||||
|
||||
# ── GPU backend ───────────────────────────────────────────────────────────────
|
||||
# backend = "cuda" # "cuda" or "opencl"
|
||||
# devices = "all" # "all", or a comma list e.g. "0,1"
|
||||
# force-opencl = false # force OpenCL, disabling CUDA
|
||||
# backend = "mixed" # "mixed" (default: NVIDIA→CUDA, AMD/Intel→OpenCL),
|
||||
# # "opencl" (every card via OpenCL), or "cuda"
|
||||
# devices = "all" # "all", or a comma list e.g. "0,1" — in mixed mode
|
||||
# # these index the combined list from --list-devices
|
||||
# force-opencl = false # force every card onto OpenCL, disabling CUDA
|
||||
|
||||
# ── GPU tuning (clock/power changes need root) ────────────────────────────────
|
||||
# no-gpu-tune = false
|
||||
|
||||
Reference in New Issue
Block a user