作者ghkckhg (名字背过又忘记)
看板java
标题[问题] JCuda
时间Fri Jul 5 17:18:11 2019
最近想用GPU来提升既有专案的速度,
所以参考了JCuda网站(
http://www.jcuda.org/)的说明练习。
Tutorial章节底下有两个Sample,应该都有顺利执行:
[JCudaRuntimeTest]
印出 Pointer: Pointer[nativePointer=0x508800000,byteOffset=0]
[JCudaVectorAdd]
结果显示 Test PASSED
接着尝试跑其他的library,
在执行Sample底下的 JCublasSample.java 时报错:
Creating input data...
Performing Sgemm with Java...
Performing Sgemm with JCublas...
Exception in thread "main" java.lang.UnsatisfiedLinkError: Error while
loading native library "JCublas-0.9.2-windows-x86_64"
Operating system name: Windows 10
Architecture : amd64
Architecture bit size: 64
---(start of nested stack traces)---
Stack trace from the attempt to load the library as a file:
java.lang.UnsatisfiedLinkError:
C:\Users\calvin\eclipse-workspace\CUDA\dll\JCublas-0.9.2-windows-x86_64.dll:
Can't find dependent libraries
...
Stack trace from the attempt to load the library as a resource:
java.lang.UnsatisfiedLinkError:
C:\Users\calvin\AppData\Local\Temp\JCublas-0.9.2-windows-x86_64.dll: Can't
find dependent libraries
...
---(end of nested stack traces)---
看起来是 JCublas-0.9.2-windows-x86_64.dll 找不到要参考的dll,
所以我用dependency walker开来看,
JCublas-0.9.2-windows-x86_64.dll 第一层使用到的dll有三个:
cublas64_92.dll
ADVAPI32.dll
KERNEL32.dll
https://imgur.com/FNzLBqw
cublas64_92.dll看起来是好的,
反倒是system32底下那两个缺了一大堆,
想请问是不是少装了什麽东西?
在这次的测试中我装了:
1. JCuda and JCudnn, version 0.9.2 (from jcuda.org)
2. CUDA Toolkit Archive 10.1/9.2/9.1 三个版本
3. visual studio community 2017/2019
P.S.
这台电脑之前用来挖矿,所以显卡应该是能正常运作的(1080ti*2),
JDK版本是1.8.0_212。
//
顺带想问一下大方向,
网路上讨论Cuda似乎是C++多很多,
想请问在不重写java专案的前提下:
1. 继续坚持使用JCuda,想办法克服上述问题。
2. 换成VS/Cuda来处理GPU的部分,再想办法用java call C++。
两者哪个比较建议呢?
问题有点冗长不好意思,谢谢大家~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.161.10.161 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1562318297.A.ACF.html