From 919fffe58485de7d8658702319e2ddd9f7b8c9b3 Mon Sep 17 00:00:00 2001 From: Lou Amadio Date: Wed, 9 Feb 2022 19:31:23 -0800 Subject: [PATCH 1/2] Enable aarch64 --- onnxruntime_vendor/CMakeLists.txt | 99 ++++++++++++++++++++++--------- 1 file changed, 72 insertions(+), 27 deletions(-) diff --git a/onnxruntime_vendor/CMakeLists.txt b/onnxruntime_vendor/CMakeLists.txt index 6b31969..fe24a2a 100644 --- a/onnxruntime_vendor/CMakeLists.txt +++ b/onnxruntime_vendor/CMakeLists.txt @@ -14,6 +14,20 @@ else() option(CUDA_SUPPORT "use CUDA support onnxruntime library" ON) endif() +if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64") +if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/onnxruntime-linux-aarch64-gpu-1.10.0.tgz") + file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/onnxruntime") + add_custom_target(ExtractOnnxruntime ALL + ${CMAKE_COMMAND} -E + tar xvzf "${CMAKE_CURRENT_SOURCE_DIR}/onnxruntime-linux-aarch64-gpu-1.10.0.tgz" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/onnxruntime" + ) + +else() + message(ERROR "At this time, compiling for ARM64 requires building the ONNX runtime manually. Place the file as a tgz in this directory with the name onnxruntime-linux-aarch64-gpu-1.10.0.tgz") +endif() + +else() if(CUDA_SUPPORT) message("Building with Cuda support") set(PACKAGE_URL "https://www.nuget.org/api/v2/package/Microsoft.ML.OnnxRuntime.Gpu/1.4.0") @@ -38,38 +52,69 @@ add_custom_target(ExtractOnnxruntime ALL tar xvzf "${CMAKE_CURRENT_BINARY_DIR}/onnxruntime.nuget" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/onnxruntime" ) +endif() -install( - DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/build/native/include/ - DESTINATION include -) +if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64") + install( + DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/onnxruntime-linux-aarch64-gpu-1.10.0/include/ + DESTINATION include + ) -install( - FILES - ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/runtimes/win-x64/native/onnxruntime.dll - ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/runtimes/win-x64/native/onnxruntime.pdb - DESTINATION bin -) + install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/onnxruntime-linux-aarch64-gpu-1.10.0/lib/libonnxruntime.so + DESTINATION lib + RENAME libonnxruntime.so.1.10.0 + ) -install( - FILES - ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/runtimes/win-x64/native/onnxruntime.lib - DESTINATION lib -) + install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/onnxruntime-linux-aarch64-gpu-1.10.0/lib/libonnxruntime_providers_cuda.so + ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/onnxruntime-linux-aarch64-gpu-1.10.0/lib/libonnxruntime_providers_shared.so + ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/onnxruntime-linux-aarch64-gpu-1.10.0/lib/libonnxruntime_providers_tensorrt.so + DESTINATION lib + ) -install( - FILES - ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/runtimes/linux-x64/native/libonnxruntime.so - DESTINATION lib - RENAME libonnxruntime.so.1.4.0 -) + install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/onnxruntime-linux-aarch64-gpu-1.10.0/LICENSE + ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/onnxruntime-linux-aarch64-gpu-1.10.0/ThirdPartyNotices.txt + DESTINATION share/${PROJECT_NAME} + ) +else() + install( + DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/build/native/include/ + DESTINATION include + ) + + install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/runtimes/win-x64/native/onnxruntime.dll + ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/runtimes/win-x64/native/onnxruntime.pdb + DESTINATION bin + ) + + install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/runtimes/win-x64/native/onnxruntime.lib + DESTINATION lib + ) + + install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/runtimes/linux-x64/native/libonnxruntime.so + DESTINATION lib + RENAME libonnxruntime.so.1.4.0 + ) + + install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/LICENSE.txt + ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/ThirdPartyNotices.txt + DESTINATION share/${PROJECT_NAME} + ) +endif() -install( - FILES - ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/LICENSE.txt - ${CMAKE_CURRENT_BINARY_DIR}/onnxruntime/ThirdPartyNotices.txt - DESTINATION share/${PROJECT_NAME} -) ament_package( CONFIG_EXTRAS "src/onnxruntime_vendor-extras.cmake" From 0921fe00acdff076da19b563877e249454f43ca3 Mon Sep 17 00:00:00 2001 From: Lou Amadio Date: Thu, 10 Feb 2022 09:08:19 -0800 Subject: [PATCH 2/2] fix clean build --- .../src/onnxruntime_vendor-extras.cmake | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/onnxruntime_vendor/src/onnxruntime_vendor-extras.cmake b/onnxruntime_vendor/src/onnxruntime_vendor-extras.cmake index 477a6a1..b1f9949 100644 --- a/onnxruntime_vendor/src/onnxruntime_vendor-extras.cmake +++ b/onnxruntime_vendor/src/onnxruntime_vendor-extras.cmake @@ -22,9 +22,15 @@ if (NOT TARGET onnxruntime-unofficial::onnxruntime) IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/onnxruntime.dll" ) elseif(UNIX) - set_target_properties(onnxruntime-unofficial::onnxruntime PROPERTIES - IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libonnxruntime.so.1.4.0" - ) + if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64") + set_target_properties(onnxruntime-unofficial::onnxruntime PROPERTIES + IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libonnxruntime.so.1.10.0" + ) + else() + set_target_properties(onnxruntime-unofficial::onnxruntime PROPERTIES + IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libonnxruntime.so.1.4.0" + ) + endif() else() message(FATAL_ERROR "unsupported platform.") endif()