GPU_VIPER.py (13400:cf74d21e948f) GPU_VIPER.py (13731:67cd980cb20f)
1# Copyright (c) 2011-2015 Advanced Micro Devices, Inc.
2# All rights reserved.
3#
4# For use for simulation and test purposes only
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions are met:
8#

--- 415 unchanged lines hidden (view full) ---

424 crossbar_bw = None
425 mainCluster = None
426 if hasattr(options, 'bw_scalor') and options.bw_scalor > 0:
427 #Assuming a 2GHz clock
428 crossbar_bw = 16 * options.num_compute_units * options.bw_scalor
429 mainCluster = Cluster(intBW=crossbar_bw)
430 else:
431 mainCluster = Cluster(intBW=8) # 16 GB/s
1# Copyright (c) 2011-2015 Advanced Micro Devices, Inc.
2# All rights reserved.
3#
4# For use for simulation and test purposes only
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions are met:
8#

--- 415 unchanged lines hidden (view full) ---

424 crossbar_bw = None
425 mainCluster = None
426 if hasattr(options, 'bw_scalor') and options.bw_scalor > 0:
427 #Assuming a 2GHz clock
428 crossbar_bw = 16 * options.num_compute_units * options.bw_scalor
429 mainCluster = Cluster(intBW=crossbar_bw)
430 else:
431 mainCluster = Cluster(intBW=8) # 16 GB/s
432 for i in xrange(options.num_dirs):
432 for i in range(options.num_dirs):
433
434 dir_cntrl = DirCntrl(noTCCdir = True, TCC_select_num_bits = TCC_bits)
435 dir_cntrl.create(options, ruby_system, system)
436 dir_cntrl.number_of_TBEs = options.num_tbes
437 dir_cntrl.useL3OnWT = options.use_L3_on_WT
438 # the number_of_TBEs is inclusive of TBEs below
439
440 # Connect the Directory controller to the ruby network

--- 21 unchanged lines hidden (view full) ---

462
463 mainCluster.add(dir_cntrl)
464
465 cpuCluster = None
466 if hasattr(options, 'bw_scalor') and options.bw_scalor > 0:
467 cpuCluster = Cluster(extBW = crossbar_bw, intBW = crossbar_bw)
468 else:
469 cpuCluster = Cluster(extBW = 8, intBW = 8) # 16 GB/s
433
434 dir_cntrl = DirCntrl(noTCCdir = True, TCC_select_num_bits = TCC_bits)
435 dir_cntrl.create(options, ruby_system, system)
436 dir_cntrl.number_of_TBEs = options.num_tbes
437 dir_cntrl.useL3OnWT = options.use_L3_on_WT
438 # the number_of_TBEs is inclusive of TBEs below
439
440 # Connect the Directory controller to the ruby network

--- 21 unchanged lines hidden (view full) ---

462
463 mainCluster.add(dir_cntrl)
464
465 cpuCluster = None
466 if hasattr(options, 'bw_scalor') and options.bw_scalor > 0:
467 cpuCluster = Cluster(extBW = crossbar_bw, intBW = crossbar_bw)
468 else:
469 cpuCluster = Cluster(extBW = 8, intBW = 8) # 16 GB/s
470 for i in xrange((options.num_cpus + 1) / 2):
470 for i in range((options.num_cpus + 1) // 2):
471
472 cp_cntrl = CPCntrl()
473 cp_cntrl.create(options, ruby_system, system)
474
475 exec("ruby_system.cp_cntrl%d = cp_cntrl" % i)
476 #
477 # Add controllers and sequencers to the appropriate lists
478 #

--- 20 unchanged lines hidden (view full) ---

499
500 cpuCluster.add(cp_cntrl)
501
502 gpuCluster = None
503 if hasattr(options, 'bw_scalor') and options.bw_scalor > 0:
504 gpuCluster = Cluster(extBW = crossbar_bw, intBW = crossbar_bw)
505 else:
506 gpuCluster = Cluster(extBW = 8, intBW = 8) # 16 GB/s
471
472 cp_cntrl = CPCntrl()
473 cp_cntrl.create(options, ruby_system, system)
474
475 exec("ruby_system.cp_cntrl%d = cp_cntrl" % i)
476 #
477 # Add controllers and sequencers to the appropriate lists
478 #

--- 20 unchanged lines hidden (view full) ---

499
500 cpuCluster.add(cp_cntrl)
501
502 gpuCluster = None
503 if hasattr(options, 'bw_scalor') and options.bw_scalor > 0:
504 gpuCluster = Cluster(extBW = crossbar_bw, intBW = crossbar_bw)
505 else:
506 gpuCluster = Cluster(extBW = 8, intBW = 8) # 16 GB/s
507 for i in xrange(options.num_compute_units):
507 for i in range(options.num_compute_units):
508
509 tcp_cntrl = TCPCntrl(TCC_select_num_bits = TCC_bits,
510 issue_latency = 1,
511 number_of_TBEs = 2560)
512 # TBEs set to max outstanding requests
513 tcp_cntrl.create(options, ruby_system, system)
514 tcp_cntrl.WB = options.WB_L1
515 tcp_cntrl.disableL1 = options.noL1

--- 22 unchanged lines hidden (view full) ---

538
539 tcp_cntrl.responseToTCP = MessageBuffer(ordered = True)
540 tcp_cntrl.responseToTCP.slave = ruby_system.network.master
541
542 tcp_cntrl.mandatoryQueue = MessageBuffer()
543
544 gpuCluster.add(tcp_cntrl)
545
508
509 tcp_cntrl = TCPCntrl(TCC_select_num_bits = TCC_bits,
510 issue_latency = 1,
511 number_of_TBEs = 2560)
512 # TBEs set to max outstanding requests
513 tcp_cntrl.create(options, ruby_system, system)
514 tcp_cntrl.WB = options.WB_L1
515 tcp_cntrl.disableL1 = options.noL1

--- 22 unchanged lines hidden (view full) ---

538
539 tcp_cntrl.responseToTCP = MessageBuffer(ordered = True)
540 tcp_cntrl.responseToTCP.slave = ruby_system.network.master
541
542 tcp_cntrl.mandatoryQueue = MessageBuffer()
543
544 gpuCluster.add(tcp_cntrl)
545
546 for i in xrange(options.num_sqc):
546 for i in range(options.num_sqc):
547
548 sqc_cntrl = SQCCntrl(TCC_select_num_bits = TCC_bits)
549 sqc_cntrl.create(options, ruby_system, system)
550
551 exec("ruby_system.sqc_cntrl%d = sqc_cntrl" % i)
552 #
553 # Add controllers and sequencers to the appropriate lists
554 #

--- 9 unchanged lines hidden (view full) ---

564 sqc_cntrl.responseToSQC = MessageBuffer(ordered = True)
565 sqc_cntrl.responseToSQC.slave = ruby_system.network.master
566
567 sqc_cntrl.mandatoryQueue = MessageBuffer()
568
569 # SQC also in GPU cluster
570 gpuCluster.add(sqc_cntrl)
571
547
548 sqc_cntrl = SQCCntrl(TCC_select_num_bits = TCC_bits)
549 sqc_cntrl.create(options, ruby_system, system)
550
551 exec("ruby_system.sqc_cntrl%d = sqc_cntrl" % i)
552 #
553 # Add controllers and sequencers to the appropriate lists
554 #

--- 9 unchanged lines hidden (view full) ---

564 sqc_cntrl.responseToSQC = MessageBuffer(ordered = True)
565 sqc_cntrl.responseToSQC.slave = ruby_system.network.master
566
567 sqc_cntrl.mandatoryQueue = MessageBuffer()
568
569 # SQC also in GPU cluster
570 gpuCluster.add(sqc_cntrl)
571
572 for i in xrange(options.num_cp):
572 for i in range(options.num_cp):
573
574 tcp_ID = options.num_compute_units + i
575 sqc_ID = options.num_sqc + i
576
577 tcp_cntrl = TCPCntrl(TCC_select_num_bits = TCC_bits,
578 issue_latency = 1,
579 number_of_TBEs = 2560)
580 # TBEs set to max outstanding requests

--- 37 unchanged lines hidden (view full) ---

618 #
619 # Add controllers and sequencers to the appropriate lists
620 #
621 cpu_sequencers.append(sqc_cntrl.sequencer)
622
623 # SQC also in GPU cluster
624 gpuCluster.add(sqc_cntrl)
625
573
574 tcp_ID = options.num_compute_units + i
575 sqc_ID = options.num_sqc + i
576
577 tcp_cntrl = TCPCntrl(TCC_select_num_bits = TCC_bits,
578 issue_latency = 1,
579 number_of_TBEs = 2560)
580 # TBEs set to max outstanding requests

--- 37 unchanged lines hidden (view full) ---

618 #
619 # Add controllers and sequencers to the appropriate lists
620 #
621 cpu_sequencers.append(sqc_cntrl.sequencer)
622
623 # SQC also in GPU cluster
624 gpuCluster.add(sqc_cntrl)
625
626 for i in xrange(options.num_tccs):
626 for i in range(options.num_tccs):
627
628 tcc_cntrl = TCCCntrl(l2_response_latency = options.TCC_latency)
629 tcc_cntrl.create(options, ruby_system, system)
630 tcc_cntrl.l2_request_latency = options.gpu_to_dir_latency
631 tcc_cntrl.l2_response_latency = options.TCC_latency
632 tcc_cntrl_nodes.append(tcc_cntrl)
633 tcc_cntrl.WB = options.WB_L2
634 tcc_cntrl.number_of_TBEs = 2560 * options.num_compute_units

--- 42 unchanged lines hidden ---
627
628 tcc_cntrl = TCCCntrl(l2_response_latency = options.TCC_latency)
629 tcc_cntrl.create(options, ruby_system, system)
630 tcc_cntrl.l2_request_latency = options.gpu_to_dir_latency
631 tcc_cntrl.l2_response_latency = options.TCC_latency
632 tcc_cntrl_nodes.append(tcc_cntrl)
633 tcc_cntrl.WB = options.WB_L2
634 tcc_cntrl.number_of_TBEs = 2560 * options.num_compute_units

--- 42 unchanged lines hidden ---