fkallen/CARE

How do I specify GPU ID?

Closed this issue · 4 comments

The help information output from running care-gpu --help includes the lines

Mandatory GPU options:
  -g, --gpu arg  One or more GPU device ids to be used for correction. 

What sort of GPU device ID is accepted? I have tried cuda:0 as well as the GPU-UUID or bus location, obtained from the information file in the /proc/driver/nvidia/gpus/<bus_location>/ directory. In all cases, the program dies with the error terminate called after throwing an instance of 'cxxopts::argument_incorrect_type'
What is the correct type for this argument?

Hi, the device id is an integer. If you have N GPUs, the device id ranges from 0 to N-1.
On single-gpu systems, the parameter is always -g 0

(In case you are familiar with cuda: the device id arguments are used for cudaSetDevice ).

I updated the readme file and added an option to care-gpu to list the device IDs of gpus in your system

./care-gpu --listGpus
Found 2 CUDA-capable GPUs in your system
Device ID 0: Quadro GV100, compute capability 7.0
Device ID 1: Quadro GV100, compute capability 7.0

Thanks for the quick reply - the program is running now. A comment - the readme mentions an option --pairmode that is not listed in the command-line help output, and when I include that option the program fails with the following error

terminate called after throwing an instance of 'cxxopts::option_not_exists_exception'
  what():  Option ‘pairmode’ does not exist

Is this a new option that will require updating my local copy of the repo and re-compiling to include?
An unrelated question - would it save on memory use to build hashtables from subsets of the complete dataset and save them to disk, then load the hashtables for the complete dataset to carry out the correction?

Yes, you need to update your local repo for CARE 2.0.

I have never tried to hash only parts of the reads. At the very least, you would need to hash the first n reads of your total input file without changing their relative order to keep the numbering of reads intact. Additionally you may need to reduce the coverage parameter by the subsampling factor and use this modfied coverage value for both the total file and reduced file.
(Stored hash tables and preprocessed reads may not be compatible between CARE 1.0 and CARE 2.0)