summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim
diff options
context:
space:
mode:
authortgrogers <[email protected]>2020-04-07 13:34:21 -0400
committertgrogers <[email protected]>2020-04-07 13:34:21 -0400
commitbeed0538ca94585475374690291a03fafba1e1f2 (patch)
tree556879d5dc6c2498ca329aa4a19693f5ed4900e3 /src/gpgpu-sim
parent75afd00f516bf8298cdce1f8653e98c677c03b22 (diff)
parente7fbfaa347c0acf8a6702c1e684a8e2ad8d3f733 (diff)
Merge remote-tracking branch 'localpub/dev' into dev
Diffstat (limited to 'src/gpgpu-sim')
-rw-r--r--src/gpgpu-sim/shader.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc
index a638f5c..b596c0d 100644
--- a/src/gpgpu-sim/shader.cc
+++ b/src/gpgpu-sim/shader.cc
@@ -3140,7 +3140,7 @@ unsigned int shader_core_config::max_cta(const kernel_info_t &k) const {
void shader_core_config::set_pipeline_latency() {
// calculate the max latency based on the input
- unsigned int_latency[5];
+ unsigned int_latency[6];
unsigned fp_latency[5];
unsigned dp_latency[5];
unsigned sfu_latency;
@@ -3152,10 +3152,11 @@ void shader_core_config::set_pipeline_latency() {
* [2] MUL
* [3] MAD
* [4] DIV
+ * [5] SHFL
*/
- sscanf(gpgpu_ctx->func_sim->opcode_latency_int, "%u,%u,%u,%u,%u",
+ sscanf(gpgpu_ctx->func_sim->opcode_latency_int, "%u,%u,%u,%u,%u,%u",
&int_latency[0], &int_latency[1], &int_latency[2], &int_latency[3],
- &int_latency[4]);
+ &int_latency[4], &int_latency[5]);
sscanf(gpgpu_ctx->func_sim->opcode_latency_fp, "%u,%u,%u,%u,%u",
&fp_latency[0], &fp_latency[1], &fp_latency[2], &fp_latency[3],
&fp_latency[4]);
@@ -3170,7 +3171,7 @@ void shader_core_config::set_pipeline_latency() {
max_sfu_latency = std::max(dp_latency[4], sfu_latency);
// assume that the max operation has the max latency
max_sp_latency = fp_latency[1];
- max_int_latency = int_latency[1];
+ max_int_latency = std::max(int_latency[1], int_latency[5]);
max_dp_latency = dp_latency[1];
max_tensor_core_latency = tensor_latency;
}