[請益] 關於 simulation 的效能(解法請 end)

看板EE_DSnP作者 (戲言~)時間14年前 (2012/01/14 14:21), 編輯推噓9(9040)
留言49則, 7人參與, 最新討論串1/1
好不容易把 sim -f 看起來好像完成以後 拿去測試 sim09 / pattern.09 和 sim13 / pattern.13 結果執行的時間真的是完全崩潰ˊˋ sim09 花了大約 14 秒 sim13 的話,光運算完每個 gate 的 simulation 結果就花了六秒左右 整個把 FEC groups 弄出來...就懶得測了...大概會非常恐怖 = = 跟教授那個按下去瞬間結束差超級多 @@ 想請問一下這有可能是什麼地方有問題??? 感謝!!! BTW 是用 parallel input -- 理所當然的某項事物,卻會以某天為區隔,從此變得不再理所當然。 恩田陸 夜間遠足 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.248.67.238 ※ 編輯: victoret 來自: 111.248.67.238 (01/14 14:22)

01/14 14:24, , 1F
教授應該是用hash去分FEC groups,另外有用O3試嗎
01/14 14:24, 1F

01/14 14:25, , 2F
運算一次simulation應該不會很慢才是?(O(n))
01/14 14:25, 2F
SORRY 問題還是沒解決ˊˋ 剛才測錯檔案 @@ ※ 編輯: victoret 來自: 111.248.67.238 (01/14 14:37)

01/14 14:45, , 3F
只sim dfslist上的而已唷
01/14 14:45, 3F

01/14 14:49, , 4F
所以你現在是慢在跑simulation value還是分FEC group?
01/14 14:49, 4F

01/14 14:50, , 5F
只跑 DFS 應該沒錯...應該說,這兩個測試檔的都沒有不在
01/14 14:50, 5F

01/14 14:50, , 6F
DFS 上的 AIG 吧 @@
01/14 14:50, 6F

01/14 14:51, , 7F
也是@@ 我猜是分FEC group慢吧 因為我自己是這樣...
01/14 14:51, 7F

01/14 14:52, , 8F
慢的應該是 FEC groups...sim value 那邊可以接受啦ˊˋ
01/14 14:52, 8F

01/14 14:54, , 9F
現在是 sim09 可以到 1 秒多
01/14 14:54, 9F

01/14 14:54, , 10F
但是 sim13 完完全全就是卡住了...
01/14 14:54, 10F

01/14 14:55, , 11F
那應該還ok啦 我sim13跑了10秒@@
01/14 14:55, 11F

01/14 14:58, , 12F
你可以試試看第二次之後分FEC group時Hash不要開太大
01/14 14:58, 12F

01/14 14:59, , 13F
hash 有縮...
01/14 14:59, 13F

01/14 14:59, , 14F
不過現在發生更奇怪的狀況 @@ 是說,pattern.13 就算只有
01/14 14:59, 14F

01/14 15:00, , 15F
32 個 case 也跑的天荒地老 @@
01/14 15:00, 15F

01/14 15:01, , 16F
還會出現錯誤訊息: " 已砍掉 "...真是
01/14 15:01, 16F

01/14 15:03, , 17F
那應該是分group那邊慢了囧
01/14 15:03, 17F

01/14 15:03, , 18F
那就不知道了(攤
01/14 15:03, 18F

01/14 15:15, , 19F
話說想請問一下大家 hash 一開始是給多大...總覺得跟 AIG
01/14 15:15, 19F

01/14 15:15, , 20F
的數量一樣...夠用嗎?
01/14 15:15, 20F

01/14 15:18, , 21F
不如考慮記憶體控管 改call init的方式reuse ?
01/14 15:18, 21F

01/14 15:22, , 22F
好像真的是 hash 大小問題...我變成 10 倍的大小就快多了
01/14 15:22, 22F

01/14 15:30, , 23F
殘念,case 一多又慢回來了...
01/14 15:30, 23F

01/14 15:32, , 24F
你的hashkey跟data分別是?
01/14 15:32, 24F

01/14 15:48, , 25F
key 是 sim 出來的 unsigned 和一個 0...
01/14 15:48, 25F

01/14 15:48, , 26F
個人的 key 是傳兩個東西進去,function 是相加
01/14 15:48, 26F

01/14 15:49, , 27F
然後 data 是一個...pair 裡面是兩個 vector,一個是
01/14 15:49, 27F

01/14 15:50, , 28F
CirGate* 的,另外一個是 bool...用來存有沒有 inv 用的
01/14 15:50, 28F

01/14 16:09, , 29F
hash不要開太大 32左右最好 我這樣速度跟老師差不多
01/14 16:09, 29F

01/14 16:11, , 30F
~"~雖然不一樣但是感覺差別不大,這樣我就不知道囉
01/14 16:11, 30F

01/14 16:17, , 31F
@@ 固定大小的 hash?!不過沒試過這麼小的,試試看好了
01/14 16:17, 31F

01/14 16:18, , 32F
還有想請問是否會很常用到像 check 和 replaceInsert 之
01/14 16:18, 32F

01/14 16:18, , 33F
類的函數@@?
01/14 16:18, 33F

01/14 22:07, , 34F
好長的討論串! 請記得 simulation 應該只是 linear time,
01/14 22:07, 34F

01/14 22:08, , 35F
而分 FEC groups 也是 linear time to FEC size 而已哦!
01/14 22:08, 35F

01/14 22:08, , 36F
其實我的演算法跟講義的差不多,當然有一些細節我沒有明講!
01/14 22:08, 36F

01/14 22:38, , 37F
試過了各種方法依然無解...只要跑 sim12 以後的全部都會
01/14 22:38, 37F

01/14 22:38, , 38F
卡住...
01/14 22:38, 38F

01/14 22:38, , 39F
尤其是 sim13 卡到最後會出現中文 " 已砍掉 "
01/14 22:38, 39F

01/14 22:38, , 40F
不知道是怎麼一回事 @@
01/14 22:38, 40F

01/14 23:09, , 41F
+1 QQ
01/14 23:09, 41F

01/14 23:14, , 42F
也許看一下講義 p20,我是那樣做的...
01/14 23:14, 42F

01/14 23:27, , 43F
也是用同樣方法可是...
01/14 23:27, 43F

01/14 23:27, , 44F
就是慢的不像話ˊˋ...hash 改小也試過了ˊˋ
01/14 23:27, 44F

01/15 00:00, , 45F
終˙於˙發˙現˙了!!!
01/15 00:00, 45F

01/15 00:00, , 46F
要直接用 newGroups...不要用 erase 的!
01/15 00:00, 46F

01/15 00:00, , 47F
用 erase 會等到死掉啊!
01/15 00:00, 47F

01/15 00:29, , 48F
erase會把後面的移到前面唷@@"
01/15 00:29, 48F

01/15 00:34, , 49F
對 XD 這就是崩潰的點...馬上變成 n^2
01/15 00:34, 49F
終於解決了!!! 可喜可賀!!! 問題是出在...記得要產生新的 newGroups!!! 假如用舊的直接 erase 由於刪除的都是第一個...整個時間就會大大大大的提高 @@ 所以才會 " 已砍掉 " <--- 爬舊文發現這就是 kill 的意思... 至於另外一個點則是 #1F4QBAGS 所提到的 假如每個都 gate 都存一份 FECGroup 那空間或時間會爆掉 BTW 揉合上面眾人的建議改良之後 sim13 / pattern.13 在 O3 之下只需要 1.56 秒!!! 感謝上面教授和一大串強者提供的意見!!! DSnP 板真的是溫馨 > < ※ 編輯: victoret 來自: 123.192.136.173 (01/15 00:42)
文章代碼(AID): #1F4HxjlS (EE_DSnP)