This is an automated email from the ASF dual-hosted git repository.
moreau pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git
The following commit(s) were added to refs/heads/main by this push:
new 04bdd32 VTA cmake change to include Verilator header for building
tsim library (#8797)
04bdd32 is described below
commit 04bdd32281c4ae50d086e4469fd6a9ee6f0c93b6
Author: Anton Sorokin <[email protected]>
AuthorDate: Thu Aug 26 10:21:18 2021 -0700
VTA cmake change to include Verilator header for building tsim library
(#8797)
* VTA cmake file require Verilator include for tsim target. VTA module.cc
uses svOpenArrayHandle to send wide data through DPI
* Refactor Verialtor check conditions
* Build TSIM only for CPU target. CPU target don't use -Werror to compile
with Verilator. Jenkinsfile to have tvm_multilib_tsim defined for CPU build
target.
* remove build/libvta_tsim.so from non tsim targeting builds
* Revert to enable TSIM build i386. Revert to -Werror in CPU config. Remove
verilator CPP objects from cmake config for tsim and put them as include into
vta module.cc to avoid Verilator compilation warnings
---
Jenkinsfile | 8 +++++---
cmake/modules/VTA.cmake | 13 ++++++++++++-
tests/scripts/task_config_build_arm.sh | 1 -
tests/scripts/task_config_build_gpu.sh | 1 -
tests/scripts/task_config_build_i386.sh | 2 +-
tests/scripts/task_config_build_wasm.sh | 1 -
6 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/Jenkinsfile b/Jenkinsfile
index 9eafb44..fa16292 100755
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -73,10 +73,12 @@ tvm_runtime = "build/libtvm_runtime.so, build/config.cmake"
tvm_lib = "build/libtvm.so, " + tvm_runtime
// LLVM upstream lib
tvm_multilib = "build/libtvm.so, " +
- "build/libvta_tsim.so, " +
"build/libvta_fsim.so, " +
tvm_runtime
+tvm_multilib_tsim = "build/libvta_tsim.so, " +
+ tvm_multilib
+
// command to start a docker container
docker_run = 'docker/bash.sh'
// timeout in minutes
@@ -218,7 +220,7 @@ stage('Build') {
init_git()
sh "${docker_run} ${ci_cpu} ./tests/scripts/task_config_build_cpu.sh"
make(ci_cpu, 'build', '-j2')
- pack_lib('cpu', tvm_multilib)
+ pack_lib('cpu', tvm_multilib_tsim)
timeout(time: max_time, unit: 'MINUTES') {
sh "${docker_run} ${ci_cpu} ./tests/scripts/task_ci_setup.sh"
sh "${docker_run} ${ci_cpu} ./tests/scripts/task_python_unittest.sh"
@@ -252,7 +254,7 @@ stage('Build') {
init_git()
sh "${docker_run} ${ci_i386} ./tests/scripts/task_config_build_i386.sh"
make(ci_i386, 'build', '-j2')
- pack_lib('i386', tvm_multilib)
+ pack_lib('i386', tvm_multilib_tsim)
}
}
},
diff --git a/cmake/modules/VTA.cmake b/cmake/modules/VTA.cmake
index e520e62..1f9d08b 100644
--- a/cmake/modules/VTA.cmake
+++ b/cmake/modules/VTA.cmake
@@ -73,6 +73,17 @@ elseif(PYTHON)
# Cycle accurate simulator driver build
if(USE_VTA_TSIM)
+ if(DEFINED ENV{VERILATOR_INC_DIR})
+ set(VERILATOR_INC_DIR $ENV{VERILATOR_INC_DIR})
+ elseif (EXISTS /usr/local/share/verilator/include)
+ set(VERILATOR_INC_DIR /usr/local/share/verilator/include)
+ elseif (EXISTS /usr/share/verilator/include)
+ set(VERILATOR_INC_DIR /usr/share/verilator/include)
+ else()
+ message(STATUS "Verilator not found in
/usr/local/share/verilator/include")
+ message(STATUS "Verilator not found in /usr/share/verilator/include")
+ message(FATAL_ERROR "Cannot find Verilator, VERILATOR_INC_DIR is not
defined")
+ endif()
# Add tsim driver sources
file(GLOB TSIM_RUNTIME_SRCS ${VTA_HW_PATH}/src/*.cc)
file(GLOB TSIM_RUNTIME_SRCS vta/runtime/*.cc)
@@ -81,7 +92,7 @@ elseif(PYTHON)
list(APPEND TSIM_RUNTIME_SRCS ${VTA_HW_PATH}/src/vmem/virtual_memory.cc)
# Target lib: vta_tsim
add_library(vta_tsim SHARED ${TSIM_RUNTIME_SRCS})
- target_include_directories(vta_tsim SYSTEM PUBLIC ${VTA_HW_PATH}/include)
+ target_include_directories(vta_tsim SYSTEM PUBLIC ${VTA_HW_PATH}/include
${VERILATOR_INC_DIR} ${VERILATOR_INC_DIR}/vltstd)
target_compile_definitions(vta_tsim PUBLIC
DMLC_USE_LOGGING_LIBRARY=<tvm/runtime/logging.h>)
foreach(__def ${VTA_DEFINITIONS})
string(SUBSTRING ${__def} 3 -1 __strip_def)
diff --git a/tests/scripts/task_config_build_arm.sh
b/tests/scripts/task_config_build_arm.sh
index cb42b9a..47fa243 100755
--- a/tests/scripts/task_config_build_arm.sh
+++ b/tests/scripts/task_config_build_arm.sh
@@ -31,7 +31,6 @@ echo set\(USE_PROFILER ON\) >> config.cmake
echo set\(USE_LLVM llvm-config-8\) >> config.cmake
echo set\(CMAKE_CXX_COMPILER g++\) >> config.cmake
echo set\(CMAKE_CXX_FLAGS -Werror\) >> config.cmake
-echo set\(USE_VTA_TSIM ON\) >> config.cmake
echo set\(USE_VTA_FSIM ON\) >> config.cmake
echo set\(USE_ARM_COMPUTE_LIB ON\) >> config.cmake
echo set\(USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR "/opt/acl"\) >> config.cmake
diff --git a/tests/scripts/task_config_build_gpu.sh
b/tests/scripts/task_config_build_gpu.sh
index 6e20087..5f86476 100755
--- a/tests/scripts/task_config_build_gpu.sh
+++ b/tests/scripts/task_config_build_gpu.sh
@@ -38,7 +38,6 @@ echo set\(USE_GRAPH_EXECUTOR ON\) >> config.cmake
echo set\(USE_STACKVM_RUNTIME ON\) >> config.cmake
echo set\(USE_PROFILER ON\) >> config.cmake
echo set\(USE_ANTLR ON\) >> config.cmake
-echo set\(USE_VTA_TSIM ON\) >> config.cmake
echo set\(USE_VTA_FSIM ON\) >> config.cmake
echo set\(USE_BLAS openblas\) >> config.cmake
echo set\(CMAKE_CXX_COMPILER g++\) >> config.cmake
diff --git a/tests/scripts/task_config_build_i386.sh
b/tests/scripts/task_config_build_i386.sh
index ce244fa..2982596 100755
--- a/tests/scripts/task_config_build_i386.sh
+++ b/tests/scripts/task_config_build_i386.sh
@@ -31,8 +31,8 @@ echo set\(USE_PROFILER ON\) >> config.cmake
echo set\(USE_LLVM llvm-config-4.0\) >> config.cmake
echo set\(CMAKE_CXX_COMPILER g++\) >> config.cmake
echo set\(CMAKE_CXX_FLAGS -Werror\) >> config.cmake
-echo set\(USE_VTA_TSIM ON\) >> config.cmake
echo set\(USE_VTA_FSIM ON\) >> config.cmake
+echo set\(USE_VTA_TSIM ON\) >> config.cmake
echo set\(USE_VERILATOR ON\) >> config.cmake
echo set\(USE_CCACHE OFF\) >> config.cmake
diff --git a/tests/scripts/task_config_build_wasm.sh
b/tests/scripts/task_config_build_wasm.sh
index 490e944..9a1edbc 100755
--- a/tests/scripts/task_config_build_wasm.sh
+++ b/tests/scripts/task_config_build_wasm.sh
@@ -32,6 +32,5 @@ echo set\(USE_ANTLR ON\) >> config.cmake
echo set\(CMAKE_CXX_COMPILER g++\) >> config.cmake
echo set\(CMAKE_CXX_FLAGS -Werror\) >> config.cmake
echo set\(HIDE_PRIVATE_SYMBOLS ON\) >> config.cmake
-echo set\(USE_VTA_TSIM ON\) >> config.cmake
echo set\(USE_VTA_FSIM ON\) >> config.cmake
echo set\(USE_CCACHE OFF\) >> config.cmake