configs,gpu-compute,mem-ruby: connect gmTokenPorts in apu_se
authorKyle Roarty <kyleroarty1716@gmail.com>
Thu, 13 Aug 2020 22:27:06 +0000 (17:27 -0500)
committerKyle Roarty <kyleroarty1716@gmail.com>
Tue, 18 Aug 2020 23:47:16 +0000 (23:47 +0000)
This patch adds gmTokenPorts to the ComputeUnit and RubyGPUCoalescer
python classes so the gmTokenPorts can be connected in apu_se.

Change-Id: Icf3cb05c757754d6935b46f14e4b1b1d5072c4ca
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/32677
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com>
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
Tested-by: kokoro <noreply+kokoro@google.com>
configs/example/apu_se.py
src/gpu-compute/GPU.py
src/mem/ruby/system/GPUCoalescer.py

index b629058f0c500f7fb9fc5f138d0f5b44db735693..59dd4c5f757bf5bec111179720cb9e26b5b09c30 100644 (file)
@@ -569,6 +569,8 @@ for i in range(n_cu):
     for j in range(wavefront_size):
         system.cpu[shader_idx].CUs[i].memory_port[j] = \
                   system.ruby._cpu_ports[gpu_port_idx].slave[j]
+    system.cpu[shader_idx].CUs[i].gmTokenPort = \
+            system.ruby._cpu_ports[gpu_port_idx].gmTokenPort
     gpu_port_idx += 1
 
 for i in range(n_cu):
index 7408bf9634aabbf850102bfce80d79199bc1d59a..aec4f4806f54ee55b5724f0713f8a62d9820cf49 100644 (file)
@@ -165,6 +165,7 @@ class ComputeUnit(ClockedObject):
     sqc_tlb_port = MasterPort("Port to the TLB for the SQC (I-cache)")
     scalar_port = MasterPort("Port to the scalar data cache")
     scalar_tlb_port = MasterPort("Port to the TLB for the scalar data cache")
+    gmTokenPort = MasterPort("Port to the GPU coalesecer for sharing tokens")
     perLaneTLB = Param.Bool(False, "enable per-lane TLB")
     prefetch_depth = Param.Int(0, "Number of prefetches triggered at a time"\
                                "(0 turns off prefetching)")
index 3345f7f945e6fb859e8f47013f3ee5e9094e419c..9d4a76bddf73fe5608cff1767a2df4454b4e8792 100644 (file)
@@ -52,3 +52,5 @@ class RubyGPUCoalescer(RubyPort):
        "max outstanding cycles for a request before " \
        "deadlock/livelock declared")
    garnet_standalone = Param.Bool(False, "")
+
+   gmTokenPort = SlavePort("Port to the CU for sharing tokens")