shader.CUs = compute_units ########################## Creating the CPU system ######################## options.num_cpus = options.num_cpus # The shader core will be whatever is after the CPU cores are accounted for shader_idx = options.num_cpus # The command processor will be whatever is after the shader is accounted for cp_idx = shader_idx + 1 cp_list = [] # List of CPUs cpu_list = [] CpuClass, mem_mode = Simulation.getCPUClass(options.cpu_type) if CpuClass == AtomicSimpleCPU: fatal("AtomicSimpleCPU is not supported") if mem_mode != 'timing': fatal("Only the timing memory mode is supported") shader.timing = True if options.fast_forward and options.fast_forward_pseudo_op: fatal("Cannot fast-forward based both on the number of instructions and" " on pseudo-ops") fast_forward = options.fast_forward or options.fast_forward_pseudo_op if fast_forward: FutureCpuClass, future_mem_mode = CpuClass, mem_mode CpuClass = X86KvmCPU
fatal("gem5-gpu SE doesn't currently work with non-x86 or non-ARM system!") # # CPU type configuration # if options.cpu_type != "timing" and options.cpu_type != "TimingSimpleCPU" \ and options.cpu_type != "detailed" and options.cpu_type != "DerivO3CPU": print "Warning: gem5-gpu only known to work with timing and detailed CPUs: Proceed at your own risk!" (CPUClass, test_mem_mode, FutureClass) = Simulation.setCPUClass(options) # If fast-forwarding, set the fast-forward CPU and mem mode for # timing rather than atomic if options.fast_forward: assert (CPUClass == AtomicSimpleCPU) assert (test_mem_mode == "atomic") CPUClass, test_mem_mode = Simulation.getCPUClass("TimingSimpleCPU") # # Memory space configuration # (cpu_mem_range, gpu_mem_range, total_mem_range) = GPUConfig.configureMemorySpaces(options) # # Setup benchmark to be run # process = Process() process.executable = options.cmd process.cmd = [options.cmd] + options.options.split() if options.input != "":