summaryrefslogtreecommitdiff
path: root/src/cuda-sim
diff options
context:
space:
mode:
authorRoland Green <[email protected]>2019-08-26 15:14:22 -0400
committerGitHub <[email protected]>2019-08-26 15:14:22 -0400
commitb88c9e9a545960b7fcc1c373b60005612296158b (patch)
tree1e32c07e932b3d3cc6b977e29a1327274f4f29a8 /src/cuda-sim
parent2a6788b59055b5ce694882a282af0cc6311854d4 (diff)
parent6be23a1b36a3311c7dafc45a5e692e38cb351337 (diff)
Merge branch 'dev' into fix_warnings
Diffstat (limited to 'src/cuda-sim')
-rw-r--r--src/cuda-sim/cuda-sim.cc2
-rw-r--r--src/cuda-sim/opcodes.h6
-rw-r--r--src/cuda-sim/ptx.l3
-rw-r--r--src/cuda-sim/ptx_ir.cc6
4 files changed, 13 insertions, 4 deletions
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc
index f8d0b3e..fbce75b 100644
--- a/src/cuda-sim/cuda-sim.cc
+++ b/src/cuda-sim/cuda-sim.cc
@@ -858,7 +858,7 @@ void ptx_instruction::set_opcode_and_latency()
op=TENSOR_CORE_OP;
break;
case SHFL_OP:
- latency = 32;
+ latency = 4;
initiation_interval = 4;
break;
default:
diff --git a/src/cuda-sim/opcodes.h b/src/cuda-sim/opcodes.h
index b91d92f..86d3b99 100644
--- a/src/cuda-sim/opcodes.h
+++ b/src/cuda-sim/opcodes.h
@@ -68,6 +68,10 @@ enum wmma_type{
MMA,
ROW,
COL,
- M16N16K16
+ M16N16K16,
+ M32N8K16,
+ M8N32K16
+
+
};
#endif
diff --git a/src/cuda-sim/ptx.l b/src/cuda-sim/ptx.l
index 3a2a839..2dadda4 100644
--- a/src/cuda-sim/ptx.l
+++ b/src/cuda-sim/ptx.l
@@ -175,6 +175,9 @@ breakaddr TC; yylval->int_value = BREAKADDR_OP; return OPCODE;
\.row TC; yylval->int_value = ROW; return LAYOUT;
\.col TC; yylval->int_value = COL; return LAYOUT;
\.m16n16k16 TC; yylval->int_value = M16N16K16; return CONFIGURATION;
+\.m32n8k16 TC; yylval->int_value = M32N8K16; return CONFIGURATION;
+\.m8n32k16 TC; yylval->int_value = M8N32K16; return CONFIGURATION;
+
\.f4e TC; return PRMT_F4E_MODE;
\.b4e TC; return PRMT_B4E_MODE;
\.rc8 TC; return PRMT_RC8_MODE;
diff --git a/src/cuda-sim/ptx_ir.cc b/src/cuda-sim/ptx_ir.cc
index 3384d49..6978cc1 100644
--- a/src/cuda-sim/ptx_ir.cc
+++ b/src/cuda-sim/ptx_ir.cc
@@ -186,8 +186,8 @@ void symbol_table::add_function( function_info *func, const char *filename, unsi
//Jin: handle instruction group for cdp
symbol_table* symbol_table::start_inst_group() {
- char inst_group_name[1024];
- snprintf(inst_group_name, 1024, "%s_inst_group_%u", m_scope_name.c_str(), m_inst_group_id);
+ char inst_group_name[4096];
+ snprintf(inst_group_name, 4096, "%s_inst_group_%u", m_scope_name.c_str(), m_inst_group_id);
//previous added
assert(m_inst_group_symtab.find(std::string(inst_group_name)) == m_inst_group_symtab.end());
@@ -1154,6 +1154,8 @@ ptx_instruction::ptx_instruction( int opcode,
m_wmma_layout[rr++]=last_ptx_inst_option;
break;
case M16N16K16:
+ case M32N8K16:
+ case M8N32K16:
break;
default:
assert(0);