[PyTorch 2.2.2-1.5.11-SNAPSHOT] Exception java.lang.UnsatisfiedLinkError: no jnitorch in java.library.path on WIndows
haifengl opened this issue · 15 comments
The same code works fine with 2.2.1-1.5.11-SNAPSHOT.
Which platform?
It doesn't work on Windows 10. It works on Ubuntu 22.04 and macOS 13/14. It doesn't work on older macOS though (e.g. macOS 11). It is fine to drop the support of older macOS.
Could you check what the Dependencies tool says is missing?
https://github.com/bytedeco/javacpp-presets/wiki/Debugging-UnsatisfiedLinkError-on-Windows
On macOS 11, it cannot load macosx-x86_64/libjnitorch.dylib
. However, the libjnitorch.dylib file does exist.
Caused by: java.lang.UnsatisfiedLinkError: Can't load library: /Users/xyz/.javacpp/cache/pytorch-2.2.2-1.5.11-20240502.145852-21-macosx-x86_64.jar/org/bytedeco/pytorch/macosx-x86_64/libjnitorch.dylib
BTW, macOS 11 is no longer supported by either Apple or GitHub, so please upgrade to at least macOS 12
It is okay to drop supporting macOS 11. Does PyTorch 2.2.2-1.5.11-SNAPSHOT support macOS on arm64 yet?
I run a test on a windows 10 VM with 2.2.2 and it works, but jnitorch.dll is indeed linked with libomp140.x86_64.dll that is found in my \windows\system32. It probably came with VS or another software.
I guess we should include an OpenMP library in the jar. I'm seeing that the official libtorch archive includes the Intel version.
@saudet, what's the best way to do this ? the Pytorch CMakeList.txt doesn't use InstallRequiredSystemLibraries
That's apparently a file that comes with Visual Studio, so we should add it to this preload list here:
https://github.com/bytedeco/javacpp/blob/master/src/main/java/org/bytedeco/javacpp/presets/javacpp.java#L42
Ok.
Openmp is not used by many presets. Shouldn't we add it to the preload list of presets needing it only ?
No, please don't do that
Ok, would you like a PR for this or can you add it directly ?
Yes, pull requests always welcome :) Thanks
Thanks. It runs on Windows now. However, it doesn't produce good models on Windows though. I will create a new ticket about it.