Hi,
I am trying to run some workloads in AMD’s APU model for gem5, I am unable to
get Protocols, other than GPU_VIPER working with the GCN3 ISA for e.g such as
GPU_RFO and GPU_VIPER_REGION
I made the following changes to apu_se.py and GPU_RFO.py to get it working (
may or may not be correct). I used GPU_VIPER as reference for potential changes
required to GPU_RFO.py
1] First Error I see is
create_system() takes exactly 6 arguments (5 given)
This I fixed by removing bootmem argument from create_system inside GPU_RFO.py
as the same is done in GPU_VIPER.py
2] Second error was
assert(len(dma_devices) == 0)
GPU_RFO expects 0 dma_devices thus I changed the apu_se.py to pass an empty dma
list and comment port connections to dma.
dma_list = []
Ruby.create_system(options, None, system, None, None , None)
system.ruby.clk_domain = SrcClockDomain(clock = options.ruby_clock,
voltage_domain = system.voltage_domain)
#gpu_cmd_proc.pio = system.piobus.master
#gpu_cmd_proc.dma = system.piobus.slave
#gpu_hsapp.pio = system.piobus.master
#gpu_hsapp.dma = system.piobus.slave
3] Third Error was
fatal: Port <orphan System>.cp_cntrl0.sequencer1.slave[0] is already connected
to <orphan System>.cpu1.icache_port, cannot connect <orphan
System>.cpu2.CUs0.memory_port[0]
This happens because I think the number of cpu_sequencers returned by
GPU_VIPER's create_system was 8 while for GPU_RFO it is 7
Thus, I made certain changes to the indexing in this part of the apu.se.py
config
gpu_port_idx = gpu_port_idx - options.num_cp * 2
wavefront_size = options.wf_size
for i in xrange(n_cu):
# The pipeline issues wavefront_size number of uncoalesced requests
# in one GPU issue cycle. Hence wavefront_size mem ports.
for j in xrange(wavefront_size):
system.cpu[shader_idx].CUs[i].memory_port[j] = \
system.ruby._cpu_ports[gpu_port_idx].slave[j]
4] Next, I ran into this issue
system.dir_cntrl0.requestFromDMA without default or user set value
For this I replicated code from GPU_VIPER.py in GPU_RFO.py that sets this value
5] This is the currently where I am stuck at
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/afs/cs.wisc.edu/p/hal/private/amd_apu/gem5/src/python/m5/main.py",
line 435, in main
exec filecode in scope
File "configs/example/apu_se_RFO.py", line 652, in <module>
m5.instantiate(checkpoint_dir)
File "/afs/cs.wisc.edu/p/hal/private/amd_apu/gem5/src/python/m5/simulate.py",
line 118, in instantiate
for obj in root.descendants(): obj.createCCObject()
File
"/afs/cs.wisc.edu/p/hal/private/amd_apu/gem5/src/python/m5/SimObject.py", line
1490, in createCCObject
self.getCCParams()
File
"/afs/cs.wisc.edu/p/hal/private/amd_apu/gem5/src/python/m5/SimObject.py", line
1431, in getCCParams
value = value.getValue()
File "/afs/cs.wisc.edu/p/hal/private/amd_apu/gem5/src/python/m5/params.py",
line 247, in getValue
return [ v.getValue() for v in self ]
File
"/afs/cs.wisc.edu/p/hal/private/amd_apu/gem5/src/python/m5/SimObject.py", line
1494, in getValue
return self.getCCObject()
File
"/afs/cs.wisc.edu/p/hal/private/amd_apu/gem5/src/python/m5/SimObject.py", line
1472, in getCCObject
params = self.getCCParams()
File
"/afs/cs.wisc.edu/p/hal/private/amd_apu/gem5/src/python/m5/SimObject.py", line
1431, in getCCParams
value = value.getValue()
File
"/afs/cs.wisc.edu/p/hal/private/amd_apu/gem5/src/python/m5/SimObject.py", line
1494, in getValue
return self.getCCObject()
File
"/afs/cs.wisc.edu/p/hal/private/amd_apu/gem5/src/python/m5/SimObject.py", line
1472, in getCCObject
params = self.getCCParams()
File
"/afs/cs.wisc.edu/p/hal/private/amd_apu/gem5/src/python/m5/SimObject.py", line
1445, in getCCParams
setattr(cc_params, param, value)
TypeError: (): incompatible function arguments. The following argument types
are supported:
1. (self: _m5.param_TCP_Controller.TCP_ControllerParams, arg0:
GPUCoalescer) -> None
Most Probably, what ever changes I made for the errors that came before, caused
this, Could someone tell me, if the changes I have made are in the right
direction, if they aren't? How should I go about this process?
Thank you,
Preyesh Dalmia
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users