→ lingege32: 答案只給I J01/18 17:10
※ 編輯: lingege32 (42.72.18.57), 01/18/2017 17:18:56
推 wsps51235: 推 有同樣疑問01/18 17:40
推 yupog2003: 請問答案是什麼呢?01/18 17:59
※ 編輯: lingege32 (42.72.18.57), 01/18/2017 18:06:56
→ lingege32: 使用到 temporal的是 I J01/18 18:08
→ lingege32: 使用到spatial的是 A[I][J]01/18 18:08
→ lingege32: 我想問的是第二題ˊˋ01/18 18:08
→ lingege32: 剛剛我有打錯 重新編輯了01/18 18:08
※ 編輯: lingege32 (42.72.18.57), 01/18/2017 18:08:50
推 xuite11: Cache 很小 沒有辦法裝下全部的B[i][0],意思是 當你用 01/18 18:17
→ xuite11: 完B[7][0]要找B[0][0]的時候,B[0][0]已經不在cache中了 01/18 18:17
→ xuite11: ,因此沒有用到temporal locality 01/18 18:17
推 yupog2003: 那這樣我有跟原po一樣的疑問,雖然B[I][0]沒有I,J的 01/18 18:18
→ yupog2003: temporal locality那麼久,可是也算有 01/18 18:18
→ xuite11: 好吧我上面推文的時候好像看錯了,然後我也被你們說服了 01/18 18:30
→ lingege32: xu大 可是在內圈的時候 B[0][0]會存在在cache內 在內 01/18 18:31
→ lingege32: 圈會一直用這個block 不算用到temporal嗎 01/18 18:31
→ xuite11: 為什麼B[i][0]沒有temporal@@ 01/18 18:31
→ yupog2003: 歡迎xu大一起加入有疑問的行列 01/18 18:32
→ xuite11: 摁我也在思考這個問題惹 01/18 18:32
→ ken52011219: 我也有疑... 我先看個題目 01/18 18:52
→ ken52011219: 這題答案 2.a i,j,B[J][0] b. i,j 01/18 19:00
→ ken52011219: 額 抱歉我只回成紅算盤的題目 01/18 19:02
→ ken52011219: 慘 我也要加入你們了@@ 01/18 19:15
→ lingege32: 疑惑行列越來越多了QAQ 01/18 19:16
→ ken52011219: 我推測 因為 B[i][0] 它總共需要用到八次而已 01/18 19:24
→ ken52011219: 只是這八次的每次都是 J=1 to 8000 的總共時間 01/18 19:24
→ ken52011219: 這部分紅算盤也有類似題目 將i放在外圍時 B[i][0] 01/18 19:25
→ ken52011219: 也就是我上面打的ans b. i,j 01/18 19:26
→ ken52011219: 感覺 temporl 不能將「連續使用」算在內 01/18 19:31
→ lingege32: 喔喔哦! 根據k大讓我感覺到 01/18 19:32
→ lingege32: 其實內圈是B[0][0]這個數字一直被用到,而不是這個“ 01/18 19:32
→ ken52011219: 而是間段性的被reference,否則太浪費時間去access了 01/18 19:32
→ lingege32: 變數”一直被用到 而B[I][0]是要過很久才會再一次用到 01/18 19:32
→ lingege32: 但是如果照k大的說法 是不是I也沒有用到temporal的好 01/18 19:37
→ lingege32: 處 因為他也一直都是同一個數字 01/18 19:37
→ ken52011219: 不行 我剛剛那種說法也無法說服我@_@ 01/18 20:03
→ lingege32: 繼續疑惑Orz 01/18 20:09
→ ken52011219: 看完Stackoverflow 瞬間通了 01/18 20:24
→ ken52011219: 對於 i 而言,每次在B[i][0] & A[I][J] 都會使用到i 01/18 20:25
→ ken52011219: 的相同 i 的value 01/18 20:25
→ ken52011219: 對於 j 而言,同上 01/18 20:25
→ ken52011219: 對於 A[I][J] 而言 , 並不會有某個時刻再被使用 01/18 20:27
→ ken52011219: A[I][J] 進入相同的 address 01/18 20:27
→ ken52011219: 對於A[J][I] 而言 ,同上 01/18 20:27
→ ken52011219: 對於 B[I][J] 而言,也不會有某個時刻再使用相同的 01/18 20:28
→ ken52011219: B[I][0] 01/18 20:28
→ ken52011219: B[I][0] 進入相同的 address 01/18 20:29
→ yupog2003: ken大是看哪一篇stackoverflow的文章呢? 01/18 20:40
→ ken52011219: 我看得跟你一樣 01/18 20:41
→ yupog2003: 他寫的概念跟po想的很像 01/18 20:41
→ yupog2003: 他說we could say that references to j and a[i] are 01/18 20:43
→ yupog2003: temporally local 01/18 20:43
→ yupog2003: 而我覺得那篇文章中a[i]的角色就跟這裡的B[I][0]很像 01/18 20:46
→ yupog2003: 都是inner loop在跑的時候不會變動的記憶體位址 01/18 20:47
→ lingege32: 還是不太懂K大的意思,B[I][0]不是會在內圈一直被進入 01/18 22:37
→ lingege32: 相同的address拿取資料嗎 01/18 22:38
→ ken52011219: 剛睡醒腦袋可能不清楚 我想表達的是 不會有另一個變 01/19 09:07
→ ken52011219: 數 B[i][0] 除了在 A[I][J]=B[I][0]+A[J][I] 被使用 01/19 09:08
→ ken52011219: 不對我在講甚麼@_@ B[I][0]就跟昨天我一開始說的一樣 01/19 09:25
→ lingege32: 我大概懂那個意思了 謝謝各位神人qq 01/19 15:21