Open zaobao opened 1 month ago
Why you use onnxruntime_gpu
dependency in a machine without GPU?
have same question use onnxruntime-1.18.0 Container: Docker with NO GPU OS: openEuler djl version: 0.29.0 onnxruntime_gpu version: 1.18.0
#
# SIGSEGV (0xb) at pc=0x00007fb6285e1e3b, pid=885, tid=917
#
# JRE version: Java(TM) SE Runtime Environment (17.0.12+8) (build 17.0.12+8-LTS-286)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (17.0.12+8-LTS-286, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# C [libstdc++.so.6+0xd3e3b]
Time: Fri Aug 30 03:13:24 2024 UTC elapsed time: 28.554432 seconds (0d 0h 0m 28s)
--------------- T H R E A D ---------------
Current thread (0x00007fb590081400): JavaThread "XNIO-1 task-2" [_thread_in_native, id=917, stack(0x00007fb63823a000,0x00007fb63833a000)]
Stack: [0x00007fb63823a000,0x00007fb63833a000], sp=0x00007fb6383332d8, free space=996k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libstdc++.so.6+0xd3e3b]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j jdk.internal.loader.NativeLibraries.load(Ljdk/internal/loader/NativeLibraries$NativeLibraryImpl;Ljava/lang/String;ZZZ)Z+0 java.base@17.0.12
j jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open()Z+61 java.base@17.0.12
j jdk.internal.loader.NativeLibraries.loadLibrary(Ljava/lang/Class;Ljava/lang/String;Z)Ljdk/internal/loader/NativeLibrary;+256 java.base@17.0.12
j jdk.internal.loader.NativeLibraries.loadLibrary(Ljava/lang/Class;Ljava/io/File;)Ljdk/internal/loader/NativeLibrary;+51 java.base@17.0.12
j java.lang.ClassLoader.loadLibrary(Ljava/lang/Class;Ljava/io/File;)Ljdk/internal/loader/NativeLibrary;+31 java.base@17.0.12
j java.lang.Runtime.load0(Ljava/lang/Class;Ljava/lang/String;)V+61 java.base@17.0.12
j java.lang.System.load(Ljava/lang/String;)V+7 java.base@17.0.12
j ai.djl.pytorch.jni.LibUtils.loadNativeLibrary(Ljava/lang/String;)V+39
j ai.djl.pytorch.jni.LibUtils.loadLibTorch(Lai/djl/pytorch/jni/LibUtils$LibTorch;)V+548
j ai.djl.pytorch.jni.LibUtils.loadLibrary()V+28
j ai.djl.pytorch.engine.PtEngine.newInstance()Lai/djl/engine/Engine;+0
j ai.djl.pytorch.engine.PtEngineProvider.getEngine()Lai/djl/engine/Engine;+17
j ai.djl.engine.Engine.getEngine(Ljava/lang/String;)Lai/djl/engine/Engine;+45
j ai.djl.engine.Engine.getInstance()Lai/djl/engine/Engine;+43
j ai.djl.onnxruntime.engine.OrtEngine.getAlternativeEngine()Lai/djl/engine/Engine;+15
j ai.djl.ndarray.BaseNDManager.<init>(Lai/djl/ndarray/NDManager;Lai/djl/Device;)V+85
j ai.djl.onnxruntime.engine.OrtNDManager.<init>(Lai/djl/ndarray/NDManager;Lai/djl/Device;Lai/onnxruntime/OrtEnvironment;)V+3
j ai.djl.onnxruntime.engine.OrtNDManager.<init>(Lai/djl/ndarray/NDManager;Lai/djl/Device;Lai/onnxruntime/OrtEnvironment;Lai/djl/onnxruntime/engine/OrtNDManager$1;)V+4
j ai.djl.onnxruntime.engine.OrtNDManager$SystemManager.<init>()V+15
j ai.djl.onnxruntime.engine.OrtNDManager.<clinit>()V+4
v ~StubRoutines::call_stub
j ai.djl.onnxruntime.engine.OrtEngine.newBaseManager(Lai/djl/Device;)Lai/djl/ndarray/NDManager;+0
j ai.djl.onnxruntime.engine.OrtEngine.newModel(Ljava/lang/String;Lai/djl/Device;)Lai/djl/Model;+7
j ai.djl.Model.newInstance(Ljava/lang/String;Lai/djl/Device;Ljava/lang/String;)Lai/djl/Model;+23
j ai.djl.repository.zoo.BaseModelLoader.createModel(Ljava/nio/file/Path;Ljava/lang/String;Lai/djl/Device;Lai/djl/nn/Block;Ljava/util/Map;Ljava/lang/String;)Lai/djl/Model;+4
j ai.djl.repository.zoo.BaseModelLoader.loadModel(Lai/djl/repository/zoo/Criteria;)Lai/djl/repository/zoo/ZooModel;+506
j ai.djl.repository.zoo.Criteria.loadModel()Lai/djl/repository/zoo/ZooModel;+524
j ai.djl.repository.zoo.ModelZoo.loadModel(Lai/djl/repository/zoo/Criteria;)Lai/djl/repository/zoo/ZooModel;+1
j org.aoju.bus.ocr.toolkit.OcrV4Kit.runOcr(Ljava/io/InputStream;)Lorg/aoju/bus/ocr/entity/OcrResult;+50
j cn.econta.tangor.service.OcrService.sync([B)Lorg/aoju/bus/ocr/entity/OcrResult;+10
j cn.econta.tangor.spring.OcrController.jsonPpWorld(Ljava/lang/String;)Ljava/lang/Object;+15
v ~StubRoutines::call_stub
Onnx has cpu and _gpu two jar file. I don't think you can mismatch.
only use onnx cpu with pytorch cause java crash
Environment Info
Container: Docker with NO GPU OS: AlmaLinux CUDA installed: 12.2 Cudnn installed: 8.9.0 djl version: 0.29.0 onnxruntime_gpu version: 1.8.0
Error Message
What have you tried to solve it?
I made a change to ai.djl.engine.Engine.java, and the problem no longer reproduces