diff --git a/DRAMSys/analyzer/scripts/plots.py b/DRAMSys/analyzer/scripts/plots.py index f953c4f4..ef672088 100755 --- a/DRAMSys/analyzer/scripts/plots.py +++ b/DRAMSys/analyzer/scripts/plots.py @@ -165,7 +165,7 @@ def generatePlots(pathToTrace): cursor.execute(" SELECT WindowSize FROM GeneralInfo") windowSize = float(cursor.fetchone()[0]) if(windowSize == 0): - outputFiles = "No output file created" + outputFiles = "No output file created. Check WindowSize and EnableWindowing configs." else: cursor.execute(" SELECT TraceEnd FROM GeneralInfo ") traceEnd = float(cursor.fetchone()[0]) diff --git a/DRAMSys/analyzer/traceAnalyzer.pro b/DRAMSys/analyzer/traceAnalyzer.pro index 177e2b4d..057ed8f8 100644 --- a/DRAMSys/analyzer/traceAnalyzer.pro +++ b/DRAMSys/analyzer/traceAnalyzer.pro @@ -22,12 +22,12 @@ unix:!macx { macx: { CONFIG += c++11 QMAKE_CXXFLAGS += -std=c++0x -stdlib=libc++ -DMAC - QMAKE_LFLAGS += -F/opt/qwt-6.1.2/lib - LIBS += -F/opt/qwt-6.1.2/lib/ -framework qwt - INCLUDEPATH += /opt/qwt-6.1.2/lib/qwt.framework/Headers - DEPENDPATH += /opt/qwt-6.1.2 - INCLUDEPATH += /usr/local/Cellar/python3/3.5.2_1/Frameworks/Python.framework/Versions/3.5/include/python3.5m - LIBS += -L/usr/local/Cellar/python3/3.5.2_1/Frameworks/Python.framework/Versions/3.5/lib -lpython3.5 + QMAKE_LFLAGS += -F$$(LIBQWT_HOME) + LIBS += -F$$(LIBQWT_HOME) -framework qwt + INCLUDEPATH += $$(LIBQWT_HEADERS) + DEPENDPATH += $$replace(LIBQWT_HOME, lib, ) + INCLUDEPATH += $$(PYTHON_HEADERS) + LIBS += -L$$(PYTHON_HOME) -lpython3.5 } # QWT library and header files diff --git a/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml new file mode 100644 index 00000000..39d66692 --- /dev/null +++ b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_rbc.xml b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_rbc.xml new file mode 100644 index 00000000..46cb5158 --- /dev/null +++ b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_rbc.xml @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_brc.xml b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_brc.xml new file mode 100644 index 00000000..6f384970 --- /dev/null +++ b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_brc.xml @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_rbc.xml b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_rbc.xml new file mode 100644 index 00000000..7f9e64fe --- /dev/null +++ b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_rbc.xml @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/DRAMSys/simulator/resources/resources.pri b/DRAMSys/simulator/resources/resources.pri index cc46c3c4..bd1a5c7a 100644 --- a/DRAMSys/simulator/resources/resources.pri +++ b/DRAMSys/simulator/resources/resources.pri @@ -48,6 +48,7 @@ OTHER_FILES += resources/traces/mediabench-g721encode_32.stl OTHER_FILES += resources/traces/small.stl OTHER_FILES += resources/traces/chstone-motion_32.stl OTHER_FILES += resources/traces/mediabench-adpcmdecode_32.stl +OTHER_FILES += resources/traces/ddr3_example.stl # mcconfigs OTHER_FILES += resources/configs/mcconfigs/fifoStrict.xml @@ -66,10 +67,52 @@ OTHER_FILES += resources/configs/memspecs/MatzesWideIO.xml OTHER_FILES += resources/configs/memspecs/DDR4.xml OTHER_FILES += resources/configs/memspecs/WideIO.xml OTHER_FILES += resources/configs/memspecs/MatzesWideIO-short.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1600_8bit_G.xml +OTHER_FILES += resources/configs/memspecs/JEDEC_256Mb_WIDEIO_SDR-200_128bit.xml +OTHER_FILES += resources/configs/memspecs/JEDEC_256Mb_WIDEIO_SDR-266_128bit.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR2-1066_16bit_H.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR2-800_16bit_H.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_16bit_G.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_16bit_G_2s.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_16bit_G_3s.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_16bit_G_mu.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_8bit_G.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_8bit_G_2s.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_8bit_G_3s.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_8bit_G_mu.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1600_8bit_G.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1600_8bit_G_2s.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1600_8bit_G_3s.xml +OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1600_8bit_G_mu.xml +OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1066_8bit_D.xml +OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1066_8bit_D_2s.xml +OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1066_8bit_D_3s.xml +OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1066_8bit_D_mu.xml +OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1600_16bit_D.xml +OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1600_16bit_D_2s.xml +OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1600_16bit_D_3s.xml +OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1600_16bit_D_mu.xml +OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_LPDDR-266_16bit_A.xml +OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_LPDDR-333_16bit_A.xml +OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_LPDDR2-1066-S4_16bit_A.xml +OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_LPDDR2-800-S4_16bit_A.xml +OTHER_FILES += resources/configs/memspecs/MICRON_4Gb_DDR4-1866_8bit_A.xml +OTHER_FILES += resources/configs/memspecs/MICRON_4Gb_DDR4-2400_8bit_A.xml +OTHER_FILES += resources/configs/memspecs/MICRON_4Gb_LPDDR3-1333_32bit_A.xml +OTHER_FILES += resources/configs/memspecs/MICRON_4Gb_LPDDR3-1600_32bit_A.xml +OTHER_FILES += resources/configs/memspecs/SAMSUNG_K4B1G1646E_1Gb_DDR3-1600_16bit.xml + + # address mapping configs OTHER_FILES += resources/configs/amconfigs/am_ddr3.xml -OTHER_FILES += resources/configs/amconfigs/am_ddr4.xml +OTHER_FILES += resources/configs/amconfigs/am_ddr3_x16_brc.xml +OTHER_FILES += resources/configs/amconfigs/am_ddr3_x16_rbc.xml +OTHER_FILES += resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml +OTHER_FILES += resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_rbc.xml +OTHER_FILES += resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_brc.xml +OTHER_FILES += resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_rbc.xml +OTHER_FILES += resources/configs/amconfigs/resources/configs/amconfigs/am_ddr4.xml OTHER_FILES += resources/configs/amconfigs/am_highHits.xml OTHER_FILES += resources/configs/amconfigs/am_highPara.xml OTHER_FILES += resources/configs/amconfigs/am_wideio.xml diff --git a/DRAMSys/simulator/resources/simulations/ddr3-example.xml b/DRAMSys/simulator/resources/simulations/ddr3-example.xml index 4368ca7b..643716ef 100644 --- a/DRAMSys/simulator/resources/simulations/ddr3-example.xml +++ b/DRAMSys/simulator/resources/simulations/ddr3-example.xml @@ -5,7 +5,7 @@ - + @@ -29,21 +29,33 @@ + + + - + + + + + + - chstone-adpcm_32.stl + + ddr3_example.stl diff --git a/DRAMSys/simulator/src/controller/core/ControllerCore.cpp b/DRAMSys/simulator/src/controller/core/ControllerCore.cpp index 8de6d3f5..da9df026 100644 --- a/DRAMSys/simulator/src/controller/core/ControllerCore.cpp +++ b/DRAMSys/simulator/src/controller/core/ControllerCore.cpp @@ -139,7 +139,7 @@ void ControllerCore::triggerRefresh(tlm::tlm_generic_payload& payload) powerDownManager->wakeUpForRefresh(bank, time); //expects PDNA and PDNP to exit without delay bool pdnpToSrefTransition = false; if (config.PowerDownMode == EPowerDownMode::Staggered) { - pdnpToSrefTransition = state->getLastCommand(Command::PDNPX,bank).getStart() >= time; + pdnpToSrefTransition = state->getLastCommand(Command::PDNPX,bank).getStart() >= time; } if (pdnpToSrefTransition) { powerDownManager->sleep(bank,time); diff --git a/DRAMSys/simulator/src/simulation/Dram.h b/DRAMSys/simulator/src/simulation/Dram.h index 0641ed23..bb4a3d2b 100644 --- a/DRAMSys/simulator/src/simulation/Dram.h +++ b/DRAMSys/simulator/src/simulation/Dram.h @@ -244,9 +244,9 @@ struct Dram : sc_module cout << name() << string("\tTotal Time: \t") <<(endTime-startTime).to_string() << endl; //cout << name() << string("\tTotal IDLE: \t") <"-std=c++11 -stdlib=libc++" "-stdlib=libc++"" - ; +$ cd /Library/Frameworks +$ sudo ln -s /opt/qwt-6.1.2/lib/qwt.framework/ . +``` + +- The boost library can be installed manually or through homebrew: + +Manually: Install boost lib (filesystem & system) in /opt/boost -``` -Then compile and install it: ``` bash -./b2 toolset=clang-11 -sudo ./b2 install -``` -DRAMSys and Analyzer only runs if the following is configured in the project settings: +$ ./bootstrap.sh --prefix=/opt/boost --with-libraries=filesystem,system +$ sudo ./b2 install ``` -DYLD_LIBRARY_PATH=/opt/boost/lib -LIBQWT_HEADERS=/opt/local/include -LIBQWT_HOME=/opt/local/lib -PYTHON_HEADERS=/opt/local/include -PYTHON_HOME=/opt/local/lib -SYSTEMC_TARGET_ARCH=macosx64 -``` -For the trace analyzer the file /opt/local/Library/Frameworks/Python.framework/Versions/3.4/include/python3.4m/pyport.h has to be changed like this: https://trac.macports.org/attachment/ticket/44288/issue10910-workaround.txt + +Homebrew: Install boost lib (all, which consumes large storage) in +``` +/usr/local/Cellar +``` + +``` bash +$ brew install boost +``` + + +- Export correct Environment Variables in your terminal's profile, e.g: + +``` bash +# Setting for DRAMSys +# SystemC via official source +export SYSTEMC_HOME=/opt/systemc +export SYSTEMC_TARGET_ARCH=macosx64 +# SystemC via Homebrew +#export SYSTEMC_HOME=/usr/local/Cellar/systemc/2.3.1 +#export SYSTEMC_TARGET_ARCH=macosx64 + +# Python via official pkg +export PYTHON_HOME=/Library/Frameworks/Python.framework/Versions/3.5/lib +export PYTHON_HEADERS=/Library/Frameworks/Python.framework/Versions/3.5/Headers + +# Python3 via Homebrew +#export PYTHON_HOME=/usr/local/Cellar/python3/3.5.2_2/Frameworks/Python.framework/Versions/3.5/lib +#export PYTHON_HEADERS=/usr/local/Cellar/python3/3.5.2_2/Frameworks/Python.framework/Versions/3.5/Headers + +export LIBQWT_HOME=/opt/qwt-6.1.4/lib +export LIBQWT_HEADERS=/opt/qwt-6.1.4/lib/qwt.framework/Headers +export LIBBOOST_HOME=/opt/boost/lib +export LIBBOOST_HEADERS=/opt/boost/include + +# Add Boost Lib into Dynamic Lib Path +DYLD_LIBRARY_PATH="/opt/boost/lib:${DYLD_LIBRARY_PATH}" +export DYLD_LIBRARY_PATH +``` + +- For the trace analyzer the file: +``` +/opt/local/Library/Frameworks/Python.framework/Versions/3.5/include/python3.4m/pyport.h +``` +has to be changed like [this](https://trac.macports.org/attachment/ticket/44288/issue10910-workaround.txt) + +- Install package [xerces](http://xerces.apache.org/mirrors.cgi) if your system does not have. + +- Type following command inside your dram.vp.system folder: + +``` bash +$ mkdir build +$ qmake ../DRAMSys/dram.vp.system.pro +$ make -j +``` + +Now you can try to run DramSys and traceAnalyzer App inside folder simulator and analyzer, respectively ### DRAMSys Thermal Simulation The thermal simulation is performed by a **3D-ICE** [8] server accessed through the network. Therefore users interested in thermal simulation during their DRAMSys simulations need to make sure they have a 3D-ICE server up and -running before starting. For more information about 3D-ICE visit the official -website http://esl.epfl.ch/3D-ICE. +running before starting. For more information about 3D-ICE visit the [official website](http://esl.epfl.ch/3D-ICE). #### Installing the lastest 3D-ICE version -Download the lastest version. Make sure you got version 2.2.6 or greater: +[Download](http://esl.epfl.ch/3d-ice/download.html) the lastest version. Make sure you got version 2.2.6 or greater: ``` bash $ wget http://esl.epfl.ch/files/content/sites/esl/files/3dice/releases/3d-ice-latest.zip $ tar -xvzf 3d-ice-latest.zip ``` -Install SuperLU dependencies: +Install [SuperLU](http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_5.2.1.tar.gz) dependencies: ``` bash $ sudo apt-get install build-essential git bison flex libblas-dev