作者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/m.aspx?n=bbs/java/M.1562318297.A.ACF.html