gem5-users@gem5.org

The gem5 Users mailing list

View all threads

Re: potential error in gem5 simulation?

AC
An Chow Lai
Sat, Jul 22, 2023 12:55 PM

To whom it may concern,

I'm new to gem5, I just downloaded gem5 to simulate some spec benchmarks,
but I encountered something which seems not making sense;
basically, the outcome of the program simulated by gem5 does not match the
outcome of the same program run directly on the machine. The results of two
runs are shown below.
I hope I can get help/corrections from you guys. Thank you.

Sincerely yours,
An-Chow

direct run (which is expected and looks correct to me):

../../exe/lbm_r_base.mytest-m64 30 reference.dat 0 0 100_100_130_ldc.of
MAIN_printInfo:
grid size      : 100 x 100 x 130 = 1.30 * 10^6 Cells
nTimeSteps    : 30
result file    : reference.dat
action        : nothing
simulation type: lid-driven cavity
obstacle file  : 100_100_130_ldc.of

LBM_showGridStatistics:
nObstacleCells:  112539 nAccelCells:  18432 nFluidCells: 1169029
minRho: 1.000000 maxRho: 1.000000 Mass: 1.300000e+06
minU  : 0.000000 maxU  : 0.000000

LBM_showGridStatistics:
nObstacleCells:  112539 nAccelCells:  18432 nFluidCells: 1169029
minRho: 0.998947 maxRho: 1.001139 Mass: 1.300000e+06
minU  : 0.000000 maxU  : 0.003548

gem5 simulated run (which does not match the direct run above):

~/Work/gem5/build/X86/gem5.opt ~/Work/gem5/configs/deprecated/example/se.py
--cmd="../../exe/lbm_r_base.mytest-m64" --option="30  reference.dat 0 0
100_100_130_ldc.of" --mem-size=8GB
gem5 Simulator System.  https://www.gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 version 23.0.0.1
gem5 compiled Jul 22 2023 09:57:33
gem5 started Jul 22 2023 12:50:00
gem5 executing on Oreo-II, pid 62021

warn: The get_runtime_isa function is deprecated. Please migrate away
from using this function.
warn: The se.py script is deprecated. It will be removed in future releases
of  gem5.
warn: The get_runtime_isa function is deprecated. Please migrate away
from using this function.
Global frequency set at 1000000000000 ticks per second
warn: No dot file generated. Please install pydot to generate the dot file
and pdf.
src/base/statistics.hh:279: warn: One of the stats is a legacy stat. Legacy
stat is a stat that does not belong to any statistics::Group. Legacy stat
is deprecated.
system.remote_gdb: Listening for connections on port 7000
**** REAL SIMULATION ****
src/sim/simulate.cc:194: info: Entering event queue @ 0.  Starting
simulation...
src/sim/mem_state.cc:443: info: Increasing stack size by one page.
src/sim/syscall_emul.cc:74: warn: ignoring syscall set_robust_list(...)
src/sim/syscall_emul.cc:74: warn: ignoring syscall rseq(...)
src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
MAIN_printInfo:
grid size      : 100 x 100 x 130 = 1.30 * 10^6 Cells
nTimeSteps    : 30
result file    : reference.dat
action        : nothing
simulation type: lid-driven cavity
obstacle file  : 100_100_130_ldc.of

LBM_showGridStatistics:
nObstacleCells:  112539 nAccelCells:  18432 nFluidCells: 1169029
minRho: 0.000000 maxRho: 0.000000 Mass: 0.000000e+00
minU  : 0.166667 maxU  : 0.235702

LBM_showGridStatistics:
nObstacleCells:  112539 nAccelCells:  18432 nFluidCells: 1169029
minRho: 0.000000 maxRho: 0.000000 Mass: 0.000000e+00
minU  :    -nan maxU  :      inf

To whom it may concern, I'm new to gem5, I just downloaded gem5 to simulate some spec benchmarks, but I encountered something which seems not making sense; basically, the outcome of the program simulated by gem5 does not match the outcome of the same program run directly on the machine. The results of two runs are shown below. I hope I can get help/corrections from you guys. Thank you. Sincerely yours, An-Chow direct run (which is expected and looks correct to me): ------------- ../../exe/lbm_r_base.mytest-m64 30 reference.dat 0 0 100_100_130_ldc.of MAIN_printInfo: grid size : 100 x 100 x 130 = 1.30 * 10^6 Cells nTimeSteps : 30 result file : reference.dat action : nothing simulation type: lid-driven cavity obstacle file : 100_100_130_ldc.of LBM_showGridStatistics: nObstacleCells: 112539 nAccelCells: 18432 nFluidCells: 1169029 minRho: 1.000000 maxRho: 1.000000 Mass: 1.300000e+06 minU : 0.000000 maxU : 0.000000 LBM_showGridStatistics: nObstacleCells: 112539 nAccelCells: 18432 nFluidCells: 1169029 minRho: 0.998947 maxRho: 1.001139 Mass: 1.300000e+06 minU : 0.000000 maxU : 0.003548 gem5 simulated run (which does not match the direct run above): ------------------ ~/Work/gem5/build/X86/gem5.opt ~/Work/gem5/configs/deprecated/example/se.py --cmd="../../exe/lbm_r_base.mytest-m64" --option="30 reference.dat 0 0 100_100_130_ldc.of" --mem-size=8GB gem5 Simulator System. https://www.gem5.org gem5 is copyrighted software; use the --copyright option for details. gem5 version 23.0.0.1 gem5 compiled Jul 22 2023 09:57:33 gem5 started Jul 22 2023 12:50:00 gem5 executing on Oreo-II, pid 62021 warn: The `get_runtime_isa` function is deprecated. Please migrate away from using this function. warn: The se.py script is deprecated. It will be removed in future releases of gem5. warn: The `get_runtime_isa` function is deprecated. Please migrate away from using this function. Global frequency set at 1000000000000 ticks per second warn: No dot file generated. Please install pydot to generate the dot file and pdf. src/base/statistics.hh:279: warn: One of the stats is a legacy stat. Legacy stat is a stat that does not belong to any statistics::Group. Legacy stat is deprecated. system.remote_gdb: Listening for connections on port 7000 **** REAL SIMULATION **** src/sim/simulate.cc:194: info: Entering event queue @ 0. Starting simulation... src/sim/mem_state.cc:443: info: Increasing stack size by one page. src/sim/syscall_emul.cc:74: warn: ignoring syscall set_robust_list(...) src/sim/syscall_emul.cc:74: warn: ignoring syscall rseq(...) src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) MAIN_printInfo: grid size : 100 x 100 x 130 = 1.30 * 10^6 Cells nTimeSteps : 30 result file : reference.dat action : nothing simulation type: lid-driven cavity obstacle file : 100_100_130_ldc.of LBM_showGridStatistics: nObstacleCells: 112539 nAccelCells: 18432 nFluidCells: 1169029 minRho: 0.000000 maxRho: 0.000000 Mass: 0.000000e+00 minU : 0.166667 maxU : 0.235702 LBM_showGridStatistics: nObstacleCells: 112539 nAccelCells: 18432 nFluidCells: 1169029 minRho: 0.000000 maxRho: 0.000000 Mass: 0.000000e+00 minU : -nan maxU : inf
JL
Jason Lowe-Power
Mon, Jul 24, 2023 3:33 PM

There's a lot of information missing in your email, but I'll make some
guesses and try to help.

If you're using x86 and you compiled lbm on your host, then most likely it
is using SSE/AVX/vector instructions that may not be implemented or
implemented incorrectly in gem5. I would expect to see warnings about
unimplemented instructions, but I don't see them in your output.

One possible way to check is to recompile without vector instructions and
try that binary.

Finally, there are a number of warnings about unimplemented syscalls. I
don't think any of those would cause a problem, but using FS mode could
improve the fidelity of your simulation.

Cheers,
Jason

On Sat, Jul 22, 2023 at 5:59 AM An Chow Lai via gem5-users <
gem5-users@gem5.org> wrote:

To whom it may concern,

I'm new to gem5, I just downloaded gem5 to simulate some spec benchmarks,
but I encountered something which seems not making sense;
basically, the outcome of the program simulated by gem5 does not match the
outcome of the same program run directly on the machine. The results of two
runs are shown below.
I hope I can get help/corrections from you guys. Thank you.

Sincerely yours,
An-Chow

direct run (which is expected and looks correct to me):

../../exe/lbm_r_base.mytest-m64 30 reference.dat 0 0 100_100_130_ldc.of
MAIN_printInfo:
grid size      : 100 x 100 x 130 = 1.30 * 10^6 Cells
nTimeSteps    : 30
result file    : reference.dat
action        : nothing
simulation type: lid-driven cavity
obstacle file  : 100_100_130_ldc.of

LBM_showGridStatistics:
nObstacleCells:  112539 nAccelCells:  18432 nFluidCells: 1169029
minRho: 1.000000 maxRho: 1.000000 Mass: 1.300000e+06
minU  : 0.000000 maxU  : 0.000000

LBM_showGridStatistics:
nObstacleCells:  112539 nAccelCells:  18432 nFluidCells: 1169029
minRho: 0.998947 maxRho: 1.001139 Mass: 1.300000e+06
minU  : 0.000000 maxU  : 0.003548

gem5 simulated run (which does not match the direct run above):

~/Work/gem5/build/X86/gem5.opt
~/Work/gem5/configs/deprecated/example/se.py
--cmd="../../exe/lbm_r_base.mytest-m64" --option="30  reference.dat 0 0
100_100_130_ldc.of" --mem-size=8GB
gem5 Simulator System.  https://www.gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 version 23.0.0.1
gem5 compiled Jul 22 2023 09:57:33
gem5 started Jul 22 2023 12:50:00
gem5 executing on Oreo-II, pid 62021

warn: The get_runtime_isa function is deprecated. Please migrate away
from using this function.
warn: The se.py script is deprecated. It will be removed in future
releases of  gem5.
warn: The get_runtime_isa function is deprecated. Please migrate away
from using this function.
Global frequency set at 1000000000000 ticks per second
warn: No dot file generated. Please install pydot to generate the dot file
and pdf.
src/base/statistics.hh:279: warn: One of the stats is a legacy stat.
Legacy stat is a stat that does not belong to any statistics::Group. Legacy
stat is deprecated.
system.remote_gdb: Listening for connections on port 7000
**** REAL SIMULATION ****
src/sim/simulate.cc:194: info: Entering event queue @ 0.  Starting
simulation...
src/sim/mem_state.cc:443: info: Increasing stack size by one page.
src/sim/syscall_emul.cc:74: warn: ignoring syscall set_robust_list(...)
src/sim/syscall_emul.cc:74: warn: ignoring syscall rseq(...)
src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
MAIN_printInfo:
grid size      : 100 x 100 x 130 = 1.30 * 10^6 Cells
nTimeSteps    : 30
result file    : reference.dat
action        : nothing
simulation type: lid-driven cavity
obstacle file  : 100_100_130_ldc.of

LBM_showGridStatistics:
nObstacleCells:  112539 nAccelCells:  18432 nFluidCells: 1169029
minRho: 0.000000 maxRho: 0.000000 Mass: 0.000000e+00
minU  : 0.166667 maxU  : 0.235702

LBM_showGridStatistics:
nObstacleCells:  112539 nAccelCells:  18432 nFluidCells: 1169029
minRho: 0.000000 maxRho: 0.000000 Mass: 0.000000e+00
minU  :    -nan maxU  :      inf


gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-leave@gem5.org

There's a lot of information missing in your email, but I'll make some guesses and try to help. If you're using x86 and you compiled lbm on your host, then most likely it is using SSE/AVX/vector instructions that may not be implemented or implemented incorrectly in gem5. I would expect to see warnings about unimplemented instructions, but I don't see them in your output. One possible way to check is to recompile without vector instructions and try that binary. Finally, there are a number of warnings about unimplemented syscalls. I don't think any of those would cause a problem, but using FS mode could improve the fidelity of your simulation. Cheers, Jason On Sat, Jul 22, 2023 at 5:59 AM An Chow Lai via gem5-users < gem5-users@gem5.org> wrote: > To whom it may concern, > > I'm new to gem5, I just downloaded gem5 to simulate some spec benchmarks, > but I encountered something which seems not making sense; > basically, the outcome of the program simulated by gem5 does not match the > outcome of the same program run directly on the machine. The results of two > runs are shown below. > I hope I can get help/corrections from you guys. Thank you. > > Sincerely yours, > An-Chow > > direct run (which is expected and looks correct to me): > ------------- > ../../exe/lbm_r_base.mytest-m64 30 reference.dat 0 0 100_100_130_ldc.of > MAIN_printInfo: > grid size : 100 x 100 x 130 = 1.30 * 10^6 Cells > nTimeSteps : 30 > result file : reference.dat > action : nothing > simulation type: lid-driven cavity > obstacle file : 100_100_130_ldc.of > > LBM_showGridStatistics: > nObstacleCells: 112539 nAccelCells: 18432 nFluidCells: 1169029 > minRho: 1.000000 maxRho: 1.000000 Mass: 1.300000e+06 > minU : 0.000000 maxU : 0.000000 > > LBM_showGridStatistics: > nObstacleCells: 112539 nAccelCells: 18432 nFluidCells: 1169029 > minRho: 0.998947 maxRho: 1.001139 Mass: 1.300000e+06 > minU : 0.000000 maxU : 0.003548 > > gem5 simulated run (which does not match the direct run above): > ------------------ > ~/Work/gem5/build/X86/gem5.opt > ~/Work/gem5/configs/deprecated/example/se.py > --cmd="../../exe/lbm_r_base.mytest-m64" --option="30 reference.dat 0 0 > 100_100_130_ldc.of" --mem-size=8GB > gem5 Simulator System. https://www.gem5.org > gem5 is copyrighted software; use the --copyright option for details. > > gem5 version 23.0.0.1 > gem5 compiled Jul 22 2023 09:57:33 > gem5 started Jul 22 2023 12:50:00 > gem5 executing on Oreo-II, pid 62021 > > warn: The `get_runtime_isa` function is deprecated. Please migrate away > from using this function. > warn: The se.py script is deprecated. It will be removed in future > releases of gem5. > warn: The `get_runtime_isa` function is deprecated. Please migrate away > from using this function. > Global frequency set at 1000000000000 ticks per second > warn: No dot file generated. Please install pydot to generate the dot file > and pdf. > src/base/statistics.hh:279: warn: One of the stats is a legacy stat. > Legacy stat is a stat that does not belong to any statistics::Group. Legacy > stat is deprecated. > system.remote_gdb: Listening for connections on port 7000 > **** REAL SIMULATION **** > src/sim/simulate.cc:194: info: Entering event queue @ 0. Starting > simulation... > src/sim/mem_state.cc:443: info: Increasing stack size by one page. > src/sim/syscall_emul.cc:74: warn: ignoring syscall set_robust_list(...) > src/sim/syscall_emul.cc:74: warn: ignoring syscall rseq(...) > src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) > src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) > src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) > src/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) > MAIN_printInfo: > grid size : 100 x 100 x 130 = 1.30 * 10^6 Cells > nTimeSteps : 30 > result file : reference.dat > action : nothing > simulation type: lid-driven cavity > obstacle file : 100_100_130_ldc.of > > LBM_showGridStatistics: > nObstacleCells: 112539 nAccelCells: 18432 nFluidCells: 1169029 > minRho: 0.000000 maxRho: 0.000000 Mass: 0.000000e+00 > minU : 0.166667 maxU : 0.235702 > > LBM_showGridStatistics: > nObstacleCells: 112539 nAccelCells: 18432 nFluidCells: 1169029 > minRho: 0.000000 maxRho: 0.000000 Mass: 0.000000e+00 > minU : -nan maxU : inf > > _______________________________________________ > gem5-users mailing list -- gem5-users@gem5.org > To unsubscribe send an email to gem5-users-leave@gem5.org >