相关疑难解决方法(0)

通过JNI传递C和Java之间的指针

目前,我正在尝试创建一个使用CUDA功能的Java应用程序.CUDA和Java之间的连接工作正常,但我有另一个问题,想问一下,如果我的想法是正确的.

当我从Java调用本机函数时,我将一些数据传递给它,函数计算一些东西并返回结果.是否有可能让第一个函数返回一个引用(指针)到这个结果,我可以传递给JNI并调用另一个用结果进行进一步计算的函数?

我的想法是通过将数据保留在GPU内存中并只是传递对它的引用来减少从GPU复制数据所带来的开销,以便其他函数可以使用它.

经过一段时间的尝试,我想,这应该是不可能的,因为指针在应用程序结束后被删除(在这种情况下,当C函数终止时).它是否正确?或者我只是在C中看到解决方案?

编辑:嗯,稍微扩展问题(或使其更清楚):当函数结束时,JNI本机函数分配的内存是否已释放?或者我可以访问它,直到JNI应用程序结束或我手动释放它?

感谢您的输入 :)

java java-native-interface pointers cuda

68
推荐指数
6
解决办法
5万
查看次数

将C++ double*转换为Java double

我正在努力解决一个基本问题.我试图.dll通过以下签名从Java 调用-function:

int function(double* a, double b);
Run Code Online (Sandbox Code Playgroud)

我的问题是我不知道如何double* a在Java中使用该参数以及如何在函数调用完成后打印操纵值.

c++ java java-native-interface jna

3
推荐指数
1
解决办法
890
查看次数

标签 统计

java ×2

java-native-interface ×2

c++ ×1

cuda ×1

jna ×1

pointers ×1