Closed s-bernard closed 1 year ago
When running multi-engine demo: Exception in thread "main" ai.djl.engine.EngineException: Failed to load PyTorch native library
Exception in thread "main" ai.djl.engine.EngineException: Failed to load PyTorch native library
It is on an old MacBook Pro 15" mid 2014, MacOS Big Sur 11.7.4 Note: it should have this processor (https://www.intel.com/content/www/us/en/products/sku/83504/intel-core-i74870hq-processor-6m-cache-up-to-3-70-ghz/specifications.html) which support AVX2
No exception
> Task :run [DEBUG] 2023-06-02 15:48:51.254 [main] ModelZoo - Loading model with Criteria: Application: CV.OBJECT_DETECTION Input: interface ai.djl.modality.cv.Image Output: class ai.djl.modality.cv.output.DetectedObjects Engine: PyTorch Filter: {"size":"300","backbone":"resnet50","dataset":"coco"} No translator supplied [DEBUG] 2023-06-02 15:48:51.274 [main] ModelZoo - Ignore ModelZoo ai.djl.mxnet by engine: PyTorch [DEBUG] 2023-06-02 15:48:51.277 [main] Engine - Registering EngineProvider: MXNet [DEBUG] 2023-06-02 15:48:51.278 [main] Engine - Registering EngineProvider: PyTorch [DEBUG] 2023-06-02 15:48:51.279 [main] Engine - Found default engine: MXNet [DEBUG] 2023-06-02 15:48:55.907 [main] ModelZoo - Checking ModelLoader: ai.djl.pytorch:resnet CV.IMAGE_CLASSIFICATION [ ai.djl.pytorch/resnet/0.0.1/traced_resnet50 {"layers":"50","dataset":"imagenet"} ai.djl.pytorch/resnet/0.0.1/traced_resnet18 {"layers":"18","dataset":"imagenet"} ai.djl.pytorch/resnet/0.0.1/resnet101_v1 {"layers":"101","dataset":"imagenet"} ] [DEBUG] 2023-06-02 15:48:55.908 [main] ModelZoo - application mismatch for ModelLoader: ai.djl.pytorch:resnet [DEBUG] 2023-06-02 15:48:55.915 [main] ModelZoo - Checking ModelLoader: ai.djl.pytorch:resnet18_embedding CV.IMAGE_CLASSIFICATION [ ai.djl.pytorch/resnet18_embedding/0.0.1/resnet18_embedding {} ] [DEBUG] 2023-06-02 15:48:55.915 [main] ModelZoo - application mismatch for ModelLoader: ai.djl.pytorch:resnet18_embedding [DEBUG] 2023-06-02 15:48:56.411 [main] ModelZoo - Checking ModelLoader: ai.djl.pytorch:ssd CV.OBJECT_DETECTION [ ai.djl.pytorch/ssd/0.0.1/ssd_300_resnet50 {"size":"300","backbone":"resnet50","dataset":"coco"} ] [DEBUG] 2023-06-02 15:48:56.418 [main] MRL - Preparing artifact: PyTorch, ai.djl.pytorch/ssd/0.0.1/ssd_300_resnet50 {"size":"300","backbone":"resnet50","dataset":"coco"} [DEBUG] 2023-06-02 15:48:56.420 [main] AbstractRepository - Items to download: 2 [DEBUG] 2023-06-02 15:48:56.420 [main] AbstractRepository - Downloading artifact: https://mlrepo.djl.ai/model/cv/object_detection/ai/djl/pytorch/classes_coco.txt ... Downloading: 0% |█ |[DEBUG] 2023-06-02 15:48:57.024 [main] AbstractRepository - Downloading artifact: https://mlrepo.djl.ai/model/cv/object_detection/ai/djl/pytorch/ssd/0.0.1/ssd_300_resnet50.pt.gz ...run Downloading: 100% |████████████████████████████████████████| Loading: 100% |████████████████████████████████████████| [DEBUG] 2023-06-02 15:49:21.103 [main] CudaUtils - cudart library not found. [DEBUG] 2023-06-02 15:49:21.104 [main] LibUtils - Using cache dir: /Users/samuel/.djl.ai/pytorch/1.13.1-cpu-osx-x86_64 [DEBUG] 2023-06-02 15:49:21.109 [main] LibUtils - Loading native library: /Users/samuel/.djl.ai/pytorch/1.13.1-cpu-osx-x86_64/libiomp5.dylib [DEBUG] 2023-06-02 15:49:21.116 [main] LibUtils - Loading native library: /Users/samuel/.djl.ai/pytorch/1.13.1-cpu-osx-x86_64/libc10.dylib [DEBUG] 2023-06-02 15:49:21.120 [main] LibUtils - Loading native library: /Users/samuel/.djl.ai/pytorch/1.13.1-cpu-osx-x86_64/libtorch_cpu.dylib [DEBUG] 2023-06-02 15:49:22.013 [main] LibUtils - Loading native library: /Users/samuel/.djl.ai/pytorch/1.13.1-cpu-osx-x86_64/libtorch.dylib [INFO ] 2023-06-02 15:49:22.016 [main] LibUtils - Downloading jni https://publish.djl.ai/pytorch/1.13.1/jnilib/0.22.1/osx-x86_64/cpu/libdjl_torch.dylib to cache ... [DEBUG] 2023-06-02 15:49:23.200 [main] LibUtils - Loading native library: /Users/samuel/.djl.ai/pytorch/1.13.1-cpu-osx-x86_64/0.22.1-libdjl_torch.dylib Exception in thread "main" ai.djl.engine.EngineException: Failed to load PyTorch native library at ai.djl.pytorch.engine.PtEngine.newInstance(PtEngine.java:90) at ai.djl.pytorch.engine.PtEngineProvider.getEngine(PtEngineProvider.java:40) at ai.djl.engine.Engine.getEngine(Engine.java:187) at ai.djl.Model.newInstance(Model.java:99) at ai.djl.repository.zoo.BaseModelLoader.createModel(BaseModelLoader.java:191) at ai.djl.repository.zoo.BaseModelLoader.loadModel(BaseModelLoader.java:154) at ai.djl.repository.zoo.Criteria.loadModel(Criteria.java:172) at com.examples.MultiEngine.detectPersonWithPyTorchModel(MultiEngine.java:85) at com.examples.MultiEngine.main(MultiEngine.java:51) Caused by: java.lang.UnsatisfiedLinkError: Can't load library: /Users/samuel/.djl.ai/pytorch/1.13.1-cpu-osx-x86_64/0.22.1-libdjl_torch.dylib at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2393) at java.base/java.lang.Runtime.load0(Runtime.java:755) at java.base/java.lang.System.load(System.java:1953) at ai.djl.pytorch.jni.LibUtils.loadNativeLibrary(LibUtils.java:347) at ai.djl.pytorch.jni.LibUtils.loadLibrary(LibUtils.java:81) at ai.djl.pytorch.engine.PtEngine.newInstance(PtEngine.java:53) ... 8 more > Task :run FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':run'. > Process 'command '/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 1m 36s 3 actionable tasks: 3 executed
Run multi-engine demo.
git clone https://github.com/deepjavalibrary/djl-demo.git
cd djl-demo/development/multi-engine/
./gradlew run
> Task :engines:pytorch:pytorch-jni:processResources Downloading https://publish.djl.ai/pytorch/1.13.1/jnilib/0.23.0/linux-x86_64/cpu/libdjl_torch.so Downloading https://publish.djl.ai/pytorch/1.13.1/jnilib/0.23.0/linux-x86_64/cpu-precxx11/libdjl_torch.so Downloading https://publish.djl.ai/pytorch/1.13.1/jnilib/0.23.0/osx-x86_64/cpu/libdjl_torch.dylib Downloading https://publish.djl.ai/pytorch/1.13.1/jnilib/0.23.0/win-x86_64/cpu/djl_torch.dll Downloading https://publish.djl.ai/pytorch/1.13.1/jnilib/0.23.0/linux-aarch64/cpu-precxx11/libdjl_torch.so Downloading https://publish.djl.ai/pytorch/1.13.1/jnilib/0.23.0/linux-x86_64/cu117/libdjl_torch.so Downloading https://publish.djl.ai/pytorch/1.13.1/jnilib/0.23.0/linux-x86_64/cu117-precxx11/libdjl_torch.so Downloading https://publish.djl.ai/pytorch/1.13.1/jnilib/0.23.0/win-x86_64/cu117/djl_torch.dll Downloading https://publish.djl.ai/pytorch/1.13.1/jnilib/0.23.0/osx-aarch64/cpu/libdjl_torch.dylib > Task :integration:debugEnv [DEBUG] - Registering EngineProvider: XGBoost [DEBUG] - Registering EngineProvider: LightGBM [DEBUG] - Registering EngineProvider: OnnxRuntime [DEBUG] - Registering EngineProvider: MXNet [DEBUG] - Registering EngineProvider: PyTorch [DEBUG] - Registering EngineProvider: TensorFlow [DEBUG] - Found default engine: MXNet ----------- System Properties ----------- java.specification.version: 17 sun.jnu.encoding: UTF-8 java.class.path: /Users/samuel/Desktop/idtree-v2/djl/integration/build/classes/java/main:/Users/samuel/Desktop/idtree-v2/djl/integration/build/resources/main:/Users/samuel/.gradle/caches/modules-2/files-2.1/commons-cli/commons-cli/1.5.0/dc98be5d5390230684a092589d70ea76a147925c/commons-cli-1.5.0.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j-impl/2.20.0/7ab4f082fd162f60afcaf2b8744a3d959feab3e8/log4j-slf4j-impl-2.20.0.jar:/Users/samuel/Desktop/idtree-v2/djl/basicdataset/build/libs/basicdataset-0.23.0-SNAPSHOT.jar:/Users/samuel/Desktop/idtree-v2/djl/model-zoo/build/libs/model-zoo-0.23.0-SNAPSHOT.jar:/Users/samuel/Desktop/idtree-v2/djl/testing/build/libs/testing-0.23.0-SNAPSHOT.jar:/Users/samuel/Desktop/idtree-v2/djl/engines/mxnet/mxnet-model-zoo/build/libs/mxnet-model-zoo-0.23.0-SNAPSHOT.jar:/Users/samuel/Desktop/idtree-v2/djl/engines/pytorch/pytorch-model-zoo/build/libs/pytorch-model-zoo-0.23.0-SNAPSHOT.jar:/Users/samuel/Desktop/idtree-v2/djl/engines/pytorch/pytorch-jni/build/libs/pytorch-jni-1.13.1-0.23.0-SNAPSHOT.jar:/Users/samuel/Desktop/idtree-v2/djl/engines/tensorflow/tensorflow-model-zoo/build/libs/tensorflow-model-zoo-0.23.0-SNAPSHOT.jar:/Users/samuel/Desktop/idtree-v2/djl/engines/ml/xgboost/build/libs/xgboost-0.23.0-SNAPSHOT.jar:/Users/samuel/Desktop/idtree-v2/djl/engines/ml/lightgbm/build/libs/lightgbm-0.23.0-SNAPSHOT.jar:/Users/samuel/Desktop/idtree-v2/djl/engines/onnxruntime/onnxruntime-engine/build/libs/onnxruntime-engine-0.23.0-SNAPSHOT.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.20.0/eb2a9a47b1396e00b5eee1264296729a70565cc0/log4j-core-2.20.0.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.20.0/1fe6082e660daf07c689a89c94dc0f49c26b44bb/log4j-api-2.20.0.jar:/Users/samuel/Desktop/idtree-v2/djl/engines/mxnet/mxnet-engine/build/libs/mxnet-engine-0.23.0-SNAPSHOT.jar:/Users/samuel/Desktop/idtree-v2/djl/engines/pytorch/pytorch-engine/build/libs/pytorch-engine-0.23.0-SNAPSHOT.jar:/Users/samuel/Desktop/idtree-v2/djl/engines/tensorflow/tensorflow-engine/build/libs/tensorflow-engine-0.23.0-SNAPSHOT.jar:/Users/samuel/Desktop/idtree-v2/djl/api/build/libs/api-0.23.0-SNAPSHOT.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/org.testng/testng/7.7.1/8e96c60d4967a8df6dc06c3c7cf22392e3a51794/testng-7.7.1.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.36/6c62681a2f655b49963a5983b8b0950a6120ae14/slf4j-api-1.7.36.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-csv/1.10.0/8669bee353424c3223c93723291b5c3753260c1c/commons-csv-1.10.0.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/ml.dmlc/xgboost4j_2.12/1.7.5/5f074b329677d4e23222668597eb82de4b845a4b/xgboost4j_2.12-1.7.5.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.2/4bfc12adfe4842bf07b657f0369c4cb522955686/commons-logging-1.2.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/com.microsoft.ml.lightgbm/lightgbmlib/3.2.110/f6c85e5d7cc44d49c4544240ea5c96004680007b/lightgbmlib-3.2.110.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/com.microsoft.onnxruntime/onnxruntime/1.14.0/fb150fd72c1d2fbeea7bd53affd7c266930e3f98/onnxruntime-1.14.0.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.10.1/b3add478d4382b78ea20b1671390a858002feb6c/gson-2.10.1.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/5.13.0/1200e7ebeedbe0d10062093f32925a912020e747/jna-5.13.0.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.22/691a8b4e6cf4248c3bc72c8b719337d5cb7359fa/commons-compress-1.22.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/com.beust/jcommander/1.82/a7c5fef184d238065de38f81bbc6ee50cca2e21/jcommander-1.82.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/org.webjars/jquery/3.6.1/d08df6250157cd2db3d9b01b11b76e9b7225083a/jquery-3.6.1.jar:/Users/samuel/Desktop/idtree-v2/djl/engines/tensorflow/tensorflow-api/build/libs/tensorflow-api-0.23.0-SNAPSHOT.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/org.tensorflow/tensorflow-core-api/0.5.0/6dfb7f13a9d96e6c4bd0705f122bd00d3b596b0d/tensorflow-core-api-0.5.0.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/org.bytedeco/javacpp/1.5.8/a28ca7c27abaae8054060b963fbd667b4be72677/javacpp-1.5.8.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protobuf-java/3.22.2/fdee98b8f6abab73f146a4edb4c09e56f8278d03/protobuf-java-3.22.2.jar:/Users/samuel/.gradle/caches/modules-2/files-2.1/org.tensorflow/ndarray/0.4.0/7ab74f002dbec93944b7feb38de013afe8d4e8de/ndarray-0.4.0.jar java.vm.vendor: Oracle Corporation sun.arch.data.model: 64 user.variant: java.vendor.url: https://java.oracle.com/ user.timezone: Europe/Paris java.vm.specification.version: 17 os.name: Mac OS X sun.java.launcher: SUN_STANDARD user.country: FR sun.boot.library.path: /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/lib:/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/lib sun.java.command: ai.djl.integration.util.DebugEnvironment http.nonProxyHosts: local|*.local|169.254/16|*.169.254/16 jdk.debug: release sun.cpu.endian: little user.home: /Users/samuel org.gradle.appname: gradlew user.language: fr java.specification.vendor: Oracle Corporation java.version.date: 2023-04-18 java.home: /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home ai.djl.logging.level: debug org.gradle.internal.http.connectionTimeout: 60000 file.separator: / java.vm.compressedOopsMode: Zero based line.separator: java.vm.specification.vendor: Oracle Corporation java.specification.name: Java Platform API Specification sun.management.compiler: HotSpot 64-Bit Tiered Compilers ftp.nonProxyHosts: local|*.local|169.254/16|*.169.254/16 java.runtime.version: 17.0.7+8-LTS-224 user.name: samuel path.separator: : os.version: 11.7.4 java.runtime.name: Java(TM) SE Runtime Environment file.encoding: UTF-8 java.vm.name: Java HotSpot(TM) 64-Bit Server VM java.vendor.url.bug: https://bugreport.java.com/bugreport/ java.io.tmpdir: /var/folders/xs/p3pf4lvx1zvdx3hf1t6j1q8c0000gq/T/ org.gradle.internal.http.socketTimeout: 120000 java.version: 17.0.7 user.dir: /Users/samuel/Desktop/idtree-v2/djl/integration os.arch: x86_64 java.vm.specification.name: Java Virtual Machine Specification native.encoding: UTF-8 java.library.path: /Users/samuel/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:. java.vm.info: mixed mode, sharing java.vendor: Oracle Corporation java.vm.version: 17.0.7+8-LTS-224 sun.io.unicode.encoding: UnicodeBig library.jansi.path: /Users/samuel/.gradle/native/jansi/1.18/osx java.class.version: 61.0 socksNonProxyHosts: local|*.local|169.254/16|*.169.254/16 org.gradle.internal.publish.checksums.insecure: true --------- Environment Variables --------- APP_NAME_18674: Gradle PATH: /Library/Frameworks/Python.framework/Versions/3.11/bin:/opt/anaconda3/bin:/opt/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Postgres.app/Contents/Versions/latest/bin MallocNanoZone: 0 CONDA_DEFAULT_ENV: base CONDA_EXE: /opt/anaconda3/bin/conda CONDA_PYTHON_EXE: /opt/anaconda3/bin/python TERM: xterm-256color LANG: en_US.UTF-8 APP_ICON_18674: /Users/samuel/Desktop/idtree-v2/djl/media/gradle.icns VSCODE_GIT_IPC_HANDLE: /var/folders/xs/p3pf4lvx1zvdx3hf1t6j1q8c0000gq/T/vscode-git-68100b8a3e.sock COMMAND_MODE: unix2003 VSCODE_GIT_ASKPASS_MAIN: /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js CONDA_PREFIX: /opt/anaconda3 DISPLAY: /private/tmp/com.apple.launchd.aRMdJSKwxl/org.macosforge.xquartz:0 _CE_M: COLORTERM: truecolor VSCODE_GIT_ASKPASS_EXTRA_ARGS: --ms-enable-electron-run-as-node LOGNAME: samuel VSCODE_GIT_ASKPASS_NODE: /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) XPC_SERVICE_NAME: 0 PWD: /Users/samuel/Desktop/idtree-v2/djl TERM_PROGRAM_VERSION: 1.76.0 GIT_ASKPASS: /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh CONDA_SHLVL: 1 __CFBundleIdentifier: com.microsoft.VSCode STORMPATH_APPLICATION_HREF: https://api.stormpath.com/v1/accounts/3JQ38lkdB4iAcP1cDu9OhZ JAVA_MAIN_CLASS_18707: ai.djl.integration.util.DebugEnvironment SHELL: /bin/bash TERM_PROGRAM: vscode OLDPWD: /Users/samuel/Desktop/idtree-v2/djl USER: samuel TMPDIR: /var/folders/xs/p3pf4lvx1zvdx3hf1t6j1q8c0000gq/T/ ORIGINAL_XDG_CURRENT_DESKTOP: undefined SSH_AUTH_SOCK: /private/tmp/com.apple.launchd.dkKit0UUCK/Listeners _CE_CONDA: XPC_FLAGS: 0x0 JAVA_MAIN_CLASS_18674: org.gradle.wrapper.GradleWrapperMain __CF_USER_TEXT_ENCODING: 0x1F7:0x0:0x1 CONDA_PROMPT_MODIFIER: (base) SHLVL: 1 HOME: /Users/samuel -------------- Directories -------------- temp directory: /var/folders/xs/p3pf4lvx1zvdx3hf1t6j1q8c0000gq/T DJL cache directory: /Users/samuel/.djl.ai Engine cache directory: /Users/samuel/.djl.ai ------------------ CUDA ----------------- [DEBUG] - cudart library not found. GPU Count: 0 ----------------- Engines --------------- DJL version: 0.23.0-SNAPSHOT [DEBUG] - Using cache dir: /Users/samuel/.djl.ai/mxnet/1.9.1-mkl-osx-x86_64 [DEBUG] - Loading mxnet library from: /Users/samuel/.djl.ai/mxnet/1.9.1-mkl-osx-x86_64/libmxnet.dylib [DEBUG] - Using cache dir: /Users/samuel/.djl.ai/mxnet/1.9.1-mkl-osx-x86_64 Default Engine: MXNet:1.9.0, capabilities: [ BLAS_APPLE, CPU_SSE, SIGNAL_HANDLER, LAPACK, CPU_SSE2, CPU_SSE3, CPU_SSE4_1, OPENCV, MKLDNN, ] MXNet Library: /Users/samuel/.djl.ai/mxnet/1.9.1-mkl-osx-x86_64/libmxnet.dylib Default Device: cpu() PyTorch: 2 MXNet: 0 XGBoost: 10 LightGBM: 10 OnnxRuntime: 10 TensorFlow: 3 --------------- Hardware -------------- Available processors (cores): 8 Byte Order: LITTLE_ENDIAN Free memory (bytes): 252016408 Maximum memory (bytes): 4294967296 Total memory available to JVM (bytes): 272629760 Heap committed: 272629760 Heap nonCommitted: 21757952 GCC: Apple clang version 12.0.5 (clang-1205.0.22.9) Target: x86_64-apple-darwin20.6.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin BUILD SUCCESSFUL in 49s 50 actionable tasks: 13 executed, 37 up-to-date
PyTorch 1.13.+ doesn't support macOS 11 any more, you either upgrade your mac or use lower version of DJL. See: https://docs.djl.ai/master/engines/pytorch/pytorch-engine/index.html#macos
Description
When running multi-engine demo:
Exception in thread "main" ai.djl.engine.EngineException: Failed to load PyTorch native library
It is on an old MacBook Pro 15" mid 2014, MacOS Big Sur 11.7.4 Note: it should have this processor (https://www.intel.com/content/www/us/en/products/sku/83504/intel-core-i74870hq-processor-6m-cache-up-to-3-70-ghz/specifications.html) which support AVX2
Expected Behavior
No exception
Error Message
How to Reproduce?
Run multi-engine demo.
Steps to reproduce
git clone https://github.com/deepjavalibrary/djl-demo.git
cd djl-demo/development/multi-engine/
./gradlew run
What have you tried to solve it?
Environment Info