JCuda offers Java bindings for CUDA and CUDA-related libraries. The bindings for the individual libraries are contained in the following sub-projects:
- JCuda -- The main JCuda library, offering access to the CUDA runtime- and driver API. This library (the JAR file) is required for compiling and using all other libraries.
- JCublas -- Java bindings for CUBLAS
- JCufft -- Java bindings for CUFFT
- JCurand -- Java bindings for CURAND
- JCusparse -- Java bindings for CUSPARSE
- JCusolver -- Java bindings for CUSOLVER
- JNvgraph -- Java bindings for nvGRAPH
- JCudnn -- Java bindings for cuDNN
Each of these projects contains the source code for the native libraries (DLL, SO, or DYLIB) and for the Java libraries (JAR).
JCuda can be used with Maven, Gradle or by downloading the pre-built libraries. Details are explained here: Using JCuda
Information about how to build the JCuda libraries from the source code is given here: Building JCuda