On Fri, Jul 2, 2021 at 3:47 PM Jason Lowe-Power <ja...@lowepower.com> wrote:
> Hello, > > Unfortunately, I don't think gem5 is the right tool for this job. When you > run that command, gem5's embedded python interpreter is executing `se.py`. > There's not really a way to easily get around this. You could try to > compile gem5 without python (--without-python, IIRC), but then configuring > the system you're running is difficult, if not impossible, depending on the > system you want to simulate. > I see, thanks! I need to simulate vanilla x86_64 (any modern flavour will do) > > Cheers, > Jason > > On Thu, Jul 1, 2021 at 6:06 PM Konstantin Serebryany < > konstantin.s.serebry...@gmail.com> wrote: > >> Hi Jason, >> >> Thanks for the reply! >> I was hoping for something light-weight, similar to Unicorn, but based on >> gem5 instead of QEMU... >> >> I tried running >> build/X86/gem5.opt configs/example/se.py -c >> ./tests/test-progs/hello/bin/x86/linux/hello >> and it takes 0.3 second -- too slow. >> >> The profile shows: >> 14.55% gem5.opt libpython3.9.so.1.0 [.] _PyEval_EvalFrameDefault >> >> >> >> 2.31% gem5.opt libpython3.9.so.1.0 [.] _PyType_Lookup >> >> >> >> 2.01% gem5.opt libpython3.9.so.1.0 [.] >> _PyObject_GenericGetAttrWithDict >> >> >> 1.09% gem5.opt libpython3.9.so.1.0 [.] _Py_CheckFunctionResult >> >> >> >> 1.06% gem5.opt libpython3.9.so.1.0 [.] 0x00000000002000b0 >> >> >> >> ... >> I.e. all the time for simulating a tiny test is spent in python. >> >> I'd like to be able to simulate tiny programs, like "hello" from the >> examples, >> but hopefully at least 100x faster than this. >> >> What's the best supported mechanism for running many tiny simulations >> w/o having to pay for the large python overhead? >> Any examples? >> >> --kcc >> >> >> >> >> >> >> On Thu, Jul 1, 2021 at 5:00 PM Jason Lowe-Power <ja...@lowepower.com> >> wrote: >> >>> Hello, >>> >>> It's somewhat possible. You can compile gem5 as a library (e.g., scons >>> build/<Default build opts>/libgem5-opt.so). However, gem5 *is a python >>> interpreter* and is configured via python scripts. Getting that to work >>> with an external program is "exciting". It's possible to get python >>> working, and there are other workarounds like using the CXXConfig >>> interface, but it's not straightforward or easy to understand. >>> >>> Unless you're trying to integrate gem5 into another simulator, it's >>> unlikely that invoking gem5 from another program is the best option. Even >>> in this case, I would advise going the other way and using gem5 as the >>> driver simulator. That said, there are many simulators that integrate with >>> gem5. You can easily hook in things like DRAMSim, at one point I integrated >>> it with GPGPU-Sim (this is now incredibly out of date), and there is an >>> SST-gem5 bridge that we are actively working on. Finally, there are many >>> efforts to integrate gem5 with SystemC including implementing the entire >>> SystemC spec in gem5. >>> >>> Hopefully this helps. I'd be happy to provide more specific help with >>> some more information :). >>> >>> Cheers, >>> Jason >>> >>> On Thu, Jul 1, 2021 at 4:49 PM Konstantin Serebryany via gem5-users < >>> gem5-users@gem5.org> wrote: >>> >>>> Hi, >>>> >>>> [gem5 newbie here... ] >>>> >>>> Does gem5 have a C++ API? >>>> >>>> I am interested in using gem5 as a library, i.e. invoking >>>> the system call emulation mode from within my process, >>>> without fork/exec or python. >>>> Is that at all possible? >>>> Any pointers? >>>> >>>> thanks! >>>> >>>> --kcc >>>> >>>> _______________________________________________ >>>> gem5-users mailing list -- gem5-users@gem5.org >>>> To unsubscribe send an email to gem5-users-le...@gem5.org >>>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s >>> >>>
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s