diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ebf37aec2..c3fa47af18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,6 +39,8 @@ cmake_minimum_required(VERSION 3.19) project(aimet) +include(GNUInstallDirs) + include(cmake/PreparePyTorch.cmake) include(cmake/PrepareONNX.cmake) include(cmake/PrepareTensorFlow.cmake) @@ -51,7 +53,7 @@ set(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Boolean specifying whether compiler spe set(CMAKE_POSITION_INDEPENDENT_CODE ON) -set(AIMET_INSTALL_DIR ${CMAKE_BINARY_DIR}/staging/universal) +message(NOTICE "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX} (for install target)") if(NOT DEFINED AIMET_PYTHONPATH) set(AIMET_PYTHONPATH "PYTHONPATH=${CMAKE_BINARY_DIR}/artifacts" CACHE STRING "python path") @@ -107,6 +109,7 @@ if (ENABLE_TORCH AND ENABLE_TENSORFLOW) endif() # Find Python libraries +set(Python3_FIND_VIRTUALENV "STANDARD") find_package(Python3 COMPONENTS Interpreter Development) message(STATUS "Found Python3: ${Python3_FOUND}, at ${Python3_LIBRARIES}") @@ -243,9 +246,9 @@ endif() # Set the packaging path (if not already set) if(NOT DEFINED AIMET_PACKAGE_PATH) - set(AIMET_PACKAGE_PATH "\"${AIMET_INSTALL_DIR}\"") - message(STATUS "Set AIMET_PACKAGE_PATH = ${AIMET_PACKAGE_PATH}") -endif(NOT DEFINED AIMET_PACKAGE_PATH) + set(AIMET_PACKAGE_PATH ${CMAKE_INSTALL_PREFIX}) + message(STATUS "Set AIMET_PACKAGE_PATH = ${AIMET_PACKAGE_PATH}") +endif() set(remote_url_cmake_opt "-DREMOTE_URL=\"\"") @@ -294,18 +297,6 @@ if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/Benchmarks") add_subdirectory(Benchmarks) endif() -# ------------------------------- -# Packaging - deprecated -# ------------------------------- -set(CPACK_PACKAGE_NAME "aimet") -set(CPACK_PACKAGE_VERSION_MAJOR 0) -set(CPACK_PACKAGE_VERSION_MINOR 1) -set(CPACK_PACKAGE_VERSION_PATCH 1) -set(CPACK_SYSTEM_NAME "build-0.0.0.0") -set(CPACK_GENERATOR "TGZ") -set(CPACK_INSTALLED_DIRECTORIES ${AIMET_INSTALL_DIR} .) -include(CPack) - # ------------------------------- # Upload pip packages # ------------------------------- diff --git a/Docs/CMakeLists.txt b/Docs/CMakeLists.txt index d3b9a83aad..d1b9bf1bf2 100644 --- a/Docs/CMakeLists.txt +++ b/Docs/CMakeLists.txt @@ -37,7 +37,7 @@ #============================================================================= install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - DESTINATION ${AIMET_INSTALL_DIR} + DESTINATION . PATTERN "CMakeFiles*" EXCLUDE PATTERN "Makefile" EXCLUDE PATTERN "*.cmake" EXCLUDE diff --git a/Examples/CMakeLists.txt b/Examples/CMakeLists.txt index 3fbdbeabe1..822e2e9cbd 100755 --- a/Examples/CMakeLists.txt +++ b/Examples/CMakeLists.txt @@ -34,14 +34,12 @@ # @@-COPYRIGHT-END-@@ #============================================================================== -set(AIMET_EXAMPLES_DEST ${AIMET_INSTALL_DIR}/Examples) - add_custom_target(copy_examples COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_BINARY_DIR}/Docs_SOURCE/Examples) #TODO Remove the OPTIONAL flag after Common Examples code gets added install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/common - DESTINATION ${AIMET_EXAMPLES_DEST} + DESTINATION Examples OPTIONAL PATTERN "__pycache*" EXCLUDE PATTERN "CMakeLists.txt" EXCLUDE @@ -49,7 +47,7 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/common if (ENABLE_TORCH) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/torch - DESTINATION ${AIMET_EXAMPLES_DEST} + DESTINATION Examples PATTERN "__pycache*" EXCLUDE PATTERN "CMakeLists.txt" EXCLUDE ) @@ -59,7 +57,7 @@ endif(ENABLE_TORCH) if (ENABLE_TENSORFLOW) #TODO Remove the OPTIONAL flag after TensorFlow Examples code gets added install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tensorflow - DESTINATION ${AIMET_EXAMPLES_DEST} + DESTINATION Examples OPTIONAL PATTERN "__pycache*" EXCLUDE PATTERN "CMakeLists.txt" EXCLUDE @@ -68,7 +66,6 @@ if (ENABLE_TENSORFLOW) endif(ENABLE_TENSORFLOW) # Create a tarball archive of the Examples code -install(CODE "execute_process(COMMAND - ${CMAKE_COMMAND} -E chdir ${AIMET_INSTALL_DIR} - ${CMAKE_COMMAND} -E tar cvzf ${AIMET_EXAMPLES_DEST}.tar.gz ${CMAKE_CURRENT_SOURCE_DIR}/Examples)" +install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E tar cvzf ${CMAKE_INSTALL_PREFIX}/Examples.tar.gz . + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})" ) diff --git a/ModelOptimizations/DlCompression/CMakeLists.txt b/ModelOptimizations/DlCompression/CMakeLists.txt index e134f6ae3a..dd8b857502 100644 --- a/ModelOptimizations/DlCompression/CMakeLists.txt +++ b/ModelOptimizations/DlCompression/CMakeLists.txt @@ -60,7 +60,7 @@ target_compile_options(MoDlCompression include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/DlCompression - DESTINATION ${AIMET_INSTALL_DIR}/lib/x86_64-linux-gnu/include) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/x86_64-linux-gnu/include) if (ENABLE_TESTS) add_subdirectory(test) diff --git a/ModelOptimizations/DlEqualization/CMakeLists.txt b/ModelOptimizations/DlEqualization/CMakeLists.txt index ca86f93774..7be4d7a66d 100644 --- a/ModelOptimizations/DlEqualization/CMakeLists.txt +++ b/ModelOptimizations/DlEqualization/CMakeLists.txt @@ -77,7 +77,7 @@ target_compile_options(MoDlEqualization include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/DlEqualization - DESTINATION ${AIMET_INSTALL_DIR}/lib/x86_64-linux-gnu/include) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/x86_64-linux-gnu/include) if (ENABLE_TESTS) add_subdirectory(test) diff --git a/ModelOptimizations/DlQuantization/CMakeLists.txt b/ModelOptimizations/DlQuantization/CMakeLists.txt index 0fc738e090..7c8d30e47b 100644 --- a/ModelOptimizations/DlQuantization/CMakeLists.txt +++ b/ModelOptimizations/DlQuantization/CMakeLists.txt @@ -122,7 +122,7 @@ if (ENABLE_CUDA) endif (ENABLE_CUDA) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/DlQuantization - DESTINATION ${AIMET_INSTALL_DIR}/lib/x86_64-linux-gnu/include) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/x86_64-linux-gnu/include) if (ENABLE_TESTS) add_subdirectory(test) diff --git a/ModelOptimizations/PyModelOptimizations/CMakeLists.txt b/ModelOptimizations/PyModelOptimizations/CMakeLists.txt index 524b234556..484b66da86 100644 --- a/ModelOptimizations/PyModelOptimizations/CMakeLists.txt +++ b/ModelOptimizations/PyModelOptimizations/CMakeLists.txt @@ -40,32 +40,18 @@ Python3_add_library(PyModelOptimizations SHARED PyModelOptimizations.cpp PyTensorQuantizer.cpp) -if (ENABLE_CUDA) - target_link_libraries(PyModelOptimizations - PUBLIC - stdc++ - MoDlQuantization - MoDlEqualization - MoDlQuantizationCuda - MoDlCompression +target_link_libraries(PyModelOptimizations PUBLIC + MoDlQuantization + MoDlEqualization + MoDlCompression + ${OPENCV_LINK_LIBRARIES} + ) +if (ENABLE_CUDA) + target_link_libraries(PyModelOptimizations PUBLIC + MoDlQuantizationCuda CUDA::cublas - ${OPENCV_LINK_LIBRARIES} - z - ) - -else (ENABLE_CUDA) - target_link_libraries(PyModelOptimizations - PUBLIC - stdc++ - MoDlQuantization - MoDlEqualization - MoDlCompression - - ${OPENCV_LINK_LIBRARIES} - z ) - endif (ENABLE_CUDA) set_target_properties(PyModelOptimizations @@ -77,7 +63,8 @@ set_target_properties(PyModelOptimizations ) install(TARGETS PyModelOptimizations - LIBRARY DESTINATION ${AIMET_INSTALL_DIR}/lib/python/aimet_common + LIBRARY + DESTINATION ${CMAKE_INSTALL_LIBDIR}/python/aimet_common ) add_custom_target(whl_prep_cp_common_PyModelOptimizations diff --git a/TrainingExtensions/common/src/python/CMakeLists.txt b/TrainingExtensions/common/src/python/CMakeLists.txt index d954b21687..683e0c34bd 100644 --- a/TrainingExtensions/common/src/python/CMakeLists.txt +++ b/TrainingExtensions/common/src/python/CMakeLists.txt @@ -39,7 +39,6 @@ project(aimet_common) if(NOT TARGET PyModelOptimizations) - set(AIMET_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}) add_subdirectory("../../../../" "${CMAKE_CURRENT_BINARY_DIR}/aimet" EXCLUDE_FROM_ALL) install( FILES $ @@ -47,7 +46,7 @@ if(NOT TARGET PyModelOptimizations) ) else() install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - DESTINATION ${AIMET_INSTALL_DIR}/lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} PATTERN "__pycache*" EXCLUDE PATTERN "CMakeLists.txt" EXCLUDE ) diff --git a/TrainingExtensions/onnx/CMakeLists.txt b/TrainingExtensions/onnx/CMakeLists.txt index 1cd68bb232..849b7d6500 100644 --- a/TrainingExtensions/onnx/CMakeLists.txt +++ b/TrainingExtensions/onnx/CMakeLists.txt @@ -82,7 +82,8 @@ set_target_properties(OnnxCppOps PROPERTIES ) install(TARGETS OnnxCppOps - LIBRARY DESTINATION ${AIMET_INSTALL_DIR}/lib/python/aimet_common + LIBRARY + DESTINATION ${CMAKE_INSTALL_LIBDIR}/python/aimet_common ) # ---- @@ -110,7 +111,8 @@ set_target_properties(quant_info ) install(TARGETS quant_info - LIBRARY DESTINATION ${AIMET_INSTALL_DIR}/lib/python/aimet_common + LIBRARY + DESTINATION ${CMAKE_INSTALL_LIBDIR}/python/aimet_common ) # ---- diff --git a/TrainingExtensions/onnx/src/python/CMakeLists.txt b/TrainingExtensions/onnx/src/python/CMakeLists.txt index facdd8c0b0..803ba067dc 100644 --- a/TrainingExtensions/onnx/src/python/CMakeLists.txt +++ b/TrainingExtensions/onnx/src/python/CMakeLists.txt @@ -37,7 +37,7 @@ #============================================================================= install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - DESTINATION ${AIMET_INSTALL_DIR}/lib - PATTERN "__pycache*" EXCLUDE - PATTERN "CMakeLists.txt" EXCLUDE - ) + DESTINATION ${CMAKE_INSTALL_LIBDIR} + PATTERN "__pycache*" EXCLUDE + PATTERN "CMakeLists.txt" EXCLUDE + ) diff --git a/TrainingExtensions/tensorflow/CMakeLists.txt b/TrainingExtensions/tensorflow/CMakeLists.txt index fc1112afc2..dc79331c06 100644 --- a/TrainingExtensions/tensorflow/CMakeLists.txt +++ b/TrainingExtensions/tensorflow/CMakeLists.txt @@ -155,11 +155,11 @@ endif(ENABLE_CUDA) install(FILES $ - DESTINATION ${AIMET_INSTALL_DIR}/lib/python/aimet_common + DESTINATION ${CMAKE_INSTALL_LIBDIR}/python/aimet_common ) install(DIRECTORY $/$$ - DESTINATION ${AIMET_INSTALL_DIR}/lib/python/aimet_common + DESTINATION ${CMAKE_INSTALL_LIBDIR}/python/aimet_common ) add_custom_target(whl_prep_cp_tensorflow diff --git a/TrainingExtensions/tensorflow/src/python/CMakeLists.txt b/TrainingExtensions/tensorflow/src/python/CMakeLists.txt index 5fe7b401aa..8a22e00e80 100644 --- a/TrainingExtensions/tensorflow/src/python/CMakeLists.txt +++ b/TrainingExtensions/tensorflow/src/python/CMakeLists.txt @@ -37,7 +37,7 @@ #============================================================================= install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - DESTINATION ${AIMET_INSTALL_DIR}/lib - PATTERN "__pycache*" EXCLUDE - PATTERN "CMakeLists.txt" EXCLUDE - ) \ No newline at end of file + DESTINATION ${CMAKE_INSTALL_LIBDIR} + PATTERN "__pycache*" EXCLUDE + PATTERN "CMakeLists.txt" EXCLUDE + ) diff --git a/TrainingExtensions/torch/CMakeLists.txt b/TrainingExtensions/torch/CMakeLists.txt index 9b3da30833..8b6becdf6a 100644 --- a/TrainingExtensions/torch/CMakeLists.txt +++ b/TrainingExtensions/torch/CMakeLists.txt @@ -104,8 +104,8 @@ if (ENABLE_TESTS) endif() install(DIRECTORY ${CMAKE_BINARY_DIR}/artifacts/aimet_common/ - DESTINATION ${AIMET_INSTALL_DIR}/lib/python/aimet_common - FILES_MATCHING PATTERN "AimetTensorQuantizer*.so" + DESTINATION ${CMAKE_INSTALL_LIBDIR}/python/aimet_common + FILES_MATCHING PATTERN "AimetTensorQuantizer*.so" ) add_custom_target(whl_prep_cp_torch diff --git a/TrainingExtensions/torch/src/python/CMakeLists.txt b/TrainingExtensions/torch/src/python/CMakeLists.txt index 2f231aa4d8..8a22e00e80 100644 --- a/TrainingExtensions/torch/src/python/CMakeLists.txt +++ b/TrainingExtensions/torch/src/python/CMakeLists.txt @@ -37,7 +37,7 @@ #============================================================================= install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - DESTINATION ${AIMET_INSTALL_DIR}/lib - PATTERN "__pycache*" EXCLUDE - PATTERN "CMakeLists.txt" EXCLUDE + DESTINATION ${CMAKE_INSTALL_LIBDIR} + PATTERN "__pycache*" EXCLUDE + PATTERN "CMakeLists.txt" EXCLUDE ) diff --git a/dobuildntest.sh b/dobuildntest.sh index ff6b684c95..8b15f502c8 100755 --- a/dobuildntest.sh +++ b/dobuildntest.sh @@ -209,6 +209,7 @@ fi echo "Starting AIMET build and test..." workspaceFolder=`readlink -f ${workspaceFolder}` buildFolder=$workspaceFolder/build +installFolder=$workspaceFolder/build/staging/universal artifactsFolder=$buildFolder/artifacts AIMET_TORCH_HOME=${buildFolder}/torch_pretrain_data @@ -427,7 +428,7 @@ if [ $run_build -eq 1 ]; then fi # Do not exit on failure by default from this point forward set +e - cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ${extra_opts} .. + cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_INSTALL_PREFIX=${installFolder} ${extra_opts} .. make -j 8 check_stage $? "Build" "true"