GPU程式設計
關於GPU的SIMT(單一指令、多執行緒)方式與CPU的SIMD指令之差異,下列何者正確?
- ASIMT對一筆資料同時執行多個指令,SIMD則對一筆資料執行一個指令
- BSIMT與SIMD完全相同,只是名稱不同
- CSIMT可將各執行緒寫成獨立的程式,分支也由硬體處理,而SIMD則需由程式設計師或編譯器明確使用寬度固定的向量指令
查看答案與解析
正確答案:C. SIMT可將各執行緒寫成獨立的程式,分支也由硬體處理,而SIMD則需由程式設計師或編譯器明確使用寬度固定的向量指令
CPU的SIMD是對集結了4個或8個資料的向量暫存器施加一個指令,因此撰寫程式時必須留意向量的寬度。GPU的SIMT則是程式設計師照一般方式撰寫一個執行緒的處理,再由硬體每32個一組,以相同指令運作。各執行緒也可以分支,硬體會依序執行分歧出的路徑,但此時效率會下降。
- A. 兩者都是對多筆資料執行一個指令。
- B. 程式的撰寫方式與分支的處理方式不同。
- C. 正確。內部雖以相同指令運作,但撰寫方式不同。