diff --git a/.github/workflows/test-coverage.yml b/.github/workflows/test-coverage.yml index c02a416b39ef9b956a404c8267cf217971d45d10..46b710a6b1fcc76d5f8911b18b629a6088d16017 100644 --- a/.github/workflows/test-coverage.yml +++ b/.github/workflows/test-coverage.yml @@ -41,4 +41,4 @@ jobs: uses: codecov/codecov-action@v1.0.11 with: token: ${{ secrets.CODECOV_TOKEN }} - file: build/lcov.info + file: build/lcov.info diff --git a/CMakeLists.txt b/CMakeLists.txt index b8a8be623e35c56eef7ed832029b581483d7b6fc..985beecbe25abee8ba21c41c141a966b2e4bd7c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,7 +73,6 @@ option(TENGINE_DEBUG_TIME "print time information for every layer" OFF) option(TENGINE_DEBUG_MEM_STAT "print memory status for library" OFF) option(TENGINE_ARCH_X86_AVX "build avx2 for x86" ON) option(TENGINE_ARCH_ARM_82 "build armv8.2 for arm" OFF) -MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}") # some hcl options option(TENGINE_STANDALONE_HCL "build standalone hcl lib" OFF) @@ -133,39 +132,19 @@ endif() if (${TENGINE_TARGET_PROCESSOR} MATCHES "ARM") if (TENGINE_TARGET_PROCESSOR_32Bit) if (OHOS) - list(APPEND TENGINE_COMPILE_OPTIONS_C_PRIVATE -march=armv7-a) - list(APPEND TENGINE_COMPILE_OPTIONS_C_PRIVATE -mfpu=neon) - list(APPEND TENGINE_COMPILE_OPTIONS_C_PRIVATE -mfloat-abi=softfp) - - list(APPEND TENGINE_COMPILE_OPTIONS_CXX_PRIVATE -march=armv7-a) - list(APPEND TENGINE_COMPILE_OPTIONS_CXX_PRIVATE -mfpu=neon) - list(APPEND TENGINE_COMPILE_OPTIONS_CXX_PRIVATE -mfloat-abi=softfp) - - list(APPEND TENGINE_COMPILE_OPTIONS_CUDA_PRIVATE -march=armv7-a) - list(APPEND TENGINE_COMPILE_OPTIONS_CUDA_PRIVATE -mfpu=neon) - list(APPEND TENGINE_COMPILE_OPTIONS_CUDA_PRIVATE -mfloat-abi=softfp) + add_definitions(-march=armv7-a) + add_definitions(-mfpu=neon) + add_definitions(-mfloat-abi=softfp) elseif (NOT ANDROID) - list(APPEND TENGINE_COMPILE_OPTIONS_C_PRIVATE -march=armv7-a) - list(APPEND TENGINE_COMPILE_OPTIONS_C_PRIVATE -mfpu=neon) - list(APPEND TENGINE_COMPILE_OPTIONS_C_PRIVATE -mfp16-format=ieee) - list(APPEND TENGINE_COMPILE_OPTIONS_C_PRIVATE -mfpu=neon-fp16) - - list(APPEND TENGINE_COMPILE_OPTIONS_CXX_PRIVATE -march=armv7-a) - list(APPEND TENGINE_COMPILE_OPTIONS_CXX_PRIVATE -mfpu=neon) - list(APPEND TENGINE_COMPILE_OPTIONS_CXX_PRIVATE -mfp16-format=ieee) - list(APPEND TENGINE_COMPILE_OPTIONS_CXX_PRIVATE -mfpu=neon-fp16) - - list(APPEND TENGINE_COMPILE_OPTIONS_CUDA_PRIVATE -march=armv7-a) - list(APPEND TENGINE_COMPILE_OPTIONS_CUDA_PRIVATE -mfpu=neon) - list(APPEND TENGINE_COMPILE_OPTIONS_CUDA_PRIVATE -mfp16-format=ieee) - list(APPEND TENGINE_COMPILE_OPTIONS_CUDA_PRIVATE -mfpu=neon-fp16) + add_definitions(-march=armv7-a) + add_definitions(-mfpu=neon) + add_definitions(-mfp16-format=ieee) + add_definitions(-mfpu=neon-fp16) endif() endif() if (TENGINE_TOOLCHIN_FLAG) - list(APPEND TENGINE_COMPILE_OPTIONS_C_PRIVATE "${TENGINE_TOOLCHIN_FLAG}") - list(APPEND TENGINE_COMPILE_OPTIONS_CXX_PRIVATE "${TENGINE_TOOLCHIN_FLAG}") - list(APPEND TENGINE_COMPILE_OPTIONS_CUDA_PRIVATE "${TENGINE_TOOLCHIN_FLAG}") + add_definitions ("${TENGINE_TOOLCHIN_FLAG}") endif() endif() diff --git a/cmake/system_check.cmake b/cmake/system_check.cmake index 6f4627d6f081ec5c66d6dee075d587d99b96d154..455163d797ea63b35d72152aa42b73ebf2bf4175 100644 --- a/cmake/system_check.cmake +++ b/cmake/system_check.cmake @@ -23,7 +23,7 @@ ELSEIF (OHOS) MESSAGE(STATUS "Now is Harmony OS") add_definitions(-D_OHOS_) ELSEIF (ANDROID) - MESSAGE(STATUS "Now is Android") + MESSAGE(STATUS "Now is Android, NDK Version is " ${ANDROID_NDK_MAJOR}) add_definitions(-fno-integrated-as) ELSEIF (UNIX) MESSAGE(STATUS "Now is UNIX-like OS's. Including Apple os x and CYGwin") diff --git a/doc/gpu_cuda_user_manual.md b/doc/gpu_cuda_user_manual.md index 4d8da337c71f27e662306d2c06095d3234e5f251..2b5f302c43075491c0d461527a3ac6031fd756a8 100644 --- a/doc/gpu_cuda_user_manual.md +++ b/doc/gpu_cuda_user_manual.md @@ -18,9 +18,7 @@ $ export CUDACXX=/usr/local/cuda/bin/nvcc ```bash $ cd $ mkdir -p build-linux-cuda -$ cmake -DTENGINE_ENABLE_CUDABACKEND=ON \ - -DCUDA_INCLUDE_DIR=/usr/local/cuda-10.2/targets/aarch64-linux/include \ - -DCUDA_LIBARAY_DIR=/usr/local/cuda-10.2/targets/aarch64-linux/lib .. +$ cmake -DTENGINE_ENABLE_CUDABACKEND=ON .. $ make -j4 $ make install diff --git a/doc/gpu_trt_user_manual.md b/doc/gpu_trt_user_manual.md index 5ad501ac4f1bc49ecdce545881230ac1ecdeaa3a..9bae5adad18c904d29abc4737150dfde95eca6df 100644 --- a/doc/gpu_trt_user_manual.md +++ b/doc/gpu_trt_user_manual.md @@ -16,9 +16,7 @@ $ cd $ mkdir -p build-linux-trt $ cmake -DTENGINE_ENABLE_TENSORRT=ON \ -DTENSORRT_INCLUDE_DIR=/usr/include/aarch64-linux-gnu \ - -DTENSORRT_LIBRARY_DIR=/usr/lib/aarch64-linux-gnu \ - -DCUDA_INCLUDE_DIR=/usr/local/cuda-10.2/targets/aarch64-linux/include \ - -DCUDA_LIBARAY_DIR=/usr/local/cuda-10.2/targets/aarch64-linux/lib .. + -DTENSORRT_LIBRARY_DIR=/usr/lib/aarch64-linux-gnu .. $ make -j4 $ make install @@ -35,7 +33,7 @@ Tengine: Try using inference precision TF32 failed, rollback. model file : /home/nvidia/tengine-test/models/mobilenet_v1.tmfile image file : /home/nvidia/tengine-test/images/cat.jpg img_h, img_w, scale[3], mean[3] : 224 224 , 0.017 0.017 0.017, 104.0 116.7 122.7 -Repeat 1 times, thread 1, avg time 2.91 ms, max_time 2.91 ms, min_time 2.91 ms +Repeat 1 times, thread 1, avg time 2.10 ms, max_time 3.10 ms, min_time 2.03 ms -------------------------------------- 8.574147, 282 7.880117, 277 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 55fa4d1ffbfd434ff7a333eee6030c2a124db697..88b4056a5b1a4ebf3d2f2af5a52af4908057e8e3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -183,7 +183,7 @@ if (TENGINE_ENABLE_TENSORRT) list(APPEND TENGINE_TENSORRT_LIB_DIRS ${TENSORRT_LIBRARY_DIR}) list(APPEND TENGINE_TENSORRT_LIB_DIRS ${CUDA_LIBARAY_DIR}) - #message("TENGINE_INCLUDE_DIRS_PRIVATE=${TENGINE_INCLUDE_DIRS_PRIVATE}") + message(STATUS "TENGINE_INCLUDE_DIRS_PRIVATE=${TENGINE_INCLUDE_DIRS_PRIVATE}") link_directories(${TENGINE_TENSORRT_LIB_DIRS}) if(TENGINE_VERBOSE) @@ -198,7 +198,6 @@ endif () if (TENGINE_ENABLE_CUDABACKEND) enable_language(CUDA) - message("### CUDABACKEND_INCLUDE_DIR=${CUDABACKEND_INCLUDE_DIR}") include(${CMAKE_CURRENT_SOURCE_DIR}/dev/cuda/cmake/FindcuDNN.cmake) include(${CMAKE_CURRENT_SOURCE_DIR}/dev/cuda/cmake/FindcuBLAS.cmake) @@ -209,12 +208,11 @@ if (TENGINE_ENABLE_CUDABACKEND) list(APPEND TENGINE_INCLUDE_DIRS_PRIVATE ${CUDNN_INCLUDE_DIR}) list(APPEND TENGINE_INCLUDE_DIRS_PRIVATE ${CUBLAS_INCLUDE_DIRS}) -# list(APPEND TENGINE_CUDABACKEND_LIB_DIRS ${CUDABACKEND_LIBRARY_DIR}) list(APPEND TENGINE_CUDABACKEND_LIB_DIRS ${CUDA_LIBRARIES}) list(APPEND TENGINE_CUDABACKEND_LIB_DIRS ${CUDNN_LIBRARY}) list(APPEND TENGINE_CUDABACKEND_LIB_DIRS ${CUBLAS_LIBRARIES}) - message("### TENGINE_INCLUDE_DIRS_PRIVATE=${TENGINE_INCLUDE_DIRS_PRIVATE}") + message(STATUS "TENGINE_INCLUDE_DIRS_PRIVATE=${TENGINE_INCLUDE_DIRS_PRIVATE}") link_directories(${TENGINE_CUDABACKEND_LIB_DIRS}) if(TENGINE_VERBOSE) @@ -336,7 +334,7 @@ endif() TENGINE_USE_LIB_OPENMP(${CMAKE_PROJECT_NAME}) # show linking libraries if(TENGINE_VERBOSE) - message (STATUS "TENGINE: 'TENGINE_LINKING_LIBS' is ${TENGINE_LINKING_LIBS}.") + message (STATUS "TENGINE: 'TENGINE_LINKING_LIBRARIES_PRIVATE' is ${TENGINE_LINKING_LIBRARIES_PRIVATE}.") endif() if (NOT TENGINE_ENABLE_ALL_SYMBOL) @@ -347,7 +345,7 @@ if (NOT TENGINE_ENABLE_ALL_SYMBOL) endif() if (ANDROID) - list(APPEND TENGINE_LINKING_LIBRARIES_PRIVATE android) + # list(APPEND TENGINE_LINKING_LIBRARIES_PRIVATE android) list(APPEND TENGINE_LINKING_LIBRARIES_PRIVATE ${TENGINE_LINKING_LIBS}) elseif(MSVC) list(APPEND TENGINE_LINKING_LIBRARIES_PRIVATE ${TENGINE_LINKING_LIBS}) @@ -397,6 +395,10 @@ target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE $<$: target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${TENGINE_INCLUDE_DIRS_PRIVATE}) target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE ${TENGINE_LINKING_LIBRARIES_PRIVATE}) +if (ANDROID) + target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC android) +endif() + if(TENGINE_COVERAGE) SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage") SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage")