jeffwong / cudaglmnet Goto Github PK
View Code? Open in Web Editor NEWThis project forked from nrs02004/culasso
A lasso solver on the GPU
This project forked from nrs02004/culasso
A lasso solver on the GPU
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 ./
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"
}
}
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
Do memcpy from host to device in parallel
https://developer.nvidia.com/content/how-overlap-data-transfers-cuda-cc
may be better to use cudaMemCopy and take advantage of memory coalescing instead of using a kernel to copy elemnts one by one
gpu_indices[j] is loaded multiple times
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 ./
Am I incorrect in stating that this only supports Guassian family from glmnet? Can you please clearly state whether this also supports cox, binomial, etc that glmnet currently supports?
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)
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
Most functions used here can be rewritten using a transform functor, reduce, or zip
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.