vineodd / PIMSim

PIMSim is a Process-In-Memory Simulator with the compatibility of GEM5 full-system simulation.
GNU General Public License v3.0
178 stars 85 forks source link

How to use PIMProcess #14

Open m1chaelyeung opened 4 years ago

m1chaelyeung commented 4 years ago

I see PIMProcess is declared in pseudo_inst.cc, so how can I use this function in my program. Should I run my program in fs mode?

ChenfengZhao commented 4 years ago

I see PIMProcess is declared in pseudo_inst.cc, so how can I use this function in my program. Should I run my program in fs mode?

I have a similar question that there are two functions called "PIMProcess" and "HostProcess" in pseudo_inst.cc. Do you know how can I use them?

m1chaelyeung commented 4 years ago

I see PIMProcess is declared in pseudo_inst.cc, so how can I use this function in my program. Should I run my program in fs mode?

I have a similar question that there are two functions called "PIMProcess" and "HostProcess" in pseudo_inst.cc. Do you know how can I use them?

I have read the source code of PIMProcess and HostProcess. I only add PIMProcess into my own cpp code and compile it as kernel. Then I set up the parameters of my system and run gem5. But I got a segmentation fault during the runtime and I haven't solved it. parameters: ./build/X86/gem5.opt --debug-flags=PIM configs/example/se.py --cpu-type=TimingSimpleCPU --cpu-clock=1GHz --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=4 --l1i_assoc=4 --l2_assoc=8 --enable-pim --pim-type=cpu --num-pim-processors=1 --coherence-granularity=64B -c ./tests/test-progs/pim-hello/hellopim running output: (pim_test.cpp) : Use PIM to calculate the sum of a and b 8329928000: system.cpu: Encountering PIMProcess command, use PIM processor [0] takeOverFrom-1 8329928000: system.cpu: SuspendContext 0 8329928000: system.pim_cpu: ActivateContext 0 warn: ClockedObject: Already in the requested power state, request ignored 8329978000: system.pim_cpu: inst is 1135751896167858944 gem5 has encountered a segmentation fault!

--- BEGIN LIBC BACKTRACE --- ./build/X86/gem5.opt(_Z15print_backtracev+0x28)[0x85e8e8] ./build/X86/gem5.opt[0x86effd] /lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7f5fedfbf390] ./build/X86/gem5.opt(_ZN6X86ISA7Decoder12doResetStateEv+0x2e)[0x99776e] ./build/X86/gem5.opt(_ZN6X86ISA7Decoder7processEv+0x495)[0x997ec5] ./build/X86/gem5.opt(_ZN13BaseSimpleCPU10preExecuteEv+0x61a)[0x7dd65a] ./build/X86/gem5.opt(_ZN15TimingSimpleCPU14completeIfetchEP6Packet+0x182)[0x7d6a92] ./build/X86/gem5.opt(_ZN10EventQueue10serviceOneEv+0x11d)[0x8652dd] ./build/X86/gem5.opt(_Z9doSimLoopP10EventQueue+0x50)[0x87e150] ./build/X86/gem5.opt(_Z8simulatem+0xd1b)[0x87f23b] ./build/X86/gem5.opt[0x1699ada] ./build/X86/gem5.opt[0x8bf335] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x7852)[0x7f5fee27c7b2] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f5fee3b311c] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ffd)[0x7f5fee27bf5d] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f5fee3b311c] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ffd)[0x7f5fee27bf5d] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f5fee3b311c] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ffd)[0x7f5fee27bf5d] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f5fee3b311c] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7f5fee274de9] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x613b)[0x7f5fee27b09b] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f5fee3b311c] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ffd)[0x7f5fee27bf5d] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f5fee3b311c] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7f5fee274de9] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyRun_StringFlags+0x76)[0x7f5fee2ef236] ./build/X86/gem5.opt(_Z6m5MainiPPc+0x8f)[0x86db5f] ./build/X86/gem5.opt(main+0x33)[0x738503] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f5fec94f830] ./build/X86/gem5.opt(_start+0x29)[0x75dbc9] --- END LIBC BACKTRACE ---

m1chaelyeung commented 4 years ago

I see PIMProcess is declared in pseudo_inst.cc, so how can I use this function in my program. Should I run my program in fs mode?

I have a similar question that there are two functions called "PIMProcess" and "HostProcess" in pseudo_inst.cc. Do you know how can I use them?

If you wanna discuss it for more detailed information, send a email(yangyuqing@sjtu.edu.cn) to me and let me know.