Java通过JNI调用CUDA程序

本文介绍了如何使用Java的JNI接口调用CUDA程序,包括编写Java代码声明调用接口,生成调用头文件,编写CUDA程序,编译生成动态链接库,以及在Java中加载并调用CUDA程序的详细步骤。特别提到了使用Nsight进行CUDA程序开发的便利性,以及动态链接库的加载和使用注意事项。
摘要由CSDN通过智能技术生成

在这里不讨论为什么不使用Jcuda,只是说明如何通过JNI(Java Native Interface)调用CUDA程序
(1)编写java程序通过native关键字声明调用接口
(2)生成调用头文件xx.h,使用javah命令生成(如果你够牛逼可以自己手写,但是这样容易出错)
(3)编写CUDA程序(跟编写C/C++差不多)
(4)编译生成动态链接库libxx.so文件(windows下应该是xx.dll文件,我这里讲的都是基于linux下的)
(5)java加载上述动态链接库,然后就可以通过接口调用CUDA程序了
(6)编译运行,OK

说的挺简单了,其实有很多细节要注意的

(1)编写java程序通过native关键字声明调用接口

package com.lzh
public class Hello
{
   
    static 
    {
        try
        {
            System.loadLibrary("sharedLibraryProject");
        }
        catch(UnsatisfiedLinkError e)
        {
            System.err.println("can not load hello library :\n"+
            e.toString());
        }

    }
    public native void SayHello(String strName);
    public native int Add(int a,int b);

}

上面通过native声明了两个接口函数SayHello和Add
SayHello没有返回值,有一个字符串参数
Add返回一个int类型,有两个int参数
上面加载动态链接库的代码可以先

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值