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); } }
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
机械学习之线性回归篇,简单易懂