diff options
| author | boyealKim <[email protected]> | 2019-07-21 02:28:59 +0900 |
|---|---|---|
| committer | boyealKim <[email protected]> | 2019-07-21 02:28:59 +0900 |
| commit | d212d7e5fdcc9f8e10779d5cfb398a451f8ad033 (patch) | |
| tree | d3c179be2725d22f7fece9f6bb6e878e7c29b0ff /src/gpgpu-sim | |
| parent | a1e2c4273542ca78098c9f4f25eebc087e0aec37 (diff) | |
take account of shfl latency
Diffstat (limited to 'src/gpgpu-sim')
| -rw-r--r-- | src/gpgpu-sim/shader.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc index 007ad42..96ba385 100644 --- a/src/gpgpu-sim/shader.cc +++ b/src/gpgpu-sim/shader.cc @@ -3002,7 +3002,7 @@ 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; @@ -3014,10 +3014,11 @@ void shader_core_config::set_pipeline_latency() { * [2] MUL * [3] MAD * [4] DIV + * [5] SHFL */ - sscanf(opcode_latency_int, "%u,%u,%u,%u,%u", + sscanf(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[3],&int_latency[4],&int_latency[5]); sscanf(opcode_latency_fp, "%u,%u,%u,%u,%u", &fp_latency[0],&fp_latency[1],&fp_latency[2], &fp_latency[3],&fp_latency[4]); @@ -3034,7 +3035,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; |
