[gem5-users] Re: Run srsRAN code with gem5
Thanks a lot Jason! Get Outlook for Android<https://aka.ms/AAb9ysg> From: Jason Lowe-Power Sent: Friday, February 11, 2022 9:10:11 PM To: gem5 users mailing list Cc: Umamaheswari Ganeshan ; VEDIKA JITENDRA KULKARNI Subject: Re: [gem5-users] Run srsRAN code with gem5 Hi Uma, Not all X86 vector instructions are implemented. What you're seeing is that pmovzxbw isn't implemented. Specifically, there's at least one version (as shown here https://www.felixcloutier.com/x86/pmovzx) which hasn't been implemented yet. I'm not sure which one. The `Vdq_Udq_or_Mq` somehow specifies the sizes of the registers, but it's not documented and you'll have to dig into the code to figure out how it works. You can either compile your code with SSE4/AVX or you can implement the instruction. If you do the latter, we would appreciate the contribution! Cheers, Jason On Fri, Feb 11, 2022 at 5:13 AM VEDIKA JITENDRA KULKARNI via gem5-users mailto:gem5-users@gem5.org>> wrote: Hello, We are trying to run srsRAN functionalities individually as srsepc,srsenb and srsUE. Also I need suggestions on how to run end-end srsRAN code into gem5 to analyse the ARM vs X86 performance. Please find the below error for srsENB while simulating in gem5. command line: ./build/X86/gem5.opt configs/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/srsenb Global frequency set at 1 ticks per second warn: No dot file generated. Please install pydot to generate the dot file and pdf. build/X86/mem/mem_interface.cc:791: warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (512 Mbytes) 0: system.remote_gdb: listening for remote gdb on port 7000 REAL SIMULATION build/X86/sim/simulate.cc:194: info: Entering event queue @ 0. Starting simulation... build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall set_robust_list(...) build/X86/sim/syscall_emul.cc:85: warn: ignoring syscall rt_sigaction(...) (further warnings will be suppressed) build/X86/sim/syscall_emul.cc:85: warn: ignoring syscall rt_sigprocmask(...) (further warnings will be suppressed) build/X86/sim/syscall_emul.hh:509: warn: futex: op 7 not implemented; ignoring. build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) build/X86/arch/x86/generated/exec-ns.cc.inc:27: warn: instruction 'pmovzxbw_Vdq_Udq_or_Mq' unimplemented build/X86/arch/x86/faults.cc:129: panic: Unrecognized/invalid instruction executed: { leg = 0x10, rex = 0, vex/xop = 0x5, op = { type = three byte 0f38, op = 0x59, }, modRM = 0, sib = 0, immediate = 0, displacement = 0 dispSize = 0} Memory Usage: 842444 KBytes Program aborted at tick 7880406000 --- BEGIN LIBC BACKTRACE --- ./build/X86/gem5.opt(+0x67429c)[0x5620be8bc29c] ./build/X86/gem5.opt(+0x6a0eaa)[0x5620be8e8eaa] /lib/x86_64-linux-gnu/libpthread.so.0(+0x12980)[0x7f1b35eeb980] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f1b34d3efb7] /lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f1b34d40921] ./build/X86/gem5.opt(+0x342b6f)[0x5620be58ab6f] ./build/X86/gem5.opt(+0x74f8b7)[0x5620be9978b7] ./build/X86/gem5.opt(+0xe9218a)[0x5620bf0da18a] ./build/X86/gem5.opt(+0xe7f779)[0x5620bf0c7779] ./build/X86/gem5.opt(+0x680fee)[0x5620be8c8fee] ./build/X86/gem5.opt(+0x6c5fd4)[0x5620be90dfd4] ./build/X86/gem5.opt(+0x6c6d1e)[0x5620be90ed1e] ./build/X86/gem5.opt(+0xc2b44a)[0x5620bee7344a] ./build/X86/gem5.opt(+0x69ced9)[0x5620be8e4ed9] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyCFunction_Call+0x96)[0x7f1b3630b736] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x76e0)[0x7f1b3627cb20] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f1b36273a0f] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c0fc)[0x7f1b362740fc] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1b3627a303] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17a803)[0x7f1b36272803] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c2be)[0x7f1b362742be] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1b3627a303] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f1b36273a0f] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c0fc)[0x7f1b362740fc] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1b3627a303] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f1b36273a0f] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e)[0x7f1b362744ce] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyE
[gem5-users] Re: Run srsRAN code with gem5
Hi Uma, Not all X86 vector instructions are implemented. What you're seeing is that pmovzxbw isn't implemented. Specifically, there's at least one version (as shown here https://www.felixcloutier.com/x86/pmovzx) which hasn't been implemented yet. I'm not sure which one. The `Vdq_Udq_or_Mq` somehow specifies the sizes of the registers, but it's not documented and you'll have to dig into the code to figure out how it works. You can either compile your code with SSE4/AVX or you can implement the instruction. If you do the latter, we would appreciate the contribution! Cheers, Jason On Fri, Feb 11, 2022 at 5:13 AM VEDIKA JITENDRA KULKARNI via gem5-users < gem5-users@gem5.org> wrote: > Hello, > > > *We are trying to run srsRAN functionalities individually as srsepc,srsenb > and srsUE. Also I need suggestions on how to run end-end srsRAN code into > gem5 to analyse the ARM vs X86 performance. * > > > *Please find the below error for srsENB while simulating in gem5.* > > > > command line: ./build/X86/gem5.opt configs/example/se.py > --cmd=tests/test-progs/hello/bin/x86/linux/srsenb > > > > Global frequency set at 1 ticks per second > > warn: No dot file generated. Please install pydot to generate the dot file > and pdf. > > build/X86/mem/mem_interface.cc:791: warn: DRAM device capacity (8192 > Mbytes) does not match the address range assigned (512 Mbytes) > > 0: system.remote_gdb: listening for remote gdb on port 7000 > > REAL SIMULATION > > build/X86/sim/simulate.cc:194: info: Entering event queue @ 0. Starting > simulation... > > build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) > > build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) > > build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) > > > > build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall > set_robust_list(...) > > build/X86/sim/syscall_emul.cc:85: warn: ignoring syscall rt_sigaction(...) > > (further warnings will be suppressed) > > build/X86/sim/syscall_emul.cc:85: warn: ignoring syscall > rt_sigprocmask(...) > > (further warnings will be suppressed) > > build/X86/sim/syscall_emul.hh:509: warn: futex: op 7 not implemented; > ignoring. > > > > build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...) > > build/X86/arch/x86/generated/exec-ns.cc.inc:27: warn: instruction > 'pmovzxbw_Vdq_Udq_or_Mq' unimplemented > > *build/X86/arch/x86/faults.cc:129: panic: Unrecognized/invalid instruction > executed:* > > > > { > > leg = 0x10, > > rex = 0, > > vex/xop = 0x5, > > op = { > > type = three byte 0f38, > > op = 0x59, > > }, > > modRM = 0, > > sib = 0, > > immediate = 0, > > displacement = 0 > > dispSize = 0} > > Memory Usage: 842444 KBytes > > Program aborted at tick 7880406000 > > --- BEGIN LIBC BACKTRACE --- > > ./build/X86/gem5.opt(+0x67429c)[0x5620be8bc29c] > > ./build/X86/gem5.opt(+0x6a0eaa)[0x5620be8e8eaa] > > /lib/x86_64-linux-gnu/libpthread.so.0(+0x12980)[0x7f1b35eeb980] > > /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f1b34d3efb7] > > /lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f1b34d40921] > > ./build/X86/gem5.opt(+0x342b6f)[0x5620be58ab6f] > > ./build/X86/gem5.opt(+0x74f8b7)[0x5620be9978b7] > > ./build/X86/gem5.opt(+0xe9218a)[0x5620bf0da18a] > > ./build/X86/gem5.opt(+0xe7f779)[0x5620bf0c7779] > > ./build/X86/gem5.opt(+0x680fee)[0x5620be8c8fee] > > ./build/X86/gem5.opt(+0x6c5fd4)[0x5620be90dfd4] > > ./build/X86/gem5.opt(+0x6c6d1e)[0x5620be90ed1e] > > ./build/X86/gem5.opt(+0xc2b44a)[0x5620bee7344a] > > ./build/X86/gem5.opt(+0x69ced9)[0x5620be8e4ed9] > > > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyCFunction_Call+0x96)[0x7f1b3630b736] > > > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x76e0)[0x7f1b3627cb20] > > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f1b36273a0f] > > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c0fc)[0x7f1b362740fc] > > > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1b3627a303] > > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17a803)[0x7f1b36272803] > > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c2be)[0x7f1b362742be] > > > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1b3627a303] > > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f1b36273a0f] > > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c0fc)[0x7f1b362740fc] > > > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1b3627a303] > > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f1b36273a0f] > > > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e)[0x7f1b362744ce] > > > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCode+0x1b)[0x7f1b3627524b] > >