Commit 4a758bdd by 刘昀达

增加记分牌算法、SIMT堆栈

parent a8d0afc1
vnote_backup_file_826537664 C:/Users/Ceveraise/gitwork/gpgpu_sim_work/Software_Design_of_GPGPU-Sim/Analysis_Algorithm/SIMT_Stack.md
# SIMT_Stack
这个SIMT堆栈是用来去除warp的分歧。
#### 1、什么是warp的分歧?
因为一个warp相当于CPU的线程概念,只执行一条指令,那么当warp执行到了分支指令的时候,它可能两个分支都会执行,这种情况下,warp执行不了两条指令,就会产生分化,也就是说让2个warp来执行,可是如果继续遇到分支指令,这个情况会越来越糟糕,一个SM里面的warp是有限的,最后warp不足,可能会死锁或者执行效率低下。
为了不让warp在遇到分支指令时,产生这种分歧,需要使用这个SIMT堆栈,使得一个warp也能像CPU的线程一样,处理这种分歧状况。
![](_v_images/_1574385786_9918.png)
{
"created_time": "2019-11-18T10:38:16Z",
"files": [
{
"attachment_folder": "",
"attachments": [
],
"created_time": "2019-11-18T10:39:39Z",
"modified_time": "2019-11-18T10:39:39Z",
"name": "ScoreBoard.md"
},
{
"attachment_folder": "",
"attachments": [
],
"created_time": "2019-11-22T01:22:08Z",
"modified_time": "2019-11-22T01:22:08Z",
"name": "SIMT_Stack.md"
}
],
"sub_directories": [
],
"version": "1"
}
# SIMT Core(SM)
主要介绍SIMT Core中使用到的技术:
(1)ScoreBoard
(2)SIMT栈
## 一、运行函数(cycle)
该函数由6部分操作组成(流水线):
(1)取指(fetch)
(2)译码(decode)
(3)发射(issue)
(4)读操作数(read operands)
(5)执行(execute)
(6)写回(writeback)
MIPS(Million Instructions Per Second)的5级流水线为:(1)取指 (2)译码 (3)执行 (4)访存 (5)写回
在MIPS的指令集里面,只有Load/Store可以访问存储器,访存节拍是专门为之设计的,因此只看常规运算指令的话,流水线级数为4级:
(1)取指
(2)译码
(3)执行
(4)写回
与GPGPU-SIM的主要区别在于:(2)译码阶段,实际上该阶段可以拆分为:(1)指令译码 (2)指令发射 (3)读操作数
由此我们将GPGPU-SIM的流水线与一般CPU的流水线联系起来了。
### (一)取指:instruction fetch
### (二)译码:instruction decode
### (三)发射:issue
### (四)读操作数:read operands
### (五)执行:execute
### (六)写回:writeback
vnote_backup_file_826537664 C:/Users/Ceveraise/gitwork/gpgpu_sim_work/Software_Design_of_GPGPU-Sim/SIMT_Core.md
# SIMT Core(SM)
主要介绍SIMT Core中使用到的技术:
(1)ScoreBoard
(2)SIMT栈
## 一、运行函数(cycle)
该函数由6部分操作组成(流水线):
(1)取指(fetch)
(2)译码(decode)
(3)发射(issue)
(4)读操作数(read operands)
(5)执行(execute)
(6)写回(writeback)
MIPS(Million Instructions Per Second)的5级流水线为:(1)取指 (2)译码 (3)执行 (4)访存 (5)写回
在MIPS的指令集里面,只有Load/Store可以访问存储器,访存节拍是专门为之设计的,因此只看常规运算指令的话,流水线级数为4级:
(1)取指
(2)译码
(3)执行
(4)写回
与GPGPU-SIM的主要区别在于:(2)译码阶段,实际上该阶段可以拆分为:(1)指令译码 (2)指令发射 (3)读操作数
由此我们将GPGPU-SIM的流水线与一般CPU的流水线联系起来了。
### (一)取指:instruction fetch
### (二)译码:instruction decode
### (三)发射:issue
### (四)读操作数:read operands
### (五)执行:execute
### (六)写回:writeback
......@@ -6,11 +6,22 @@
"attachments": [
],
"created_time": "2019-11-18T10:24:34Z",
"modified_time": "2019-11-18T10:24:34Z",
"modified_time": "2019-11-18T10:24:56Z",
"name": "gpu-sim.md"
},
{
"attachment_folder": "",
"attachments": [
],
"created_time": "2019-11-20T00:29:22Z",
"modified_time": "2019-11-20T00:29:22Z",
"name": "SIMT_Core.md"
}
],
"sub_directories": [
{
"name": "Analysis_Algorithm"
}
],
"version": "1"
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment