看板 Grad-ProbAsk 關於我們 聯絡資訊
大家好,想請問一下這題 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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.175.238.139 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1473517707.A.002.html
kyuudonut: 題目那個只是舉個例子吧 (D)只要舉i=0跟i=1分別到 09/11 00:07
kyuudonut: 不同的thread 就會有hazard了 都會用到 a[101] 09/11 00:07
kyuudonut: 然後你看(E) 他就把相依的兩個指令放在同一個for 09/11 00:09
kyuudonut: 注意題目舉的例(0,25,50,75) 是由compiler分配 09/11 00:11
kyuudonut: (D) 是直接丟給 4core 執行 09/11 00:11
aa06697: 題目是假設core隨機使用data 若你用message passing(你 09/11 12:38
aa06697: 可以去看一下MPI怎麼實作)可以分配特定data給core執行 就 09/11 12:38
aa06697: 可以像你所說的不會有data hazard 09/11 12:38
kyuudonut: D即使分成原po那樣依然有data hazard @@ 09/11 13:01
aa06697: QQ被原po騙惹我假設他說的是對的 09/11 13:44
aa06697: http://i.imgur.com/Rpj8sJY.jpg 09/11 13:45
aa06697: 給原po參考 應該要先寫再讀 但你分開就有可能先讀再寫 09/11 13:46
當初看到題目的時候也沒想到說還要再繼續把讀寫都列出來一個一個檢查, 誤導大家了真是抱歉,謝謝你們的回答! ※ 編輯: angel861047 (1.175.238.139), 09/11/2016 22:14:46 ※ 編輯: angel861047 (1.175.59.68), 02/05/2017 20:55:12