I always get this output:
INFO Using CPU backend for scanning (no GPU detected)
Since my OpenCL installation looked ok to me:
$ ldconfig -p | grep libOpenCL
libOpenCL.so.1 (libc6,x86-64) => /usr/lib/libOpenCL.so.1
libOpenCL.so (libc6,x86-64) => /usr/lib/libOpenCL.so
$ clinfo | grep "Number of"
Number of platforms 1
Number of devices 1
I recompiled duckdb-ufsecp-extension, setting config.verbose = true, then replaced the compiled extension on frigate and got build errors this time:
2026-05-15 13:27:44,441 INFO Using home directory /home/otto/.frigate
OpenCL Device: gfx90c:xnack+
Vendor: Advanced Micro Devices, Inc.
Version: OpenCL 2.0
Driver: 3581.0 (HSA1.1,LC)
Global Memory: 16957 MB
Local Memory: 64 KB
Compute Units: 8
Max Clock: 1900 MHz
[DEBUG] Creating OpenCL context for device: gfx90c:xnack+
[DEBUG] Context created successfully
[DEBUG] Command queue created successfully
[DEBUG] build_program failed: Build failed: ld.lld: error: undefined hidden symbol: field_inv_impl
>>> referenced by /tmp/comgr-97681-7-3fe83e/input/linked.o:(field_inv)
>>> referenced by /tmp/comgr-97681-7-3fe83e/input/linked.o:(field_inv)
>>> referenced by /tmp/comgr-97681-7-3fe83e/input/linked.o:(field_inv)
>>> referenced 11 more times
ld.lld: error: undefined hidden symbol: scalar_mul_generator_glv_impl
>>> referenced by /tmp/comgr-97681-7-3fe83e/input/linked.o:(scalar_mul_generator)
>>> referenced by /tmp/comgr-97681-7-3fe83e/input/linked.o:(scalar_mul_generator)
ld.lld: error: undefined hidden symbol: point_add_impl
>>> referenced by /tmp/comgr-97681-7-3fe83e/input/linked.o:(point_add)
>>> referenced by /tmp/comgr-97681-7-3fe83e/input/linked.o:(point_add)
>>> referenced by /tmp/comgr-97681-7-3fe83e/input/linked.o:(msm_block_reduce_kernel)
>>> referenced 1 more times
ld.lld: error: undefined hidden symbol: scalar_mul_glv_cl
>>> referenced by /tmp/comgr-97681-7-3fe83e/input/linked.o:(scalar_mul)
>>> referenced by /tmp/comgr-97681-7-3fe83e/input/linked.o:(scalar_mul)
Error: Creating the executable from LLVM IRs failed.
2026-05-15 13:27:44,984 INFO Using CPU backend for scanning (no GPU detected)
Maybe it's because UltrafastSecp256k1 was built without ROCm/HIP? Build log has:
-- +===========================================================+
-- | UltrafastSecp256k1 Configuration |
-- +===========================================================+
-- Version: 3.66.0
-- Platform: x86_64
-- C++ Standard: 20
-- Build Type: Release
--
-- Components:
-- CPU: ON
-- CUDA: OFF
-- ROCm/HIP: OFF
-- OpenCL: ON
-- Metal: OFF
-- Tests: OFF
-- Benchmarks: OFF
-- Examples: OFF
-- Java JNI: ON
I then tried to build UltrafastSecp256k1 with that support, but it would always fail with errors like:
[45/89] Building HIP object cuda_rocm/CMakeFiles/bench_bip324_cuda.dir/src/bench_bip324_transport.cu.o
FAILED: [code=1] cuda_rocm/CMakeFiles/bench_bip324_cuda.dir/src/bench_bip324_transport.cu.o
[46/89] Building HIP object cuda_rocm/CMakeFiles/gpu_bench_unified.dir/src/gpu_bench_unified.cu.o
FAILED: [code=1] cuda_rocm/CMakeFiles/gpu_bench_unified.dir/src/gpu_bench_unified.cu.o
[47/89] Building HIP object cuda_rocm/CMakeFiles/gpu_audit_runner.dir/src/gpu_audit_runner.cu.o
FAILED: [code=1] cuda_rocm/CMakeFiles/gpu_audit_runner.dir/src/gpu_audit_runner.cu.o
Even though I explicitly tried to disable benchmarks:
cmake -B build -DSECP256K1_BUILD_ROCM=ON -DSECP256K1_BUILD_CUDA=OFF -DSECP256K1_BUILD_TESTS=OFF -DSECP256K1_BUILD_BENCH=OFF -G Ninja
This was the config during this build attempt:
-- +===========================================================+
-- | UltrafastSecp256k1 Configuration |
-- +===========================================================+
-- Version: 3.66.0
-- Platform: x86_64
-- C++ Standard: 20
-- Build Type:
--
-- Components:
-- CPU: ON
-- CUDA: OFF
-- ROCm/HIP: ON
-- OpenCL: OFF
-- Metal: OFF
-- Tests: OFF
-- Benchmarks: OFF
-- Examples: ON
-- Java JNI: ON
--
-- Optimizations:
-- Assembly: ON
-- Speed First: OFF
-- Bitcoin Strict: ON
Since this could be specific to my GPU, will try building again if you have any suggestion.
I always get this output:
Since my OpenCL installation looked ok to me:
I recompiled duckdb-ufsecp-extension, setting config.verbose = true, then replaced the compiled extension on frigate and got build errors this time:
Maybe it's because UltrafastSecp256k1 was built without ROCm/HIP? Build log has:
I then tried to build UltrafastSecp256k1 with that support, but it would always fail with errors like:
Even though I explicitly tried to disable benchmarks:
This was the config during this build attempt:
Since this could be specific to my GPU, will try building again if you have any suggestion.