[討論] GPU加速Transistor層的模擬器
不想走冤枉路.... 雖然有找過資料
但找到的資料似乎是一些大學教授和硬體大廠的研界成果發表 論文也有
感覺有很高的技術門檻 門檻高就算了 主要是怕結果實際上也沒如同想像中好
想問看看有沒有已經走過這條路了 不知道通不通或是值不值得
模擬器最傳統的做法是cpu指令層的模擬 這種模擬方式好實作
但正確度要拉高到一個水準 就需要很高代價
尤其是cycle accurate的模擬問題
要100%正確 就要層邏輯閘層去模擬運算結果
但邏輯閘層運算量遠大於指令模擬 主要是因為邏輯閘層運算都是同時間平行的
這種特性很適合GPU 如果像是紅白機MOS 6502的話邏輯閘數大概有4千5百多
目前看到用一般cpu去計算邏輯閘模擬計算 非常多秒才能算出一張frame
用指令集模擬的方式 每一秒可以算出好幾百張frame 差異非常巨大
不知道用gpu來模擬FPGA那種陣列 先不提有沒有商用價值
效率能不能提升到實用價值 不知道有沒有人公司剛好有做過這研究
之前移植專案做到一半 想研究一下改用GPU平行處理來處理邏輯閘模擬
寫一寫 還沒到改寫的部分 還在JS PORTING到C#的階段就丟著
如過是死路 就算了
PS.我的理想是靠GPU模擬一張FPGA 拆晶片用放大鏡把內部邏輯描繪出來
然後燒到FPGA上 有一些骨灰迷是有在做這事情
像這網站 http://www.visual6502.org
但目前還沒看到靠GPU模擬FPGA 把電路燒進去的
現在還在移植 http://www.visual6502.org/JSSim/index.html 到C#版本
--
要有hdl parser然後compiler最後大魔王scheduler
我可以幫忙哦XD XDXD
看Nvidia的報告,結果很驚人啊,10倍以上差距
要不要先討論你模擬到這麼底層的意義?各邏輯閘、各走線的ti
ming還是沒模擬到;如果想找模擬的加速方法,現在的軟硬體
協調模擬都是搭FPGA...你的做法不是不行,也許AWS的雲端FPGA
真的這麼做,只是就你個人意義何在?
目前一些骨灰迷 把晶片磨開 用放大鏡把裡頭線路邏輯閘等復刻描繪出來 用這層去跑是真的可以跑 就慢到炸... 如果效率能改善到基本實用程度 對模擬器發展是一大里程碑 保證硬體原汁原味 以後要模擬啥晶片 反正拆晶片 放大鏡復刻描繪就好
C家有想搞過?不過尚未看到商用化的tool
C家是哪一家?
別的先不說 abstract -> cycle accurate的很難跑了
下到 transistor的 @[email protected]~ 你就想著把spice 拿來跑數位
這....XD 當然有人這樣做過啊 還可以gpu加速
但解邏輯慢到一個不行 解數值還可以 @[email protected]
GPU 不是萬能 解這種東西還不如用cpus+ fpga emu
是有查 不少國外論文有 也有成果發表
https://tinyurl.com/ycfl4lp2但看不太懂是否達實用程度 還是目前仍屬於理論驗證.實驗室發展階段 雖然覺得這議題離我的程度有段差距 但如果行得通 仍然會想去嘗試看看 看到人家移植
https://www.youtube.com/watch?v=tVRMG6Ikrxw※ 編輯: erspicu (36.239.97.253 臺灣), 12/31/2020 11:21:51
瞭解你想做的事了,這麼少的邏輯閘,直接擺進FPGA就好,小FP
FPGA有的人不多阿...一般玩家花錢買高階顯卡正常 但買FPGA除非是相關行業的 以及最終是希望可以在電腦上使用
GA應該還比你顯卡便宜呀,放GPU跑模擬像是在現代想打造一個
高效率蒸汽汽車,不是不行但方向怪怪的。
我對GPU不是很熟,GPU擅長平行處理,為什麼不用CPU做?
邏輯電路的運作就是平行的
※ 編輯: erspicu (36.239.97.253 臺灣), 12/31/2020 16:21:51C家是cadence吧
至少商用沒有 然後目前GPU其實不好模擬這種
哇 那個slide 上還有黃仁勳啊XD
我人沒那麼好 我懶得解釋為什麼不行 總之就是不太行
那篇文章講的是用gpu 解 事實真是如此嗎 (笑)
國外有太多這類文章了 後來也沒怎麼做下去XD
都講講x話 沒怎麼思考就做的
你的意思是
https://tinyurl.com/ycfl4lp2這篇教授和裡頭相關清單的人物都在講幹話? Acknowledgement Contributions from David Wang (Stanford University), Yuhao Zhu (University of Texas at Austin), Hao Qian (AMD), and Lingfeng Wang (Tsinghua University) Insightful discussions with Dr. Gilbert Chen (Sandvine), Prof. Radu Marculescu (Carnegie Mellon University), Dr. Li Shang (Intel), Xin Zhou (Intel), and Jen-Hsun Huang (NVIDIA) 然後IEEE期刊的論文在話唬爛?? 然後他們做的事情毫無意義? 我相信他們不會沒思考就做 更不會覺得沒意義 只是好奇發展程度是理論驗證和發展階段 還是真的效能已達實務上能應用階段
有可能是拿了計劃要做新方向而做
C家快有混合平台了 XD
理論是理論 不考慮實際情況的文章多的去了
這篇起頭是在 2011 ICCAD 如果真做那麼好 現在早有
產品了.... 這篇我在n年前就看過了 當時有有爭論過
為什麼寫文章可以 實際做出來會有很大的落差
而且他用的方法跟你想的不一樣哦 他是拿來解現在用
CPU等解 timing問題為起始 等於你拿 gpu解graph
GPU的計算優勢先回去看看吧 又不是核多就好
核多 arm或是rv最多好嗎 @[email protected]~ gpu特性就不是這樣的
你連C家是那一家都不知道了@[email protected]~ 那 也對啦 到不意外
S家M家其實也做過這事 結論:FPGA EMU解邏輯功能才是
對的路 XD GPU可以拿來解大型網路型電路
就是解spice類transistor level還可以
最近歐洲才有公司發表這個
event-driven的在 2010年左右算紅 很多人都想做
文章也不少 但都沒有後續就是了
你可以找找 gate-level simulation on GPU
講白了你能算timing就是天才,不能就是白癡
CSM應該分別是Cadence/Synopsys/Mento Graphics?不過C
有類似產品這個我有點意
這篇在講什麼屎啊 你知道你自己講什麼東西嗎
你聽不懂就算了阿 目前有人就實作出來了阿 只是效率還沒達到堪用層次 很多論文和教授也有發表相關探討議題 效率是否達堪用或是商用層次是另一回事 不過這些都不是啥屎 有時候作法和理論是先研究起來放 硬體或許有一天會達到條件
感覺原po不是做硬體的吧
是的 我不是做硬體的 所以之前以CPU指令集完成幾款模擬器 中間也是很辛苦 本來就需要去STUDY
※ 編輯: erspicu (27.52.128.32 臺灣), 01/01/2021 17:22:21你可以清楚描述你想要解決的問題嗎?
其實是寫得很清楚了 如果看不懂 代表即使看懂了問題 也很難提供啥幫助 所以如果看不懂那就也沒關係 忽略就好
模擬器的種類很多,你指的是instruction set simul
ator 嗎?
你喜歡6502,重寫一顆就好幹麻作反向工程從電晶體反
向回邏輯電路再燒到FPGA?
沒有人說要燒到硬體FPGA 只是希望能夠由電腦環境模擬更低階層的GATE LEVEL 去達到更高程度的正確 至於有人會希望這樣做的理由 有一篇文章解釋得不錯
https://www.mobile01.com/topicdetail.php?f=514&t=1799027老實說,模擬紅白機的模擬器就會模擬6502的CPU指令集和行為。6502的模擬技術, 其實一點都不稀罕。不過,這群人採取不同的手段,而且是最麻煩的方法。 傳統採用的功能導向模擬手段,設計者必須先搞清楚目標物的功能, 包含指令集、整合性週邊的功能、暫存器集‧‧‧等等。如果資訊不完全, 是沒辦法完整而正確模擬其功能。 簡單說來,要用這個手法寫個模擬器,設計者先要閱讀大量技術文獻, 做許許多多相容性測試,才能確保正確地模擬。 這群人改採不同的方法:電晶體層級的電路模擬,類似FPGA的電路模擬。也就是說, 他們不管這東西的所有功能,直接把電路抄出來,模擬整個電晶體網路的功能。 只要電路抄得對,保證是100%重現晶片功能。甚至連官方文獻沒有記載的隱藏版功能, 都能被完整重現出來。 這篇文章底下一些連結你可以參考
http://ersbroemu.blogspot.com/2016/01/blog-post.html我寫過6502的紅白機模擬器.z80的GameBoy模擬器 你好奇可以自己去查前面的文章
#1RlvMgIy我當然很清楚這樣做跟以前作法的差異和期待的意義 當你實作完 就會發現要達到正確 指令集層面的實作方式還是滿不夠的 至於為啥不夠 timing正確性就是一個其中問題
http://ersbroemu.blogspot.com/2015/11/blog-post.htmlopcode cycle table的作法其實還不是很ok
※ 編輯: erspicu (27.52.128.32 臺灣), 01/01/2021 18:12:21所以你想作的是抄一顆很古老的CPU?
精確度更高的紅白機模擬器
※ 編輯: erspicu (27.52.128.32 臺灣), 01/01/2021 22:52:35我記得最近才有人重新出gameboy, 就是用fpga完全模擬
https://www.analogue.co/pocket 這家都是用fpga模擬
說真的你提的問題已經完全脫離效益等級,就是很深但是沒
有商業領域會想鑽的領域,就是靠愛撐過去
有成本更低的方式可以滿足,其他方式的探討就是純學術
如果是興趣使然去研究的話,不用太在乎利益啦
玩興趣開心最重要
這篇讓我想到麥塊裡面有人做出電腦來 XDD
想這麼做也可以, 但有件很關鍵的事你沒有注意到.
硬體在跑的時候,並不是所有的電晶體都有作用. 但你用gpu
模擬(emu)時,會在編譯期先決定哪些電晶體需要跑.除非能
事先拿到testbench,不然就是全部電晶體都要emu,這是巨大
的負擔. 同時,某條signal有上百個load是很正常的事,不過
這會造成在emulation時的同步問題.
有興趣的話, 你可以看一下去年CAD-contest, NV出的題目
幫樓上補一下 是ICCAD 的contest
跪著看
7
monkey大大說你只是想用GPU加速MOS 6502的電路模擬 我覺得就單你的例子是可行的,我分析如下: 你的電晶體數目不大,我們就用實際數目估計吧 - 3510 transistor - 在NmosFet.py裡有5個變數記錄狀態變化13
感謝你提供的網站 這提供非常多的訊息與實作的細節,也讓我有機會能更理解你的想法 我先稱它為virtual chip來做區別。 我看了FAQ與slide,裡面大致就回答這群作者能做到什麼程度, 我把我認為重要的條件列在下面:6
我有把你下面推文的兩個連結看了以確定我盡量能理解你的目的。 文中你提到transistor-level與邏輯閘層(gate-level)模擬, 這兩個用詞在你的語境下所代表的意思有點模糊, 我用我的理解以及上篇crossbar的觀點來定義一下: - transistor-level:6
1. 你所描述的聽起來不是 transistor 層模擬,而是邏輯閘層次的模擬。Transistor 模 擬是指像 spice 那樣模擬時間 vs 電流之類的類比計算,就像用工具幫你做 smith 電子 學習題這樣。 2. 你內文裡面比較「cpu 指令層」, 「cycle-accurate」,「邏輯閘層」模擬,提到哪些 運算量比較大,哪些比較準,這些都是 ic 設計常識。一般公司的設計流程,在設計晶片
51
Re: [閒聊] AVX指令集實際應用是甚麼功能?老實說這個AVX如果要認真解釋, 可能會又臭又長, 大概會99%的人會直接END。 所以我用老嫗能解的方式來稍稍亂講一下好了, 雖然還是又臭又長,但有誤請儘量鞭。31
Re: [討論] 科技業其實也不需要寫過碩論的人才我教授是這麼跟我說過的 碩論 培養的是 探索問題 解決問題 表達能力14
Re: [新聞] 任天堂史上最高倒讚影片紀錄刷新!NSO追社群知名開發人MVG剛好在談這個 GC 薩爾達時之笛就是模擬器,當初的模擬的效果非常好。 也就是說GC的硬體跑N64模擬器是沒問題的。到了Wii 上N64的模擬也是一 等一。13
[問題] 有自行車模擬器嗎?賽車模擬器, 簡單買個踏板方向盤排檔, 就能模擬開車, 什麼車都能模擬。 那相較於可以坐著,X
[問卦]PC CPU為什麼不塞幾個ARM核心來跑 Android模擬?大家都知道 目前CPU核心數量越來越多 10核以上也不少見 只是平時電腦執行軟體 很少需要用到這麼多核心1
[問卦] 怎麼沒有把整座城市改造成電腦的電路專案好奇,怎麼世界上沒有一座城市想把整座城市改造成一台電腦的超級專案阿 把城市外圍,大樓當作主機板上的電晶體,電阻那些,道路是導線 城市中心是CPU或GPU本體,以及計算中心 這樣來運算各類東西,模擬宇宙應該超快的吧 怎麼沒有國家想打造這樣的城市阿1
[請益] PCB上的元件整合模擬請問大大們都使用哪個板端電路模擬環境(軟體)以利於整合&模擬來自不同公司類比元 件的model? 會問這個問題是因為雖然幾家大的類比元件公司如TI/ADI都有提供產品所對應的SPICE mo del ,但似乎只能搭配自家提供的simulator (PSPICE/LTSPICE)。不僅互不相容,似乎 還難以直接匯入其它板端電路模擬軟體如OrCAD或HSPICE