Hello, I use gcn3_x86 in gem5 to test the impact of interference between gpu 
programs and cpu program memory access requests on cpu and gpu performance. By 
modifying apu_se.py, I specify the test program for gpu as square, and the cpu 
test program as 401 of spec2006. I wanted to see if my idea would work, so I 
specified a maximum instruction count of 1000000000. However, the program does 
not stop after execution, and no error is reported. There is no data in the 
output file stats.txt.

apu_se.py:

process = Process(executable = executable, cmd = [args.cmd]
                  + args.options.split(), env = env)


#gpu workload
benchmark_path_gpu = ["/root/benchmark/src/gpu/square/bin"]
cmd_gpu = "square"
executable_gpu = find_path(benchmark_path_gpu, cmd_gpu, os.path.exists)

if os.path.isdir(executable_gpu):
    benchmark_path_gpu = [executable_gpu]
    executable_gpu = find_file(benchmark_path_gpu, cmd_gpu)

process_gpu = Process(executable = executable_gpu, cmd = [cmd_gpu],
                  drivers = [gpu_driver, render_driver], env = env)

cpu_list[0].createThreads()
cpu_list[0].workload = process_gpu

for cpu in cpu_list[1:]:
    cpu.createThreads()
    cpu.workload = process

for cp in cp_list:
    cp.workload = host_cpu.workload

if fast_forward:
    for i in range(len(future_cpu_list)):
        future_cpu_list[i].workload = cpu_list[i].workload
        future_cpu_list[i].createThreads()

########################## Create the overall system ########################
# List of CPUs that must be switched when moving between KVM and simulation
if fast_forward:
    switch_cpu_list = \
        [(cpu_list[i], future_cpu_list[i]) for i in range(args.num_cpus)]

# Full list of processing cores in the system.
cpu_list = cpu_list + [shader] + cp_list

# creating the overall system
# notice the cpu list is explicitly added as a parameter to System
system = System(cpu = cpu_list,
                mem_ranges = [AddrRange(args.mem_size)],
                cache_line_size = args.cacheline_size,
                mem_mode = mem_mode,
                workload = SEWorkload.init_compatible(executable))

run_gcn3_x86_401.sh:
spec2006path=/root/spec06/CPU2006
outdir=/root/gem5/m5out/gcn_x86_401
bench=401.bzip2
ben_suffix=run/run_base_ref_amd64-m64-gcc42-nn.0000
exe=bzip2_base.amd64-m64-gcc42-nn
input=input.combined

./build/GCN3_X86/gem5.opt -d $outdir configs/example/apu_se2.py \
--benchmark-root=$spec2006path/$bench/$ben_suffix -c $exe \
-o "$spec2006path/$bench/$ben_suffix/$input" \
--maxinsts=10000 \
--cpu-type=DerivO3CPU \
--caches \
--cacheline_size=64 \
--l1d_size=64kB --l1i_size=32kB --l1i_assoc=8 --l1d_assoc=8 \
--l2cache --l2_size=2MB --l2_assoc=8 \
--l3_size=32MB --l3_assoc=4 \
--mem-size=4096MB
_______________________________________________
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

Reply via email to