Giter Site home page Giter Site logo

cudaglmnet's People

Contributors

jeffwong avatar nrs02004 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

cudaglmnet's Issues

cudaglmnet fails to compile

When I try to compile cudaglmnet, I get the following error sequence. I include outputs of ./configure and system information after the error log.

What gives? What's going wrong, and how to fix? I'm not an expert on configuration issues with CUDA/nvcc, so I haven't much of a clue here, and any pointers would be helpful.

Thanks!

Paul Deane

Starting after cloning sudaglmnet and cding to the installation directory:

sudo R CMD INSTALL ./

  • installing to library ‘/usr/local/lib/R/site-library’
  • installing source package ‘cudaglmnet’ ...
    ** using staged installation
    configure: checking for critical tools used by configure
    checking "environment variable COMPILER_BINDIR"... "COMPILER_BINDIR not set; using user's default path"
    checking "environment variable CUDA_HOME"... "CUDA_HOME not set; using default /usr/local/cuda"
    checking "environment variable CULA_HOME"... "CULA_HOME not set; using default /usr/local/cula"
    checking for /usr/local/cuda/bin/nvcc... yes
    "nvcc found"
    checking "whether this is the 64 bit linux version of CUDA"... checking for /usr/local/cuda/lib64/libcublas.so... yes
    "yes -- using /usr/local/cuda/lib64 for CUDA libs"
    "using -I/usr/share/R/include for R header files"
    "using -Wl,--export-dynamic -fopenmp -Wl,-Bsymbolic-functions -Wl,-z,relro -L/usr/lib/R/lib -lR -lpcre2-8 -llzma -lbz2 -lz -lrt -ldl -lm -licuuc -licui18n for R shared libraries"
    checking "whether this is the 64 bit version of CULA"... checking for /usr/local/cula/lib64/libcula.so... no
    checking for /usr/local/cula/lib64/libcula.dylib... no
    "no"
    checking "checking whether cula is present at all"... checking for /usr/local/cula/lib/libcula.so... no
    checking for /usr/local/cula/lib/libcula.dylib... no
    "cula is not installed"
    configure: determining host platform
    checking build system type... x86_64-unknown-linux-gnu
    checking host system type... x86_64-unknown-linux-gnu
    configure: creating ./config.status
    config.status: creating src/Makefile
    ** libs
    ** arch -
    /usr/local/cuda/bin/nvcc -O2 -shared -Xlinker -Wl,--export-dynamic -fopenmp -Wl,-Bsymbolic-functions -Wl,-z,relro -L/usr/lib/R/lib -lR -lpcre2-8 -llzma -lbz2 -lz -lrt -ldl -lm -licuuc -licui18n -L/usr/local/cuda/lib64 -lcublas main.o -o cudaglmnet.so
    nvcc fatal : Unknown option '-fopenmp'
    make: *** [Makefile:24: cudaglmnet.so] Error 1
    ERROR: compilation failed for package ‘cudaglmnet’
  • removing ‘/usr/local/lib/R/site-library/cudaglmnet’
  • restoring previous ‘/usr/local/lib/R/site-library/cudaglmnet’

SYSTEM INFORMATION

Description: Ubuntu 20.04 LTS
Release: 20.04
Codename: focal

GPU: NVIDIA GeForce RTX 3070
R version: 4.2.2 Patched (2022-11-10 r83330)

./configure
configure: checking for critical tools used by configure
checking "environment variable COMPILER_BINDIR"... "COMPILER_BINDIR not set; using user's default path"
checking "environment variable CUDA_HOME"... "using CUDA_HOME=/usr/local/cuda-12.0"
checking "environment variable CULA_HOME"... "CULA_HOME not set; using default /usr/local/cula"
checking for /usr/local/cuda-12.0/bin/nvcc... yes
"nvcc found"
checking "whether this is the 64 bit linux version of CUDA"... checking for /usr/local/cuda-12.0/lib64/libcublas.so... yes
"yes -- using /usr/local/cuda-12.0/lib64 for CUDA libs"
"using -I/usr/share/R/include for R header files"
"using -L/usr/local/R/lib -lR for R shared libraries"
checking "whether this is the 64 bit version of CULA"... checking for /usr/local/cula/lib64/libcula.so... no
checking for /usr/local/cula/lib64/libcula.dylib... no
"no"
checking "checking whether cula is present at all"... checking for /usr/local/cula/lib/libcula.so... no
checking for /usr/local/cula/lib/libcula.dylib... no
"cula is not installed"
configure: determining host platform
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
configure: creating ./config.status
config.status: creating src/Makefile

/usr/local/cuda-12.0/bin/nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Mon_Oct_24_19:12:58_PDT_2022
Cuda compilation tools, release 12.0, V12.0.76
Build cuda_12.0.r12.0/compiler.31968024_0

cat /usr/local/cuda-12.0/version.json
{
"cuda" : {
"name" : "CUDA SDK",
"version" : "12.0.20221203"
},
"cuda_cccl" : {
"name" : "CUDA C++ Core Compute Libraries",
"version" : "12.0.90"
},
"cuda_cudart" : {
"name" : "CUDA Runtime (cudart)",
"version" : "12.0.107"
},
"cuda_cuobjdump" : {
"name" : "cuobjdump",
"version" : "12.0.76"
},
"cuda_cupti" : {
"name" : "CUPTI",
"version" : "12.0.90"
},
"cuda_cuxxfilt" : {
"name" : "CUDA cu++ filt",
"version" : "12.0.76"
},
"cuda_demo_suite" : {
"name" : "CUDA Demo Suite",
"version" : "12.0.76"
},
"cuda_gdb" : {
"name" : "CUDA GDB",
"version" : "12.0.90"
},
"cuda_nsight" : {
"name" : "Nsight Eclipse Plugins",
"version" : "12.0.78"
},
"cuda_nvcc" : {
"name" : "CUDA NVCC",
"version" : "12.0.76"
},
"cuda_nvdisasm" : {
"name" : "CUDA nvdisasm",
"version" : "12.0.76"
},
"cuda_nvml_dev" : {
"name" : "CUDA NVML Headers",
"version" : "12.0.76"
},
"cuda_nvprof" : {
"name" : "CUDA nvprof",
"version" : "12.0.90"
},
"cuda_nvprune" : {
"name" : "CUDA nvprune",
"version" : "12.0.76"
},
"cuda_nvrtc" : {
"name" : "CUDA NVRTC",
"version" : "12.0.76"
},
"cuda_nvtx" : {
"name" : "CUDA NVTX",
"version" : "12.0.76"
},
"cuda_nvvp" : {
"name" : "CUDA NVVP",
"version" : "12.0.90"
},
"cuda_opencl" : {
"name" : "CUDA OpenCL",
"version" : "12.0.76"
},
"cuda_sanitizer_api" : {
"name" : "CUDA Compute Sanitizer API",
"version" : "12.0.90"
},
"libcublas" : {
"name" : "CUDA cuBLAS",
"version" : "12.0.1.189"
},
"libcufft" : {
"name" : "CUDA cuFFT",
"version" : "11.0.0.21"
},
"libcufile" : {
"name" : "GPUDirect Storage (cufile)",
"version" : "1.5.0.59"
},
"libcurand" : {
"name" : "CUDA cuRAND",
"version" : "10.3.1.50"
},
"libcusolver" : {
"name" : "CUDA cuSOLVER",
"version" : "11.4.2.57"
},
"libcusparse" : {
"name" : "CUDA cuSPARSE",
"version" : "12.0.0.76"
},
"libnpp" : {
"name" : "CUDA NPP",
"version" : "12.0.0.30"
},
"libnvjitlink" : {
"name" : "JIT Linker Library",
"version" : "12.0.76"
},
"libnvjpeg" : {
"name" : "CUDA nvJPEG",
"version" : "12.0.0.28"
},
"libnvvm_samples" : {
"name" : "NVVM Samples",
"version" : "12.0.94"
},
"nsight_compute" : {
"name" : "Nsight Compute",
"version" : "2022.4.0.15"
},
"nsight_systems" : {
"name" : "Nsight Systems",
"version" : "2022.4.2.18"
},
"nvidia_driver" : {
"name" : "NVIDIA Linux Driver",
"version" : "525.60.13"
},
"nvidia_fs" : {
"name" : "NVIDIA file-system",
"version" : "2.14.12"
}
}

some device vectors do not need to be init to 0

thrust::device_vector(n, init) initializes device memory than does a memcpy to initialize the values. It is only necessary to init X and y, the other vectors can be left alone with random values, saving many memcpys

active variable set redundant computations

isActive array is copied from device to host, then host counts the number of 1's.
This can be done by summing the isActive array
numActive is set and then copied from host to device

sudo R CMD INSTALL ./ fails

$ sudo R CMD INSTALL ./

  • installing to library ‘/usr/local/lib/R/site-library’
  • installing source package ‘cudaglmnet’ ...
    configure: checking for critical tools used by configure
    checking "environment variable COMPILER_BINDIR"... "COMPILER_BINDIR not set; using user's default path"
    checking "environment variable CUDA_HOME"... "CUDA_HOME not set; using default /usr/local/cuda"
    checking "environment variable CULA_HOME"... "CULA_HOME not set; using default /usr/local/cula"
    checking for /usr/local/cuda/bin/nvcc... yes
    "nvcc found"
    checking "whether this is the 64 bit linux version of CUDA"... checking for /usr/local/cuda/lib64/libcublas.so... yes
    "yes -- using /usr/local/cuda/lib64 for CUDA libs"
    "using -I/usr/share/R/include for R header files"
    "using -L/usr/lib/R/lib -lR for R shared libraries"
    checking "whether this is the 64 bit version of CULA"... checking for /usr/local/cula/lib64/libcula.so... no
    checking for /usr/local/cula/lib64/libcula.dylib... no
    "no"
    checking "checking whether cula is present at all"... checking for /usr/local/cula/lib/libcula.so... no
    checking for /usr/local/cula/lib/libcula.dylib... no
    "cula is not installed"
    configure: determining host platform
    checking build system type... x86_64-unknown-linux-gnu
    checking host system type... x86_64-unknown-linux-gnu
    configure: creating ./config.status
    config.status: creating src/Makefile
    ** libs
    ** arch -
    make: Nothing to be done for `all'.
    installing to /usr/local/lib/R/site-library/cudaglmnet/libs
    ** R
    ** preparing package for lazy loading
    ** help
    *** installing help indices
    ** building package indices
    ** testing if installed package can be loaded
    Error in dyn.load(file, DLLpath = DLLpath, ...) :
    unable to load shared object '/usr/local/lib/R/site-library/cudaglmnet/libs/cudaglmnet.so':
    libcublas.so.7.5: cannot open shared object file: No such file or directory
    Error: loading failed
    Execution halted
    ERROR: loading failed
  • removing ‘/usr/local/lib/R/site-library/cudaglmnet’

Positivity constraints on fitted coefficients?

In glmnet one can add positivity constraints on the fitted coefficients using argument lower.limits. I was just wondering if it would be possible to add this capability in cudaglmnet also? (Support for additional families like poisson, multinomial and mgaussian would also be nice of course)

install package

Hello,
Do I need to install a package to use 'cudaglmnet' function?
It seems to be the case..
If so, how install that package ?
Thank you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.