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

Reply via email to