2 下列有關處理器之指令流與資料流分類的敘述,何者錯誤?
(A) SIMD(Single Instruction stream,Multiple Data streams)處理器可在一個時脈週期中,利用單一指令來處理多筆不同的資料,因此相對於 SISD(Single Instruction stream,Single Data stream)處理器,在處理結構性資料時較有效率
(B) SIMD(Single Instruction stream,Multiple Data streams)處理器可充分利用資料層級平行性(datalevel parallelism),因此當程式中有很多 case 或是 switch 敘述時,此類型處理器表現最好
(C)單一程式多資料(Single Program Multiple Data,SPMD)的程式結構為 MIMD(Multiple Instruction streams,Multiple Data streams)處理器上編程的一種方法
(D) MIMD(Multiple Instruction streams,Multiple Data streams)處理器可在一個時脈週期中處理屬於多個程式之多筆資料,多核心處理器(如 Intel Core i7 系列處理器)即為此類別的處理器

答案:登入後查看
統計: A(70), B(380), C(261), D(78), E(0) #2333945

詳解 (共 4 筆)

#5610868

答案是

(B) SIMD(Single Instruction stream,Multiple Data streams)處理器可充分利用資料層級平行性(datalevel parallelism)(這裡沒錯),因此當程式中有很多 for 敘述時,此類型處理器表現最好

SIMD 就要說到 向量化計算(vectorization)   

--stackflow上的英文解釋--

"Vectorization" (simplified) is the process of rewriting a loop so that instead of processing a single element of an array N times, it processes (say) 4 elements of the array simultaneously N/4 times.


--中文詳細解釋--
什麼是vectorization?
向量化計算(vectorization),也叫vectorized operation,也叫array programming,說的是一個事情:將多次for循環計算變成一次計算。
v2-9a7ba8aa82ec8d28b6a8f9661186230d_720w.jpg
上圖中,左側為vectorization,右側為尋常的For loop計算。將多次for循環計算變成一次計算完全仰仗於CPU的SIMD指令集,SIMD指令可以在一條cpu指令上處理2、4、8或者更多份的數據。在Intel處理器上,這個稱之為SSE以及後來的AVX,在Arm處理上,這個稱之為NEON。

因此簡單來說,向量化計算就是將一個loop——處理一個array的時候每次處理1個數據共處理N次,轉化為vectorization——處理一個array的時候每次同時處理8個數據共處理N/8次。


附上參考網址:
https://stackoverflow.com/questions/1422149/what-is-vectorization

https://zhuanlan.zhihu.com/p/72953129

16
0
#5282098
MIMD處理器可充分利用資料層級平行性(...
(共 84 字,隱藏中)
前往觀看
8
0
#6000401
下列有關處理器之指令流與資料流分類的敘述...
(共 262 字,隱藏中)
前往觀看
4
0
#4142205
單指令流多資料流(英語:Single I...
(共 292 字,隱藏中)
前往觀看
2
11