ext,stdlib: Update integration of DRAMSys
The latest version of DRAMSys required several API changes which were applied in this commit. Also, the README for the usage of DRAMSys has been updated. The updated version fixes a bug in DRAMSys that caused some full-system simulations to loop endlessly. GitHub Issue: https://github.com/gem5/gem5/issues/1452
This commit is contained in:
@@ -27,12 +27,8 @@
|
||||
cmake_minimum_required(VERSION 3.22.0)
|
||||
project(DRAMSys)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
|
||||
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
|
||||
add_library(systemc INTERFACE)
|
||||
|
||||
target_include_directories(systemc INTERFACE "${SCONS_SOURCE_DIR}/src/systemc/ext/systemc_home/include")
|
||||
|
||||
add_library(SystemC::systemc ALIAS systemc)
|
||||
|
||||
add_subdirectory(DRAMSys)
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
Follow these steps to build DRAMSys as part of gem5
|
||||
|
||||
1. Go to ext/dramsys (this directory)
|
||||
2. Clone DRAMSys: 'git clone https://github.com/tukl-msd/DRAMSys --branch v5.0 --depth 1 DRAMSys'
|
||||
2. Clone DRAMSys: 'git clone https://github.com/tukl-msd/DRAMSys --branch v5.1 --depth 1 DRAMSys'
|
||||
|
||||
The latest verified working version is v5.0, but later versions might work too.
|
||||
The latest verified working version is v5.1, but later versions might work too.
|
||||
gem5 will automatically pick up DRAMSys as an external module when it is rebuilt.
|
||||
|
||||
If you wish to run a simulation using the gem5 processor cores, make sure to enable the storage mode in DRAMSys.
|
||||
This is done by setting the value of the "StoreMode" key to "Store" in the base configuration file.
|
||||
Those configuration file can be found in 'DRAMSys/library/resources/configs/simulator'.
|
||||
Those configuration file can be found in 'DRAMSys/configs/simconfig'.
|
||||
|
||||
Currently, DRAMSys is only supported in conjunction with a cache. Running DRAMSys in Release mode without caches will silently fail!
|
||||
Currently, DRAMSys is only supported in conjunction with a cache. Running DRAMSys in Release mode without a cache will silently fail!
|
||||
|
||||
Note: DRAMSys requires cmake version >= 3.24. This is not available via apt on Ubuntu 20.04 or 22.04.
|
||||
See `util/dockerfiles/ubuntu-20.04_all-dependencies/Dockerfile` for an example of how to install cmake 3.24.
|
||||
|
||||
@@ -74,13 +74,13 @@ subprocess.run(
|
||||
check=True
|
||||
)
|
||||
|
||||
env.Append(LIBS="DRAMSys_libdramsys")
|
||||
env.Append(LIBS="liblibdramsys")
|
||||
env.Append(LIBPATH=Dir("./DRAMSys/src/libdramsys").abspath)
|
||||
|
||||
env.Append(LIBS=["libpim_vm", "libpim-vm-cxx"])
|
||||
env.Append(LIBPATH=Dir("./DRAMSys").abspath)
|
||||
|
||||
env.Append(LIBS="DRAMSys_Configuration")
|
||||
env.Append(LIBS="libconfiguration")
|
||||
env.Append(LIBPATH=Dir("./DRAMSys/src/configuration").abspath)
|
||||
|
||||
env.Append(LIBS="sqlite3")
|
||||
|
||||
9
ext/dramsys/cmake/FindSystemCLanguage.cmake
Normal file
9
ext/dramsys/cmake/FindSystemCLanguage.cmake
Normal file
@@ -0,0 +1,9 @@
|
||||
if (NOT SystemCLanguage_FOUND)
|
||||
add_library(systemc INTERFACE)
|
||||
|
||||
target_include_directories(systemc INTERFACE "${SCONS_SOURCE_DIR}/src/systemc/ext/systemc_home/include")
|
||||
|
||||
add_library(SystemC::systemc ALIAS systemc)
|
||||
|
||||
set(SystemCLanguage_FOUND TRUE)
|
||||
endif()
|
||||
Reference in New Issue
Block a user