diff --git a/.github/workflows/aarch64-linux-gnu-shared.yaml b/.github/workflows/aarch64-linux-gnu-shared.yaml index 5e867530..8ea8ccde 100644 --- a/.github/workflows/aarch64-linux-gnu-shared.yaml +++ b/.github/workflows/aarch64-linux-gnu-shared.yaml @@ -43,6 +43,9 @@ jobs: - os: ubuntu-22.04-arm gpu: ON onnxruntime_version: "1.16.0" + - os: ubuntu-22.04-arm + gpu: ON + onnxruntime_version: "1.18.1" - os: ubuntu-22.04-arm gpu: OFF onnxruntime_version: "" diff --git a/CMakeLists.txt b/CMakeLists.txt index fe4cb54e..3f7998ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,7 +46,8 @@ option(SHERPA_ONNX_USE_PRE_INSTALLED_ONNXRUNTIME_IF_AVAILABLE "True to use pre-i option(SHERPA_ONNX_ENABLE_SANITIZER "Whether to enable ubsan and asan" OFF) option(SHERPA_ONNX_BUILD_C_API_EXAMPLES "Whether to enable C API examples" ON) -set(SHERPA_ONNX_LINUX_ARM64_GPU_ONNXRUNTIME_VERSION "1.11.0" CACHE STRING "Used only for Linux ARM64 GPU. If you use Jetson nano b01, then please set it to 1.11.0. If you use Jetson Orin NX, then set it to 1.16.0") +set(SHERPA_ONNX_LINUX_ARM64_GPU_ONNXRUNTIME_VERSION "1.11.0" CACHE STRING "Used only for Linux ARM64 GPU. If you use Jetson nano b01, then please set it to 1.11.0. If you use Jetson Orin NX, then set it to 1.16.0.If you use NVIDIA Jetson Orin Nano Engineering Reference Developer Kit +Super - Jetpack 6.2 [L4T 36.4.3], then set it to 1.18.1") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") diff --git a/build-aarch64-linux-gnu.sh b/build-aarch64-linux-gnu.sh index cdc48e37..a5e1a8d1 100755 --- a/build-aarch64-linux-gnu.sh +++ b/build-aarch64-linux-gnu.sh @@ -20,6 +20,14 @@ # export SHERPA_ONNX_ENABLE_GPU=ON # export SHERPA_ONNX_LINUX_ARM64_GPU_ONNXRUNTIME_VERSION=1.16.0 # ./build-aarch64-linux-gnu.sh +# +# (d) For NVIDIA Jetson Orin Nano Engineering Reference Developer Kit Super +# Jetpack 6.2 [L4T 36.4.3] (CUDA 12.6) +# +# export SHERPA_ONNX_ENABLE_GPU=ON +# export SHERPA_ONNX_LINUX_ARM64_GPU_ONNXRUNTIME_VERSION=1.18.1 +# ./build-aarch64-linux-gnu.sh + if command -v aarch64-none-linux-gnu-gcc &> /dev/null; then ln -svf $(which aarch64-none-linux-gnu-gcc) ./aarch64-linux-gnu-gcc diff --git a/cmake/onnxruntime-linux-aarch64-gpu.cmake b/cmake/onnxruntime-linux-aarch64-gpu.cmake index 5df32c99..616282e2 100644 --- a/cmake/onnxruntime-linux-aarch64-gpu.cmake +++ b/cmake/onnxruntime-linux-aarch64-gpu.cmake @@ -27,6 +27,11 @@ to cmake (You need to make sure CUDA 10.2 is available on your board). If you use Jetson Orin NX, then please pass -DSHERPA_ONNX_LINUX_ARM64_GPU_ONNXRUNTIME_VERSION=1.16.0 to cmake (You need to make sure CUDA 11.4 is available on your board). + +If you use NVIDIA Jetson Orin Nano Engineering Reference Developer Kit +Super - Jetpack 6.2 [L4T 36.4.3], then please pass + -DSHERPA_ONNX_LINUX_ARM64_GPU_ONNXRUNTIME_VERSION=1.18.1 +to cmake (You need to make sure CUDA 12.6 is available on your board). ") set(v ${SHERPA_ONNX_LINUX_ARM64_GPU_ONNXRUNTIME_VERSION}) @@ -36,8 +41,14 @@ set(onnxruntime_URL2 "https://hf-mirror.com/csukuangfj/onnxruntime-libs/resolve/ if(v STREQUAL "1.11.0") set(onnxruntime_HASH "SHA256=36eded935551e23aead09d4173bdf0bd1e7b01fdec15d77f97d6e34029aa60d7") -else() +elseif(v STREQUAL "1.16.0") set(onnxruntime_HASH "SHA256=4c09d5acf2c2682b4eab1dc2f1ad98fc1fde5f5f1960063e337983ba59379a4b") +elseif(v STREQUAL "1.18.1") + set(onnxruntime_URL "https://github.com/csukuangfj/onnxruntime-libs/releases/download/v1.18.1/onnxruntime-linux-aarch64-gpu-cuda12-1.18.1.tar.bz2") + set(onnxruntime_URL2 "https://hf-mirror.com/csukuangfj/onnxruntime-libs/resolve/main/onnxruntime-linux-aarch64-gpu-cuda12-1.18.1.tar.bz2") + set(onnxruntime_HASH "SHA256=1e91064ec13a6fabb6b670da8a2da4f369c1dbd50a5be77a879b2473e7afc0a6") +else() + message(FATAL_ERROR "Unuspported onnxruntime version ${v} for Linux aarch64") endif() # If you don't have access to the Internet,