CUDA version 9 and above for Hiccup use

349 views
Skip to first unread message

Yonatan Amzaleg

unread,
May 30, 2021, 9:51:49 PM5/30/21
to 3D Genomics

Hello,

The HPC I am using from my University only offers CUDA version 9 and above. I loaded CUDA version 10 and also downloaded the native libraries for that version and tried running Hiccups but I still get the error that JCudaDriver-0.8.0-linux-x86_64 can't be found. After I load all the necessary tools I use this code to run hiccups:
java -Djava.library.path=~/new/amzaleg/jcuda/JCuda-All-10.1.0 -jar ~/new/amzaleg/bin/juicer_tools.jar hiccups -m 500 -r 5000,10000 -f 0.1,0.1 -p 4,2 -i 7,5 -d 20000,20000 --ignore-sparsity inter_30_GM_rep2.hic GM_rep2_loops

the following is the error I get as it is running:

WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
WARN [2021-05-28T13:27:48,390] [Globals.java:138] [main] Development mode is enabled
Reading file: inter_30_GM_rep2.hic
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 1 CPU thread(s)
Warning Hi-C map is too sparse to find many loops via HiCCUPS.
Running HiCCUPS for resolution 10000
Data not available for Y at 10000 resolution
Exception in thread "pool-2-thread-1" java.lang.UnsatisfiedLinkError: Error while loading native library "JCudaDriver-0.8.0-linux-x86_64"
Operating system name: Linux
Architecture : amd64
Architecture bit size: 64
---(start of nested stack traces)---
Stack trace from the attempt to load the library as a file:
java.lang.UnsatisfiedLinkError: no JCudaDriver-0.8.0-linux-x86_64 in java.library.path: [~/new/amzaleg/jcuda/JCuda-All-10.1.0]
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2660)
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:827)
at java.base/java.lang.System.loadLibrary(System.java:1902)
at jcuda.LibUtils.loadLibrary(LibUtils.java:143)
at jcuda.driver.JCudaDriver.(JCudaDriver.java:280)
at jcuda.utils.KernelLauncher.initialize(KernelLauncher.java:603)
at jcuda.utils.KernelLauncher.(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.(GPUController.java:72)
at juicebox.tools.clt.juicer.HiCCUPS.buildGPUController(HiCCUPS.java:578)
at juicebox.tools.clt.juicer.HiCCUPS.runCoreCodeForHiCCUPS(HiCCUPS.java:505)
at juicebox.tools.clt.juicer.HiCCUPS.access$200(HiCCUPS.java:158)
at juicebox.tools.clt.juicer.HiCCUPS$1.run(HiCCUPS.java:434)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:835)
Stack trace from the attempt to load the library as a resource:
java.lang.UnsatisfiedLinkError: /tmp/libJCudaDriver-0.8.0-linux-x86_64.so: libcuda.so.1: cannot open shared object file: No such file or directory
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617)
at java.base/java.lang.Runtime.load0(Runtime.java:765)
at java.base/java.lang.System.load(System.java:1866)
at jcuda.LibUtils.loadLibraryResource(LibUtils.java:260)
at jcuda.LibUtils.loadLibrary(LibUtils.java:158)
at jcuda.driver.JCudaDriver.(JCudaDriver.java:280)
at jcuda.utils.KernelLauncher.initialize(KernelLauncher.java:603)
at jcuda.utils.KernelLauncher.(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.(GPUController.java:72)
at juicebox.tools.clt.juicer.HiCCUPS.buildGPUController(HiCCUPS.java:578)
at juicebox.tools.clt.juicer.HiCCUPS.runCoreCodeForHiCCUPS(HiCCUPS.java:505)
at juicebox.tools.clt.juicer.HiCCUPS.access$200(HiCCUPS.java:158)
at juicebox.tools.clt.juicer.HiCCUPS$1.run(HiCCUPS.java:434)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:835)
---(end of nested stack traces)---

at jcuda.LibUtils.loadLibrary(LibUtils.java:193) at jcuda.driver.JCudaDriver.<clinit>(JCudaDriver.java:280) at jcuda.utils.KernelLauncher.initialize(KernelLauncher.java:603) 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:72) at juicebox.tools.clt.juicer.HiCCUPS.buildGPUController(HiCCUPS.java:578) at juicebox.tools.clt.juicer.HiCCUPS.runCoreCodeForHiCCUPS(HiCCUPS.java:505) at juicebox.tools.clt.juicer.HiCCUPS.access$200(HiCCUPS.java:158) at juicebox.tools.clt.juicer.HiCCUPS$1.run(HiCCUPS.java:434) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:835)

Exception in thread "pool-3-thread-1" java.lang.NoClassDefFoundError: Could not initialize class jcuda.driver.JCudaDriver
at jcuda.utils.KernelLauncher.initialize(KernelLauncher.java:603)
at jcuda.utils.KernelLauncher.(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.(GPUController.java:72)
at juicebox.tools.clt.juicer.HiCCUPS.buildGPUController(HiCCUPS.java:578)
at juicebox.tools.clt.juicer.HiCCUPS.runCoreCodeForHiCCUPS(HiCCUPS.java:505)
at juicebox.tools.clt.juicer.HiCCUPS.access$200(HiCCUPS.java:158)
at juicebox.tools.clt.juicer.HiCCUPS$1.run(HiCCUPS.java:434)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:835)
Running HiCCUPS for resolution 5000
Data not available for Y at 5000 resolution
Data not available for GL000193.1 at 5000 resolution
Exception in thread "pool-4-thread-1" java.lang.NoClassDefFoundError: Could not initialize class jcuda.driver.JCudaDriver
at jcuda.utils.KernelLauncher.initialize(KernelLauncher.java:603)
at jcuda.utils.KernelLauncher.(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.(GPUController.java:72)
at juicebox.tools.clt.juicer.HiCCUPS.buildGPUController(HiCCUPS.java:578)
at juicebox.tools.clt.juicer.HiCCUPS.runCoreCodeForHiCCUPS(HiCCUPS.java:505)
at juicebox.tools.clt.juicer.HiCCUPS.access$200(HiCCUPS.java:158)
at juicebox.tools.clt.juicer.HiCCUPS$1.run(HiCCUPS.java:434)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:835)
Exception in thread "pool-5-thread-1" java.lang.NoClassDefFoundError: Could not initialize class jcuda.driver.JCudaDriver
at jcuda.utils.KernelLauncher.initialize(KernelLauncher.java:603)
at jcuda.utils.KernelLauncher.(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.(GPUController.java:72)
at juicebox.tools.clt.juicer.HiCCUPS.buildGPUController(HiCCUPS.java:578)
at juicebox.tools.clt.juicer.HiCCUPS.runCoreCodeForHiCCUPS(HiCCUPS.java:505)
at juicebox.tools.clt.juicer.HiCCUPS.access$200(HiCCUPS.java:158)
at juicebox.tools.clt.juicer.HiCCUPS$1.run(HiCCUPS.java:434)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:835)
HiCCUPS complete

I tried downloading library for version 8 and still got the same error. Can anyone give me some advice?

Yonatan

Muhammad Saad Shamim

unread,
May 30, 2021, 11:30:56 PM5/30/21
to Yonatan Amzaleg, 3D Genomics
Hey Yonatan,

Have you tried building the jar with an updated jcuda library corresponding to CUDA 9/10/11? http://jcuda.org/
Alternatively, you may want to use the CPU version of HiCCUPS if the GPU setup is not working.

Best,


--
You received this message because you are subscribed to the Google Groups "3D Genomics" group.
To unsubscribe from this group and stop receiving emails from it, send an email to 3d-genomics...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/3d-genomics/c51ad307-672e-4a02-b9e2-246f76be0c4cn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages