[理工] 103 台大電機丙 計組 第7題 (已解決)

作者: angel861047 (FB不放大頭貼的神經質人)   2016-09-10 22:28:25
大家好,想請問一下這題
http://i.imgur.com/f6EB6KN.png
http://i.imgur.com/XmaKnaB.png
http://i.imgur.com/uF1JEuO.png
張凡計組的書中,在第5章-『利用管線增加效能』有提到,
可以藉由迴圈展開來進行平行處理,所以這邊我也想用一樣的方法來做,
具體來說就是檢查一下迴圈裡面有沒有什麼data hazard和control hazard的情形發生,
我也像他題目中的範例一樣,分成0、25、50、75來看,
看不出會有data hazard的問題啊@@?
這題張凡考古題給的答案是a、b、c、e
想請大家幫忙解惑一下@@。
105年的考題也有類似的題目,我也是依照這個方式去選答案的,
貼在這邊給大家比較一下。
http://i.imgur.com/wCpaV3N.png
作者: kyuudonut (善良老百姓)   2016-09-11 00:07:00
題目那個只是舉個例子吧 (D)只要舉i=0跟i=1分別到不同的thread 就會有hazard了 都會用到 a[101]然後你看(E) 他就把相依的兩個指令放在同一個for注意題目舉的例(0,25,50,75) 是由compiler分配(D) 是直接丟給 4core 執行
作者: aa06697 (todo se andarà)   2016-09-11 12:38:00
題目是假設core隨機使用data 若你用message passing(你可以去看一下MPI怎麼實作)可以分配特定data給core執行 就可以像你所說的不會有data hazard
作者: kyuudonut (善良老百姓)   2016-09-11 13:01:00
D即使分成原po那樣依然有data hazard @@
作者: aa06697 (todo se andarà)   2016-09-11 13:44:00
QQ被原po騙惹我假設他說的是對的http://i.imgur.com/Rpj8sJY.jpg給原po參考 應該要先寫再讀 但你分開就有可能先讀再寫

Links booklink

Contact Us: admin [ a t ] ucptt.com