JavaGPU编程-第一节-安装配置Jcuda
关于Jcuda
关于Cuda,大家都并不陌生,使用Cuda可以在N卡上运行程序, 但Cuda和Java的混合使用一直都是个麻烦事,毕竟两者本来都不该有交集,但GPU的高并发能力强大无比,上基本都是Java通过JNI调用CUDA程序,但麻烦无比,所以为何不直接使用Jcuda来简化开发流程呢?
这几天在用Jcuda,看也没多少关于Jcuda的文章,属实遗憾,所以想填补一下这方面的空白
JCuda目前提供以下功能:
-
支持 CUDA 驱动程序 API 可以在驱动程序 API 中加载自己的模块 支持 CUDA 运行时 API 不同基于 CUDA 的库之间的完全互操作性,即 JCublas - CUBLAS的Java绑定,NVIDIA CUDA BLAS 库 JCufft - CUBLAS的Java绑定,NVIDIA CUDA FFT 库 JCudpp - CUDA Data Parallel Primitives Library 的 Java 绑定 JCurand - 用于 CURAND 的 Java 绑定,NVIDIA CUDA 随机数生成器 JCusparse - CUSPARSE 的 Java 绑定,NVIDIA CUDA 稀疏矩阵库 JCusolver - CUSOLVER 的 Java 绑定,NVIDIA CUDA 求解器库 JNvgraph - 用于nvGRAPH的Java绑定,NVIDIA CUDA图形库 从本机库的文档中提取全面的 API 文档 OpenGL 互操作性 方便的错误处理
当然使用Jcuda需要先安装Cuda,我建议可以看这篇来安装
如何将Jcuda在自己程序中使用?
对于Maven项目,可以直接在pom.xml中将jcuda添加进来
<dependency>
<groupId>org.jcuda</groupId>
<artifactId>jcuda</artifactId>
<version>11.6.1</version>
</dependency>
<dependency>
<groupId>org.jcuda</groupId>
<artifactId>jcublas</artifactId>
<version>11.6.1</version>
</dependency>
<dependency>
<groupId>org.jcuda</groupId>
<artifactId>jcufft</artifactId>
<version>11.6.1</version>
</dependency>
<dependency>
<groupId>org.jcuda</groupId>
<artifactId>jcusparse</artifactId>
<version>11.6.1</version>
</dependency>
<dependency>
<groupId>org.jcuda</groupId>
<artifactId>jcusolver</artifactId>
<version>11.6.1</version>
</dependency>
<dependency>
<groupId>org.jcuda</groupId>
<artifactId>jcurand</artifactId>
<version>11.6.1</version>
</dependency>
<dependency>
<groupId>org.jcuda</groupId>
<artifactId>jcudnn</artifactId>
<version>11.6.1</version>
</dependency>
非Maven项目的话,可以再官网自己下载JCuda文件
注意:JCuda的版本需要和Cuda版本匹配,否则会出问题!!!
查看是否成功
我使用的是Maven项目
import jcuda.Pointer;
import jcuda.runtime.JCuda;
public class Test {
public static void main(String args[])
{
Pointer pointer = new Pointer();
JCuda.cudaMalloc(pointer, 4);
System.out.println("Pointer: "+pointer);
JCuda.cudaFree(pointer);
}
}
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
机械学习之线性回归篇,简单易懂
