tzdwindows_7 2024-01-22 17:25 采纳率: 50%
浏览 101
已结题

当我在java中导入PyTorch的torch_cuda.dll时始终提示我找不到依赖库

当我在java中导入torch_cuda.dll时始终提示我找不到依赖库(D:\libtorch\lib\torch_cuda.dll: Can't find dependent libraries)
tainingTacotron1 (JNI)方法底层使用到了最新的libtorch(PyTorch)

img

img

在我使用我自己写的这个链接库时,java始终报错

img

这些依赖的链接库全部都是libtorch(PyTorch)最新的链接库

img

img

img

img

img

  • 写回答

1条回答 默认 最新

  • tzdwindows_7 2024-01-26 15:54
    关注

    使用这样的方法进行加载即可

    
    public class LibraryLoader {
    
        public static void loadLibraries() {
            loadCUDALibraries();
            loadPyTorchLibraries();
            loadOtherLibraries();
        }
    
        private static void loadCUDALibraries() {
            System.load("C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.8\\bin\\cudart64_110.dll");
            System.load("D:\\libtorch\\lib\\cublas64_11.dll");
            System.load("D:\\libtorch\\lib\\cudnn64_8.dll");
        }
    
        private static void loadPyTorchLibraries() {
            System.load("D:\\libtorch\\lib\\torch_global_deps.dll");
    
            System.load("D:\\libtorch\\lib\\c10.dll");
            System.load("D:\\libtorch\\lib\\c10_cuda.dll");
            System.load("D:\\libtorch\\lib\\cusparse64_11.dll");
            System.load("D:\\libtorch\\lib\\cufft64_10.dll");
            System.load("D:\\libtorch\\lib\\cusolver64_11.dll");
            System.load("D:\\libtorch\\lib\\nvToolsExt64_1.dll");
            System.load("D:\\libtorch\\lib\\cudnn64_8.dll");
            System.load("D:\\libtorch\\lib\\cublas64_11.dll");
            System.load("D:\\libtorch\\lib\\asmjit.dll");
            System.load("D:\\libtorch\\lib\\libiomp5md.dll");
            System.load("D:\\libtorch\\lib\\fbgemm.dll");
            System.load("D:\\libtorch\\lib\\libiompstubs5md.dll");
            System.load("D:\\libtorch\\lib\\uv.dll");
            // 加载 torch_cuda.dll 和 torch_cpu.dll 的依赖
    
            System.load("D:\\libtorch\\lib\\torch_cpu.dll");
            System.load("D:\\libtorch\\lib\\torch_cuda.dll"); // 先加载 torch_cuda.dll
            System.load("D:\\libtorch\\lib\\torch.dll");
            System.load("D:\\libtorch\\lib\\c10.dll");
        }
    
        private static void loadOtherLibraries() {
            System.load("D:\\libtorch\\lib\\c10.dll");
            System.load("D:\\libtorch\\lib\\cublasLt64_11.dll");
            System.load("D:\\libtorch\\lib\\nvrtc64_112_0.dll");
    
            System.load("C:\\Users\\Administrator\\source\\repos\\MeloClone\\x64\\Release\\libfftw3-3.dll");
            System.load("C:\\Users\\Administrator\\source\\repos\\MeloClone\\x64\\Release\\libfftw3f-3.dll");
            System.load("C:\\Users\\Administrator\\source\\repos\\MeloClone\\x64\\Release\\libfftw3l-3.dll");
    
         
        }
    
        public static void main(String[] args) {
            loadLibraries();
            LibraryLoads.ListLoadedModules();
            System.out.println("加载成功");
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月3日
  • 已采纳回答 1月26日
  • 创建了问题 1月22日