java - 尝试使用 Cuda 运行 Nd4j 时出错
问题描述
我已经关注了我能找到的每一个教程,但不知何故,我似乎无法让 Nd4j 与 Cuda 后端一起工作。我想我缺少一个库,但我不知道是哪一个或在哪里下载它。
我得到的错误是:
18:23:23.872 [main] WARN org.nd4j.linalg.factory.Nd4jBackend - Skipped [JCublasBackend] backend (unavailable): java.lang.UnsatisfiedLinkError: no cudart in java.library.path
18:23:23.958 [main] INFO org.nd4j.linalg.factory.Nd4jBackend - Loaded [CpuBackend] backend
我正在使用 Nd4j,并且(在一大堆其他人中)我的类路径上有以下 jar:
nd4j-native-1.0.0-beta3.jar
nd4j-native-api-1.0.0-beta3.jar
cuda-10.0-7.3-1.4.3.jar
nd4j-cuda-10.0-1.0.0-beta3.jar.
Cuda 10.0 安装成功:
C:\Users\username>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:04_Central_Daylight_Time_2018
Cuda compilation tools, release 10.0, V10.0.130
我试图将 Java 指向 Cuda bin 目录,如下所示:
-Djava.library.path="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin"
但这没有什么区别。此外,我在 nd4j-cuda-10.0-platform-1.0.0-beta3.jar 和 cuda-platform-10.0-7.3-1.4.3.jar 中的 pom.xml 上尝试了 mvn 命令,结果可以下载很多罐子,但似乎没有一个包含我缺少的 dll。
在四处搜索时,我发现其他用户在谈论像“cuda-10.0-7.3-1.4.3-windows-x86_64.jar”这样应该包含 jnicudart.dll 的 jar,但我在任何地方都找不到这样的 jar。我在这里想念什么?
--UPDATE-- 我已将所有内容更新到 beta5,并找到了一个包含丢失的 jnicudart.dll 的 cuda jar,但我仍然遇到相同的错误。我使用 Dependencies 来检查出了什么问题,结果如下:
它说 NVidia cudart64_100.dll 的校验和不正确。这是否与 NVidia Cuda10 不支持我的 Geforce GT 730 相关,因为它是 Fermi 架构?或者是cuda安装损坏还是什么?
解决方案
- 请将您的 nd4j/dl4j 版本更新为 1.0.0-beta5
- 请告诉我,您的 GPU 型号名称和 nvidia 驱动程序版本是什么?即显示nvidia-smi 输出。
推荐阅读
- json - 在 Angular 11 中进行单元测试时,将 json 对象转换为 typescript 接口导致模拟对象出错
- javascript - 未捕获的类型错误:无法在 app.js:5 处设置 null 的属性“onclick”
- python - Scrapy :- 分页抓取工作正常,但无法从下一页开始抓取内容
- c++ - 如何处理类中的字符串输入..?
- flutter - 我在 josn.decode(resp) 上遇到错误(错误:需要一个“字符串”类型的值,但得到一个“列表”类型的值
' 什么时候 ) - html - 如何在左侧逐行设置所有复选框及其标签?
- python - 将新创建的列添加在一起
- java - 点亮(空).cast(“地图
") 不被接受。如何转换为具有价值对象的地图? - php - 无法将 Angular 中的数据插入到 Laravel API
- javascript - 按钮单击需要在移动设备上双击或长按