fkallen/CARE

error during installation - compilation terminated

Closed this issue · 8 comments

Hi,
I am interested in corrected my 100 Pe-reads but installation failed.

In the server that I am using CUDA is already pre-installed but I have no idea the directory. I installed thrust in the same directory as CARE, I used that directory, which showed no problem, so during the configure I had the following problems:
./configure --with-thrust-incdir=/fs/scratch/PHS0338/appz/CARE/thrust/
Warning!
Could not find CUDA compiler /usr/local/cuda/bin/nvcc.
care-gpu cannot be compiled without nvcc.
Please check that the CUDA directory is correct if you intend to use the GPU version.

Warning!
Could not find file /usr/local/cuda/include/cub/cub.cuh.
care-gpu cannot be compiled without cub.
Please check that the CUB include directory is correct if you intend to use the GPU version.

Prefix: /usr/local
CUDA: /usr/local/cuda
CUB: /usr/local/cuda/include
THRUST: /fs/scratch/PHS0338/appz/CARE/thrust/

But during make, it failed:
make cpu
Compiling src/correct_cpu.cpp to buildcpu/correct_cpu.o
In file included from include/correctionresultprocessing.hpp:5,
from src/correct_cpu.cpp:4:
include/hpc_helpers.cuh:6:10: fatal error: hpc_helpers/include/cuda_helpers.cuh: No such file or directory
#include "hpc_helpers/include/cuda_helpers.cuh"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [buildcpu/correct_cpu.o] Error 1

What can I do to overcome this error?

Thanks;

Hi,
the compilation error suggests that the submodule is not initialized properly. Did you clone the project using git clone --recurse-submodules url ?
If not, please run git submodule update --init --recursive in the repository folder.

To find out the cuda directory, it may be sufficient to run which nvcc which prints the location of nvcc.

which nvcc
/opt/cuda-11.1/bin/nvcc

In this example, /opt/cuda-11.1 is used with CARE.

I recommend using quality scores if possible. This only has a small impact on runtime, but increases memory consumption. Reads of length 100 with quality scores should require around 128 MB per million reads.

You should enable the option --candidateCorrection, as well.

Regarding CUDA: Could you compile a .cu file with the following contents using the command nvcc --dryrun file.cu ?
int main(){ return 0; }

This will print the contents of relevant variables for nvcc such as include directories. You may be able to figure out the correct path required by CARE.
#$ INCLUDES="-I/opt/cuda-11.0/bin/../targets/x86_64-linux/include" #$ LIBRARIES= "-L/opt/cuda-11.0/bin/../targets/x86_64-linux/lib/stubs" "-L/opt/cuda-11.0/bin/../targets/x86_64-linux/lib"

Hi,

CUDA 10 good. With the provided output you may be able to use this path for CUDA: /apps/cuda/10.2.89 . With a default installation the nvcc executable should be in /apps/cuda/10.2.89/bin/nvcc . However, as you have probably noticed the nvcc which you used is part of CUDA 10.2, not CUDA 11. The CUB library has to be downloaded separately as it is not shipped together with CUDA 10.

Hi
I'm not quite sure what you mean by change of base quality in your application. The quality scores of the corrected reads should be identical to those of uncorrected reads.

Note that CARE was only designed for Illumina reads with decent coverage of ~30+.