Skip to content

[BUG] CUDA and OpenCl do not coexist nicely #6

@eddelbuettel

Description

@eddelbuettel

Package Version

0.1.11.1.9000

R Version

4.5.2

Operating System

Linux

Bug Description

I can convince configure to find both OpenCLand CUDA on my machine. There was one slight initial nag (mentioned in the matrix app / chat) that I need this diff

modified   configure.ac
@@ -295,7 +295,7 @@ if test "x${NVCC}" != xno; then
     LDFLAGS="${LDFLAGS} -L${CUDA_HOME}/lib64 -L${CUDA_HOME}/lib"
 
     AC_CHECK_LIB([cudart], [cudaMalloc],
-                 [AC_CHECK_LIB([cublas], [cublasCreate],
+                 [AC_CHECK_LIB([cublas], [cublasCreate_v2],
                   [AC_CHECK_LIB([cusolver], [cusolverDnCreate],
                    [AC_CHECK_LIB([curand], [curandCreateGenerator],
                     [AC_CHECK_LIB([nvrtc], [nvrtcCreateProgram],

but while 'all systems detected' happens I then get a silly linker error where seemingly one of the OpenCL symbols is longer found, for example undefined symbol: clBuildProgram (I had others too, and tried other things).

This is apparently not an issue with bandicoot itself as its cmake output is happy:

-- *** Result of configuration:                                                                                                                                                                                    
-- *** COOT_USE_WRAPPER       = true                                                                                                                                                                               
-- *** COOT_USE_OPENCL        = true                                                                     
-- *** COOT_USE_CLBLAST       = true                                                                     
-- *** COOT_USE_CLBLAS        = true                                                                                                                                                                               
-- *** COOT_USE_CUDA          = TRUE                                                                                                                                                                               
-- *** COOT_CUDA_INCLUDE_PATH = /usr/include
-- *** COOT_DEFAULT_BACKEND   = CUDA_BACKEND

I have not really had time to dig deeper and just thought I check in with you. Do you have CUDA and/or CUDA+OpenCL working?

Steps to Reproduce

See above

Expected Behavior

See above

Session Info

> sessionInfo()
R version 4.5.2 (2025-10-31)
Platform: x86_64-pc-linux-gnu
Running under: Ubuntu 25.04

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1;  LAPACK version 3.12.0

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_US.UTF-8      
 [8] LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

time zone: America/Chicago
tzcode source: system (glibc)

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_4.5.2 parallel_4.5.2 colorout_1.3-3 fortunes_1.5-4
> 

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions