[gem5-dev] Change in gem5/gem5[develop]: gpu-compute: Add methods to read GPU memory requestor ID

2022-03-25 Thread Matthew Poremba (Gerrit) via gem5-dev
Matthew Poremba has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/57651 )


 (

12 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the  
submitted one.

 )Change subject: gpu-compute: Add methods to read GPU memory requestor ID
..

gpu-compute: Add methods to read GPU memory requestor ID

These methods are called from various places to override the requestor
ID of a request in order to determine which Ruby network a request
should be routed on.

Change-Id: Ic0270ddd7123f0457a13144e69ef9132204d4334
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/57651
Reviewed-by: Matt Sinclair 
Maintainer: Matt Sinclair 
Tested-by: kokoro 
---
M src/gpu-compute/compute_unit.cc
M src/gpu-compute/compute_unit.hh
M src/gpu-compute/gpu_command_processor.cc
M src/gpu-compute/gpu_command_processor.hh
M src/gpu-compute/shader.cc
M src/gpu-compute/shader.hh
6 files changed, 48 insertions(+), 0 deletions(-)

Approvals:
  Matt Sinclair: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass




diff --git a/src/gpu-compute/compute_unit.cc  
b/src/gpu-compute/compute_unit.cc

index f3db81c..cc6244b 100644
--- a/src/gpu-compute/compute_unit.cc
+++ b/src/gpu-compute/compute_unit.cc
@@ -2010,6 +2010,15 @@
 }

 /**
+ * Forward the VRAM requestor ID needed for device memory from shader.
+ */
+RequestorID
+ComputeUnit::vramRequestorId()
+{
+return FullSystem ? shader->vramRequestorId() : requestorId();
+}
+
+/**
  * get the result of packets sent to the LDS when they return
  */
 bool
diff --git a/src/gpu-compute/compute_unit.hh  
b/src/gpu-compute/compute_unit.hh

index 10fd2f9..87ed541 100644
--- a/src/gpu-compute/compute_unit.hh
+++ b/src/gpu-compute/compute_unit.hh
@@ -458,6 +458,7 @@
 void updatePageDivergenceDist(Addr addr);

 RequestorID requestorId() { return _requestorId; }
+RequestorID vramRequestorId();

 bool isDone() const;
 bool isVectorAluIdle(uint32_t simdId) const;
diff --git a/src/gpu-compute/gpu_command_processor.cc  
b/src/gpu-compute/gpu_command_processor.cc

index 9499d47..0f74cb1 100644
--- a/src/gpu-compute/gpu_command_processor.cc
+++ b/src/gpu-compute/gpu_command_processor.cc
@@ -65,6 +65,15 @@
 return *hsaPP;
 }

+/**
+ * Forward the VRAM requestor ID needed for device memory from GPU device.
+ */
+RequestorID
+GPUCommandProcessor::vramRequestorId()
+{
+return gpuDevice->vramRequestorId();
+}
+
 TranslationGenPtr
 GPUCommandProcessor::translate(Addr vaddr, Addr size)
 {
diff --git a/src/gpu-compute/gpu_command_processor.hh  
b/src/gpu-compute/gpu_command_processor.hh

index 1bc19c7..ec163ed 100644
--- a/src/gpu-compute/gpu_command_processor.hh
+++ b/src/gpu-compute/gpu_command_processor.hh
@@ -76,6 +76,7 @@
 GPUCommandProcessor(const Params &p);

 HSAPacketProcessor& hsaPacketProc();
+RequestorID vramRequestorId();

 void setGPUDevice(AMDGPUDevice *gpu_device);
 void setShader(Shader *shader);
diff --git a/src/gpu-compute/shader.cc b/src/gpu-compute/shader.cc
index a4e72b3..ebacbb5 100644
--- a/src/gpu-compute/shader.cc
+++ b/src/gpu-compute/shader.cc
@@ -523,6 +523,15 @@
 stats.shaderActiveTicks += curTick() - _lastInactiveTick;
 }

+/**
+ * Forward the VRAM requestor ID needed for device memory from CP.
+ */
+RequestorID
+Shader::vramRequestorId()
+{
+return gpuCmdProc.vramRequestorId();
+}
+
 Shader::ShaderStats::ShaderStats(statistics::Group *parent, int wf_size)
 : statistics::Group(parent),
   ADD_STAT(allLatencyDist, "delay distribution for all"),
diff --git a/src/gpu-compute/shader.hh b/src/gpu-compute/shader.hh
index 0ea8741..96ad15d 100644
--- a/src/gpu-compute/shader.hh
+++ b/src/gpu-compute/shader.hh
@@ -183,6 +183,8 @@
 shHiddenPrivateBaseVmid = sh_hidden_base_new;
 }

+RequestorID vramRequestorId();
+
 EventFunctionWrapper tickEvent;

 // is this simulation going to be timing mode in the memory?

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/57651
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Ic0270ddd7123f0457a13144e69ef9132204d4334
Gerrit-Change-Number: 57651
Gerrit-PatchSet: 18
Gerrit-Owner: Matthew Poremba 
Gerrit-Reviewer: Matt Sinclair 
Gerrit-Reviewer: Matthew Poremba 
Gerrit-Reviewer: kokoro 
Gerrit-MessageType: merged
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Change in gem5/gem5[develop]: gpu-compute: Add methods to read GPU memory requestor ID

2022-03-14 Thread Matthew Poremba (Gerrit) via gem5-dev
Matthew Poremba has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/57651 )



Change subject: gpu-compute: Add methods to read GPU memory requestor ID
..

gpu-compute: Add methods to read GPU memory requestor ID

These methods are called from various places to override the requestor
ID of a request in order to determine which Ruby network a request
should be routed on.

Change-Id: Ic0270ddd7123f0457a13144e69ef9132204d4334
---
M src/gpu-compute/compute_unit.cc
M src/gpu-compute/compute_unit.hh
M src/gpu-compute/gpu_command_processor.cc
M src/gpu-compute/gpu_command_processor.hh
M src/gpu-compute/shader.cc
M src/gpu-compute/shader.hh
6 files changed, 44 insertions(+), 0 deletions(-)



diff --git a/src/gpu-compute/compute_unit.cc  
b/src/gpu-compute/compute_unit.cc

index f3db81c..11802d2 100644
--- a/src/gpu-compute/compute_unit.cc
+++ b/src/gpu-compute/compute_unit.cc
@@ -2010,6 +2010,15 @@
 }

 /**
+ * Forward the VRAM requestor ID needed for device memory from shader.
+ */
+RequestorID
+ComputeUnit::vramRequestorId()
+{
+return shader->vramRequestorId();
+}
+
+/**
  * get the result of packets sent to the LDS when they return
  */
 bool
diff --git a/src/gpu-compute/compute_unit.hh  
b/src/gpu-compute/compute_unit.hh

index 10fd2f9..87ed541 100644
--- a/src/gpu-compute/compute_unit.hh
+++ b/src/gpu-compute/compute_unit.hh
@@ -458,6 +458,7 @@
 void updatePageDivergenceDist(Addr addr);

 RequestorID requestorId() { return _requestorId; }
+RequestorID vramRequestorId();

 bool isDone() const;
 bool isVectorAluIdle(uint32_t simdId) const;
diff --git a/src/gpu-compute/gpu_command_processor.cc  
b/src/gpu-compute/gpu_command_processor.cc

index 9499d47..0f74cb1 100644
--- a/src/gpu-compute/gpu_command_processor.cc
+++ b/src/gpu-compute/gpu_command_processor.cc
@@ -65,6 +65,15 @@
 return *hsaPP;
 }

+/**
+ * Forward the VRAM requestor ID needed for device memory from GPU device.
+ */
+RequestorID
+GPUCommandProcessor::vramRequestorId()
+{
+return gpuDevice->vramRequestorId();
+}
+
 TranslationGenPtr
 GPUCommandProcessor::translate(Addr vaddr, Addr size)
 {
diff --git a/src/gpu-compute/gpu_command_processor.hh  
b/src/gpu-compute/gpu_command_processor.hh

index 1bc19c7..ec163ed 100644
--- a/src/gpu-compute/gpu_command_processor.hh
+++ b/src/gpu-compute/gpu_command_processor.hh
@@ -76,6 +76,7 @@
 GPUCommandProcessor(const Params &p);

 HSAPacketProcessor& hsaPacketProc();
+RequestorID vramRequestorId();

 void setGPUDevice(AMDGPUDevice *gpu_device);
 void setShader(Shader *shader);
diff --git a/src/gpu-compute/shader.cc b/src/gpu-compute/shader.cc
index a4e72b3..ebacbb5 100644
--- a/src/gpu-compute/shader.cc
+++ b/src/gpu-compute/shader.cc
@@ -523,6 +523,15 @@
 stats.shaderActiveTicks += curTick() - _lastInactiveTick;
 }

+/**
+ * Forward the VRAM requestor ID needed for device memory from CP.
+ */
+RequestorID
+Shader::vramRequestorId()
+{
+return gpuCmdProc.vramRequestorId();
+}
+
 Shader::ShaderStats::ShaderStats(statistics::Group *parent, int wf_size)
 : statistics::Group(parent),
   ADD_STAT(allLatencyDist, "delay distribution for all"),
diff --git a/src/gpu-compute/shader.hh b/src/gpu-compute/shader.hh
index 0ea8741..96ad15d 100644
--- a/src/gpu-compute/shader.hh
+++ b/src/gpu-compute/shader.hh
@@ -183,6 +183,8 @@
 shHiddenPrivateBaseVmid = sh_hidden_base_new;
 }

+RequestorID vramRequestorId();
+
 EventFunctionWrapper tickEvent;

 // is this simulation going to be timing mode in the memory?

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/57651
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Ic0270ddd7123f0457a13144e69ef9132204d4334
Gerrit-Change-Number: 57651
Gerrit-PatchSet: 1
Gerrit-Owner: Matthew Poremba 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s