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 --- |