gem5-dev@gem5.org

The gem5 Developer List

View all threads

[S] Change in gem5/gem5[develop]: stdlib,configs: Only import DRAMSys components if compiled

BB
Bobby Bruce (Gerrit)
Wed, Mar 22, 2023 7:22 PM

Bobby Bruce has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/69198?usp=email )

Change subject: stdlib,configs: Only import DRAMSys components if compiled
......................................................................

stdlib,configs: Only import DRAMSys components if compiled

DRAMSys is an optional add-on for gem5. The dramsys memory components
are therefore only functional when DRAMSys is properly incorporated.
This patch adds the necessary compilation guards.

The doc-strings in the example scripts are updated to make this clear.

Change-Id: I5649010943d9c1115676ae310af78f16104f56ca

M configs/example/gem5_library/dramsys/arm-hello-dramsys.py
M configs/example/gem5_library/dramsys/dramsys-traffic.py
M src/python/SConscript
M src/python/gem5/components/memory/init.py
4 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/configs/example/gem5_library/dramsys/arm-hello-dramsys.py
b/configs/example/gem5_library/dramsys/arm-hello-dramsys.py
index f8f2498..62a55e3 100644
--- a/configs/example/gem5_library/dramsys/arm-hello-dramsys.py
+++ b/configs/example/gem5_library/dramsys/arm-hello-dramsys.py
@@ -27,6 +27,10 @@
"""
This gem5 configuation script creates a simple board to run an ARM
"hello world" binary using the DRAMSys simulator.
+
+Important Note: DRAMSys must be compiled into the gem5 binary to use
the
+DRRAMSys simulator. Please consult 'ext/dramsys/README' on how to compile
+correctly. If this is not done correctly this script will run with error.
"""

from gem5.isas import ISA
diff --git a/configs/example/gem5_library/dramsys/dramsys-traffic.py
b/configs/example/gem5_library/dramsys/dramsys-traffic.py
index 70d4cb4..ee9ad72 100644
--- a/configs/example/gem5_library/dramsys/dramsys-traffic.py
+++ b/configs/example/gem5_library/dramsys/dramsys-traffic.py
@@ -26,6 +26,10 @@
"""
This script is used for running a traffic generator connected to the
DRAMSys simulator.
+
+Important Note: DRAMSys must be compiled into the gem5 binary to use
the
+DRRAMSys simulator. Please consult 'ext/dramsys/README' on how to compile
+correctly. If this is not done correctly this script will run with error.
"""
import m5
from gem5.components.memory import DRAMSysMem
diff --git a/src/python/SConscript b/src/python/SConscript
index a1b5818..3b00b34 100644
--- a/src/python/SConscript
+++ b/src/python/SConscript
@@ -170,7 +170,10 @@
PySource('gem5.components.memory', 'gem5/components/memory/init.py')

PySource('gem5.components.memory', 'gem5/components/memory/abstract_memory_system.py')
PySource('gem5.components.memory', 'gem5/components/memory/dramsim_3.py')
-PySource('gem5.components.memory', 'gem5/components/memory/dramsys.py')
+
+if env['HAVE_DRAMSYS']:

  • PySource('gem5.components.memory', 'gem5/components/memory/dramsys.py')
  • PySource('gem5.components.memory', 'gem5/components/memory/simple.py')
    PySource('gem5.components.memory', 'gem5/components/memory/memory.py')

PySource('gem5.components.memory', 'gem5/components/memory/single_channel.py')
diff --git a/src/python/gem5/components/memory/init.py
b/src/python/gem5/components/memory/init.py
index 1c94a2c..9f13157 100644
--- a/src/python/gem5/components/memory/init.py
+++ b/src/python/gem5/components/memory/init.py
@@ -34,8 +34,15 @@
from .multi_channel import DualChannelDDR4_2400
from .multi_channel import DualChannelLPDDR3_1600
from .hbm import HBM2Stack
-from .dramsys import DRAMSysMem
-from .dramsys import DRAMSys_DDR4_1866
-from .dramsys import DRAMSys_DDR3_1600
-from .dramsys import DRAMSys_LPDDR4_3200
-from .dramsys import DRAMSys_HBM2
+
+try:

  • from .dramsys import DRAMSysMem
  • from .dramsys import DRAMSys_DDR4_1866
  • from .dramsys import DRAMSys_DDR3_1600
  • from .dramsys import DRAMSys_LPDDR4_3200
  • from .dramsys import DRAMSys_HBM2
    +except:
  • In the case that DRAMSys is not compiled into the gem5 binary,

importing

  • DRAMSys components will fail. This try-exception statement is needed

to

  • ignore these imports in this case.

  • pass

--
To view, visit
https://gem5-review.googlesource.com/c/public/gem5/+/69198?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I5649010943d9c1115676ae310af78f16104f56ca
Gerrit-Change-Number: 69198
Gerrit-PatchSet: 1
Gerrit-Owner: Bobby Bruce bbruce@ucdavis.edu
Gerrit-MessageType: newchange

Bobby Bruce has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/69198?usp=email ) Change subject: stdlib,configs: Only import DRAMSys components if compiled ...................................................................... stdlib,configs: Only import DRAMSys components if compiled DRAMSys is an optional add-on for gem5. The dramsys memory components are therefore only functional when DRAMSys is properly incorporated. This patch adds the necessary compilation guards. The doc-strings in the example scripts are updated to make this clear. Change-Id: I5649010943d9c1115676ae310af78f16104f56ca --- M configs/example/gem5_library/dramsys/arm-hello-dramsys.py M configs/example/gem5_library/dramsys/dramsys-traffic.py M src/python/SConscript M src/python/gem5/components/memory/__init__.py 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/configs/example/gem5_library/dramsys/arm-hello-dramsys.py b/configs/example/gem5_library/dramsys/arm-hello-dramsys.py index f8f2498..62a55e3 100644 --- a/configs/example/gem5_library/dramsys/arm-hello-dramsys.py +++ b/configs/example/gem5_library/dramsys/arm-hello-dramsys.py @@ -27,6 +27,10 @@ """ This gem5 configuation script creates a simple board to run an ARM "hello world" binary using the DRAMSys simulator. + +**Important Note**: DRAMSys must be compiled into the gem5 binary to use the +DRRAMSys simulator. Please consult 'ext/dramsys/README' on how to compile +correctly. If this is not done correctly this script will run with error. """ from gem5.isas import ISA diff --git a/configs/example/gem5_library/dramsys/dramsys-traffic.py b/configs/example/gem5_library/dramsys/dramsys-traffic.py index 70d4cb4..ee9ad72 100644 --- a/configs/example/gem5_library/dramsys/dramsys-traffic.py +++ b/configs/example/gem5_library/dramsys/dramsys-traffic.py @@ -26,6 +26,10 @@ """ This script is used for running a traffic generator connected to the DRAMSys simulator. + +**Important Note**: DRAMSys must be compiled into the gem5 binary to use the +DRRAMSys simulator. Please consult 'ext/dramsys/README' on how to compile +correctly. If this is not done correctly this script will run with error. """ import m5 from gem5.components.memory import DRAMSysMem diff --git a/src/python/SConscript b/src/python/SConscript index a1b5818..3b00b34 100644 --- a/src/python/SConscript +++ b/src/python/SConscript @@ -170,7 +170,10 @@ PySource('gem5.components.memory', 'gem5/components/memory/__init__.py') PySource('gem5.components.memory', 'gem5/components/memory/abstract_memory_system.py') PySource('gem5.components.memory', 'gem5/components/memory/dramsim_3.py') -PySource('gem5.components.memory', 'gem5/components/memory/dramsys.py') + +if env['HAVE_DRAMSYS']: + PySource('gem5.components.memory', 'gem5/components/memory/dramsys.py') + PySource('gem5.components.memory', 'gem5/components/memory/simple.py') PySource('gem5.components.memory', 'gem5/components/memory/memory.py') PySource('gem5.components.memory', 'gem5/components/memory/single_channel.py') diff --git a/src/python/gem5/components/memory/__init__.py b/src/python/gem5/components/memory/__init__.py index 1c94a2c..9f13157 100644 --- a/src/python/gem5/components/memory/__init__.py +++ b/src/python/gem5/components/memory/__init__.py @@ -34,8 +34,15 @@ from .multi_channel import DualChannelDDR4_2400 from .multi_channel import DualChannelLPDDR3_1600 from .hbm import HBM2Stack -from .dramsys import DRAMSysMem -from .dramsys import DRAMSys_DDR4_1866 -from .dramsys import DRAMSys_DDR3_1600 -from .dramsys import DRAMSys_LPDDR4_3200 -from .dramsys import DRAMSys_HBM2 + +try: + from .dramsys import DRAMSysMem + from .dramsys import DRAMSys_DDR4_1866 + from .dramsys import DRAMSys_DDR3_1600 + from .dramsys import DRAMSys_LPDDR4_3200 + from .dramsys import DRAMSys_HBM2 +except: + # In the case that DRAMSys is not compiled into the gem5 binary, importing + # DRAMSys components will fail. This try-exception statement is needed to + # ignore these imports in this case. + pass -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/69198?usp=email To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: develop Gerrit-Change-Id: I5649010943d9c1115676ae310af78f16104f56ca Gerrit-Change-Number: 69198 Gerrit-PatchSet: 1 Gerrit-Owner: Bobby Bruce <bbruce@ucdavis.edu> Gerrit-MessageType: newchange