I am running on CentOS 7 with an older Tesla M2090 GPU. I am using juicer 1.5.7 downloaded from master git source on May 20, 2019.
I was originally using CUDA 7.5 with juicer_tools.1.6.2_jcuda.0.7.5.jar and things worked fine when I ran the following test command:
$ java -Djava.library.path=/home/programs/apps/JCuda-All-0.7.5-bin-Linux-x86_64 -jar /home/programs/apps/juicer_tools.1.6.2_jcuda.0.7.5.jar hiccups -m 1024 -r 5000,10000 -c 22 https://hicfiles.s3.amazonaws.com/hiseq/gm12878/in-situ/combined_30.hic hiccups_results
After successfully running with real inhouse datasets through the juicer pipeline, I started having problems with hiccups crashing on a few larger data sets.
Rather than troubleshoot with a version that I knew to be older, I decided to upgrade to CUDA 8.0 and use the newer juicer_tools.jar versions to see if that solved the problem.
Using versions up to juicer_tools.1.9.9_jcuda.0.8.jar, I got past the errors I previously saw and hiccups completed.
However, now whenever I run the test command with versions of juicer_tools above juicer_tools.1.9.9_jcuda.0.8.jar, I get the following error:
$ java -Djava.library.path=/home/programs/apps/JCuda-All-0.8.0-bin-Linux-x86_64 -jar /home/programs/apps/juicer_tools_1.12.03.jar hiccups -m 1024 -r 5000,10000 -c 22 https://hicfiles.s3.amazonaws.com/hiseq/gm12878/in-situ/combined_30.hic hiccups_results
WARN [2019-08-21T12:21:20,572] [Globals.java:138] [main] Development mode is enabled
Reading file: https://hicfiles.s3.amazonaws.com/hiseq/gm12878/in-situ/combined_30.hic
INFO [2019-08-21T12:21:22,140] [DirectoryManager.java:179] [main] IGV Directory: /home/sstelman/igv
INFO [2019-08-21T12:21:22,550] [HttpUtils.java:937] [main] Range-byte request succeeded
Using the following configurations for HiCCUPS:
Config res: 10000 peak: 2 window: 5 fdr: 10% radius: 20000
Config res: 5000 peak: 4 window: 7 fdr: 10% radius: 20000
Using 32 CPU threads
Running HiCCUPS for resolution 10000
4%
9%
14%
19%
23%
28%
33%
38%
42%
47%
52%
57%
61%
66%
71%
76%
80%
85%
90%
95%
100%
jcuda.CudaException: Failed to create a context: CUDA_ERROR_OUT_OF_MEMORY
at jcuda.utils.KernelLauncher.createContext(KernelLauncher.java:650)
at jcuda.utils.KernelLauncher.initialize(KernelLauncher.java:626)
at jcuda.utils.KernelLauncher.<init>(KernelLauncher.java:586)
at jcuda.utils.KernelLauncher.create(KernelLauncher.java:393)
at jcuda.utils.KernelLauncher.create(KernelLauncher.java:321)
at jcuda.utils.KernelLauncher.compile(KernelLauncher.java:270)
at juicebox.tools.utils.juicer.hiccups.GPUController.<init>(GPUController.java:70)
at juicebox.tools.clt.juicer.HiCCUPS.buildGPUController(HiCCUPS.java:625)
at juicebox.tools.clt.juicer.HiCCUPS.access$000(HiCCUPS.java:151)
at juicebox.tools.clt.juicer.HiCCUPS$1.run(HiCCUPS.java:501)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
I do notice when monitoring with "nvidia-smi -l 1" that "GPU Memory Usage" is much higher with the newer versions of juicer_tools, which may be part of the root of the issue.
Any guideance or help in troubleshooting would be appreciated.