diff --git a/.github/workflows/compiler-build.yml b/.github/workflows/compiler-build.yml index ac8ae1f861..726652301f 100644 --- a/.github/workflows/compiler-build.yml +++ b/.github/workflows/compiler-build.yml @@ -246,7 +246,7 @@ jobs: - name: Install Python Packages run: - python -m pip install --upgrade pip + # python -m pip install --upgrade "pip<24.0" #pip24 not available on 3.7 pip install -r requirements.test.txt - name: Create Test Environment diff --git a/src/Native/src/kernels/CMakeLists.txt b/src/Native/src/kernels/CMakeLists.txt index bf704a7117..4561dd5a42 100644 --- a/src/Native/src/kernels/CMakeLists.txt +++ b/src/Native/src/kernels/CMakeLists.txt @@ -25,9 +25,9 @@ else() if(os_name STREQUAL "linux") target_link_libraries(kernels PRIVATE -lpthread) endif() - target_compile_definitions(kernels PRIVATE "-DNNCASE_HALIDE") + target_compile_definitions(kernels PRIVATE "-DNNCASE_HALIDE") endif() - + target_compile_definitions(kernels PUBLIC -DNNCASE_DLL -DNNCASE_SIMULATOR) set_property(TARGET kernels PROPERTY POSITION_INDEPENDENT_CODE ON) endif() @@ -38,7 +38,7 @@ if(ENABLE_OPENMP) endif() if(APPLE) - target_compile_options(kernels PRIVATE -Wno-gnu-zero-variadic-macro-arguments) + target_compile_options(kernels PRIVATE -Wno-gnu-zero-variadic-macro-arguments) endif(APPLE) diff --git a/src/Native/src/kernels/stackvm/optimized/concat.cpp b/src/Native/src/kernels/stackvm/optimized/concat.cpp index 178563b46d..94892fdb3a 100644 --- a/src/Native/src/kernels/stackvm/optimized/concat.cpp +++ b/src/Native/src/kernels/stackvm/optimized/concat.cpp @@ -134,7 +134,7 @@ result concat_impl(gsl::span inputs, T *output, out_ptr = output + offset(out_strides, out_index); const auto *in_ptr = reinterpret_cast(inputs[n]) + offset(in_strides[n], in_index); - memcpy(out_ptr, in_ptr, width * sizeof(T)); + opt_memcpy(out_ptr, in_ptr, width * sizeof(T)); }; auto concat_last_dim = [&](size_t dim) { diff --git a/src/Native/src/kernels/stackvm/optimized/riscv64/CMakeLists.txt b/src/Native/src/kernels/stackvm/optimized/riscv64/CMakeLists.txt index 0759b9e504..e69de29bb2 100644 --- a/src/Native/src/kernels/stackvm/optimized/riscv64/CMakeLists.txt +++ b/src/Native/src/kernels/stackvm/optimized/riscv64/CMakeLists.txt @@ -1 +0,0 @@ -cmake_minimum_required (VERSION 3.13) diff --git a/src/Native/src/kernels/stackvm/optimized/riscv64/binary.cpp b/src/Native/src/kernels/stackvm/optimized/riscv64/binary.cpp index e46eda8a28..2cf1caec0d 100644 --- a/src/Native/src/kernels/stackvm/optimized/riscv64/binary.cpp +++ b/src/Native/src/kernels/stackvm/optimized/riscv64/binary.cpp @@ -350,7 +350,7 @@ static int verify_shape_impl(gsl::span in_a_shape, if (in_b_shape[in_b_shape.size() - 1] == 1) { int len_b_leave = 1; - for (int i = index + 1; i < in_b_shape.size(); ++i) { + for (int i = index + 1; i < (int)in_b_shape.size(); ++i) { len_b_leave *= in_b_shape[i]; } if (len_b_leave != 1) { @@ -392,7 +392,7 @@ static int verify_shape(gsl::span in_a_shape, static gsl::span get_sample_span(gsl::span in_shape) { int not_one_index = 0; - for (int i = 0; i < in_shape.size(); ++i) { + for (int i = 0; i < (int)in_shape.size(); ++i) { if (in_shape[i] != 1) { not_one_index = i; break; @@ -439,7 +439,7 @@ get_sample_span(gsl::span in_shape) { (index != (int)(in_b_shape.size() - 1))) { \ int size_diff = in_a_shape.size() - in_b_shape.size(); \ int len_a_leave = 1; \ - for (int i = index + 1; i < in_b_shape.size(); ++i) { \ + for (int i = index + 1; i < (int)in_b_shape.size(); ++i) { \ len_a_leave *= in_a_shape[i + size_diff]; \ } \ for (int j = 0; j < outter_front_size; ++j) { \ @@ -470,7 +470,7 @@ get_sample_span(gsl::span in_shape) { (index != (int)(in_a_shape.size() - 1))) { \ int size_diff = in_b_shape.size() - in_a_shape.size(); \ int len_b_leave = 1; \ - for (int i = index + 1; i < in_a_shape.size(); ++i) { \ + for (int i = index + 1; i < (int)in_a_shape.size(); ++i) { \ len_b_leave *= in_b_shape[i + size_diff]; \ } \ for (int j = 0; j < outter_front_size; ++j) { \ diff --git a/src/Native/src/kernels/stackvm/optimized/riscv64/reduce.cpp b/src/Native/src/kernels/stackvm/optimized/riscv64/reduce.cpp index 54ee3eaed7..86908a2391 100644 --- a/src/Native/src/kernels/stackvm/optimized/riscv64/reduce.cpp +++ b/src/Native/src/kernels/stackvm/optimized/riscv64/reduce.cpp @@ -119,7 +119,7 @@ static int get_parameter(gsl::span in_shape, } int _sum1 = (max_index + min_index) * (max_index - min_index + 1) >> 1; int _sum2 = axis[0]; - for (int i = 1; i < axis.size(); ++i) { + for (int i = 1; i < (int)axis.size(); ++i) { _sum2 += axis[i]; } if (_sum2 != _sum1) { diff --git a/src/Native/src/runtime/stackvm/op_profile.cpp b/src/Native/src/runtime/stackvm/op_profile.cpp index a21973c55e..bee22687ec 100644 --- a/src/Native/src/runtime/stackvm/op_profile.cpp +++ b/src/Native/src/runtime/stackvm/op_profile.cpp @@ -21,6 +21,15 @@ #ifdef NNCASE_BAREMETAL double get_ms_time(); +#elif defined(LINUX_RUNTIME) +#include +double get_ms_time() { + auto now = std::chrono::high_resolution_clock::now(); + auto duration = + std::chrono::duration_cast>( + now.time_since_epoch()); + return duration.count(); +} #else double get_ms_time() { return (double)clock() / 1000; } #endif diff --git a/toolchains/k230.linux.toolchain.cmake b/toolchains/k230.linux.toolchain.cmake index a501969ba5..4091cb2440 100644 --- a/toolchains/k230.linux.toolchain.cmake +++ b/toolchains/k230.linux.toolchain.cmake @@ -10,9 +10,9 @@ if(NOT RISCV_ROOT_PATH) endif() set(RISCV_ROOT_PATH ${RISCV_ROOT_PATH} CACHE STRING "root path to riscv toolchain") -set(CMAKE_C_COMPILER "${RISCV_ROOT_PATH}/bin/riscv64-unknown-linux-musl-gcc") -set(CMAKE_CXX_COMPILER "${RISCV_ROOT_PATH}/bin/riscv64-unknown-linux-musl-g++") -set(CMAKE_FIND_ROOT_PATH "${RISCV_ROOT_PATH}/riscv64-unknown-linux-musl") +set(CMAKE_C_COMPILER "${RISCV_ROOT_PATH}/bin/riscv64-unknown-linux-gnu-gcc") +set(CMAKE_CXX_COMPILER "${RISCV_ROOT_PATH}/bin/riscv64-unknown-linux-gnu-g++") +set(CMAKE_FIND_ROOT_PATH "${RISCV_ROOT_PATH}/riscv64-unknown-linux-gnu") set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) @@ -29,4 +29,6 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=rv64imafdcv -mabi=lp64d -mcmodel= set(BUILDING_RUNTIME ON) set(ENABLE_K230_RUNTIME ON) -set(BUILD_SHARED_LIBS OFF) \ No newline at end of file +set(BUILD_SHARED_LIBS OFF) + +add_definitions(-DLINUX_RUNTIME) \ No newline at end of file diff --git a/toolchains/k230.rtos.toolchain.cmake b/toolchains/k230.rtos.toolchain.cmake new file mode 100644 index 0000000000..12b1b2e8b6 --- /dev/null +++ b/toolchains/k230.rtos.toolchain.cmake @@ -0,0 +1,33 @@ +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR riscv64) + +if(DEFINED ENV{RISCV_ROOT_PATH}) + file(TO_CMAKE_PATH $ENV{RISCV_ROOT_PATH} RISCV_ROOT_PATH) +endif() + +if(NOT RISCV_ROOT_PATH) + message(FATAL_ERROR "RISCV_ROOT_PATH env must be defined for rtos runtime") +endif() + +set(RISCV_ROOT_PATH ${RISCV_ROOT_PATH} CACHE STRING "root path to riscv toolchain") +set(CMAKE_C_COMPILER "${RISCV_ROOT_PATH}/bin/riscv64-unknown-linux-musl-gcc") +set(CMAKE_CXX_COMPILER "${RISCV_ROOT_PATH}/bin/riscv64-unknown-linux-musl-g++") +set(CMAKE_FIND_ROOT_PATH "${RISCV_ROOT_PATH}/riscv64-unknown-linux-musl") + + +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(ENABLE_VULKAN_RUNTIME OFF) +set(ENABLE_OPENMP OFF) +set(ENABLE_HALIDE OFF) +set(DEFAULT_BUILTIN_RUNTIMES OFF) +set(DEFAULT_SHARED_RUNTIME_TENSOR_PLATFORM_IMPL OFF) +set(BUILD_BENCHMARK OFF) + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=rv64imafdcv -mabi=lp64d -mcmodel=medany") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=rv64imafdcv -mabi=lp64d -mcmodel=medany") + +set(BUILDING_RUNTIME ON) +set(ENABLE_K230_RUNTIME ON) +set(BUILD_SHARED_LIBS OFF) \ No newline at end of file