→ e124553423:教授應該是用hash去分FEC groups,另外有用O3試嗎 01/14 14:24
→ e124553423:運算一次simulation應該不會很慢才是?(O(n)) 01/14 14:25
SORRY 問題還是沒解決ˊˋ
剛才測錯檔案 @@
※ 編輯: victoret 來自: 111.248.67.238 (01/14 14:37)
→ wmin0:只sim dfslist上的而已唷 01/14 14:45
→ e124553423:所以你現在是慢在跑simulation value還是分FEC group? 01/14 14:49
→ victoret:只跑 DFS 應該沒錯...應該說,這兩個測試檔的都沒有不在 01/14 14:50
→ victoret:DFS 上的 AIG 吧 @@ 01/14 14:50
推 wmin0:也是@@ 我猜是分FEC group慢吧 因為我自己是這樣... 01/14 14:51
→ victoret:慢的應該是 FEC groups...sim value 那邊可以接受啦ˊˋ 01/14 14:52
→ victoret:現在是 sim09 可以到 1 秒多 01/14 14:54
→ victoret:但是 sim13 完完全全就是卡住了... 01/14 14:54
推 wmin0:那應該還ok啦 我sim13跑了10秒@@ 01/14 14:55
→ e124553423:你可以試試看第二次之後分FEC group時Hash不要開太大 01/14 14:58
→ victoret:hash 有縮... 01/14 14:59
→ victoret:不過現在發生更奇怪的狀況 @@ 是說,pattern.13 就算只有 01/14 14:59
→ victoret:32 個 case 也跑的天荒地老 @@ 01/14 15:00
→ victoret:還會出現錯誤訊息: " 已砍掉 "...真是 01/14 15:01
推 wmin0:那應該是分group那邊慢了囧 01/14 15:03
→ e124553423:那就不知道了(攤 01/14 15:03
→ victoret:話說想請問一下大家 hash 一開始是給多大...總覺得跟 AIG 01/14 15:15
→ victoret:的數量一樣...夠用嗎? 01/14 15:15
推 wmin0:不如考慮記憶體控管 改call init的方式reuse ? 01/14 15:18
→ victoret:好像真的是 hash 大小問題...我變成 10 倍的大小就快多了 01/14 15:22
→ victoret:殘念,case 一多又慢回來了... 01/14 15:30
→ e124553423:你的hashkey跟data分別是? 01/14 15:32
→ victoret:key 是 sim 出來的 unsigned 和一個 0... 01/14 15:48
→ victoret:個人的 key 是傳兩個東西進去,function 是相加 01/14 15:48
→ victoret:然後 data 是一個...pair 裡面是兩個 vector,一個是 01/14 15:49
→ victoret:CirGate* 的,另外一個是 bool...用來存有沒有 inv 用的 01/14 15:50
推 kickpp:hash不要開太大 32左右最好 我這樣速度跟老師差不多 01/14 16:09
→ e124553423:~"~雖然不一樣但是感覺差別不大,這樣我就不知道囉 01/14 16:11
→ victoret:@@ 固定大小的 hash?!不過沒試過這麼小的,試試看好了 01/14 16:17
→ victoret:還有想請問是否會很常用到像 check 和 replaceInsert 之 01/14 16:18
→ victoret:類的函數@@? 01/14 16:18
推 ric2k1:好長的討論串! 請記得 simulation 應該只是 linear time, 01/14 22:07
→ ric2k1:而分 FEC groups 也是 linear time to FEC size 而已哦! 01/14 22:08
→ ric2k1:其實我的演算法跟講義的差不多,當然有一些細節我沒有明講! 01/14 22:08
→ victoret:試過了各種方法依然無解...只要跑 sim12 以後的全部都會 01/14 22:38
→ victoret:卡住... 01/14 22:38
→ victoret:尤其是 sim13 卡到最後會出現中文 " 已砍掉 " 01/14 22:38
→ victoret:不知道是怎麼一回事 @@ 01/14 22:38
推 inferior9527:+1 QQ 01/14 23:09
推 ric2k1:也許看一下講義 p20,我是那樣做的... 01/14 23:14
→ victoret:也是用同樣方法可是... 01/14 23:27
→ victoret:就是慢的不像話ˊˋ...hash 改小也試過了ˊˋ 01/14 23:27
→ victoret:終˙於˙發˙現˙了!!! 01/15 00:00
→ victoret:要直接用 newGroups...不要用 erase 的! 01/15 00:00
→ victoret:用 erase 會等到死掉啊! 01/15 00:00
推 simpdanny:erase會把後面的移到前面唷@@" 01/15 00:29
→ victoret:對 XD 這就是崩潰的點...馬上變成 n^2 01/15 00:34
終於解決了!!!
可喜可賀!!!
問題是出在...記得要產生新的 newGroups!!!
假如用舊的直接 erase
由於刪除的都是第一個...整個時間就會大大大大的提高 @@
所以才會 " 已砍掉 " <--- 爬舊文發現這就是 kill 的意思...
至於另外一個點則是 #1F4QBAGS 所提到的
假如每個都 gate 都存一份 FECGroup 那空間或時間會爆掉
BTW 揉合上面眾人的建議改良之後
sim13 / pattern.13 在 O3 之下只需要 1.56 秒!!!
感謝上面教授和一大串強者提供的意見!!!
DSnP 板真的是溫馨 > <
※ 編輯: victoret 來自: 123.192.136.173 (01/15 00:42)