Re: [討論] GPU加速Transistor層的模擬器

作者: crossbar (helloWorld)   2020-12-31 13:15:12
1. 你所描述的聽起來不是 transistor 層模擬,而是邏輯閘層次的模擬。Transistor 模
擬是指像 spice 那樣模擬時間 vs 電流之類的類比計算,就像用工具幫你做 smith 電子
學習題這樣。
2. 你內文裡面比較「cpu 指令層」, 「cycle-accurate」,「邏輯閘層」模擬,提到哪些
運算量比較大,哪些比較準,這些都是 ic 設計常識。一般公司的設計流程,在設計晶片
架構時,用 c++ 寫 transaction accurate simulation,用 c++ 或是 systemC 寫 cycl
e accurate simulation,等架構設計確定後,開始寫 HDL,HDL 小部分用 EDA tool 看
波形圖做驗證,大範圍 HDL 用商業廠商買來的emulation設備,也就是 FPGA 做模擬,這
裡的 FPGA 並不是只有一塊 FPGA,有可能是很多塊 FPGA 湊在一起模擬一部分ASIC 的電
路行為。
3. 所以問題就是,為什麼 emualtion 要使用 FPGA 而不是 GPU?答案是 gate count 還
有開發時間。FPGA都裝不下現代稍微複雜一點的 IC,GPU 更不可能。HDL 要翻譯成 CUDA
也不切實際,除了驗證沒有其他價值。
※ 引述《erspicu (.)》之銘言:
: 不想走冤枉路.... 雖然有找過資料
: 但找到的資料似乎是一些大學教授和硬體大廠的研界成果發表 論文也有
: 感覺有很高的技術門檻 門檻高就算了 主要是怕結果實際上也沒如同想像中好
: 想問看看有沒有已經走過這條路了 不知道通不通或是值不值得
: 模擬器最傳統的做法是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#版本
作者: locklose (允)   2020-12-31 13:43:00
作者: erspicu (.)   2020-12-31 13:51:00
可能是稱呼有些翻譯上或是認知上落差 後來想想更正確應該是稱呼Gate-Level Simulation 不過查資料過程有些也是以transistor level simulation稱呼另外FPGA主要是沒辦法普遍普及 然後早期處理及GATE數量早期處理氣邏輯閘數量並沒有那麼多幾K到萬初而已即使無法一次完成整個週期動作 靠著現在GPU速度快多幾次動作去完成 可能也可行 但不確定效果好不好主要希望目標是早期一些遊戲主機處理氣Z80 6502等等
作者: hizuki (ayaka)   2020-12-31 14:48:00
沒,可以裝下,只是可能一萬鎂的裝個arm現代的core,十萬鎂消費級AP,Intel他們可能是百萬鎂的跳。
作者: mmonkeyboyy (great)   2019-01-01 00:29:00
https://www.analogue.co/pocket上面那個大概就是你要的東西吧FPGA是真正把電路放進去 gpu又不能放電路連個接近都不是 所以沒有emu的意義HDL跟cuda根本不是一回事 所以我也不懂這樣放意義
作者: erspicu (.)   2019-01-01 03:20:00
我並不是要啥現成模擬器商品或是程式 只是要探究一種能夠在電腦上更正確模擬的方式 要知道早期很多CPU一些特官方SPEC並不一定會寫出來還有一些硬體特性也是 BUG也是GPU能不能放電路都沒關係 只是藉著GPU去處理邏輯閘運算
作者: mmonkeyboyy (great)   2019-01-01 03:51:00
你現在連gpu為什麼連 gpu不太好做這事都不想理解了還不如拿來解transistor level實在多了 這裡有數值的解gate level除了timing 有得搞外 解邏輯 gpu不會比較快 我拿個ARM海可能更快點 (這個是有產品的哦)
作者: bcew (bcew)   2019-01-01 16:39:00
to erspicu:要不要先去修一些ic設計的課程再來講電腦模擬的事,怕走冤枉路,背景知識不足也不聽勸,還能說什麼?
作者: erspicu (.)   2019-01-01 17:29:00
不聽勸 這帽子扣太大了吧 都只是交流一些想法只是覺得沒必要把人家學者的研究描述成啥說幹話 不經思考附帶一提的是 想當然也知道FPGA是花錢最快最棒的解法問題是這回答跟 人家電腦上玩模擬器部分運作有問題問人家玩模擬器的意義是啥 為啥不買實體機一樣預設的情境就是電腦開啟執行去達成一個更高的模擬完成度一直在那邊FPGA FPGA..我買FPGA 我乾脆買二手主機還便宜
作者: Apache (阿帕契)   2019-01-01 21:53:00
大概是原PO背景知識落差太大了吧這邊回你的很多都在豬屎屋/EDA/HPC業界有實務經驗很多前提對他們來說是理所當然 但是對原PO不是不過對個人這種需求真的是很怪
作者: erspicu (.)   2019-01-01 22:56:00
對於只是想玩玩遊戲主機模擬器玩遊戲 有更高模擬品質你叫人家 不會去買塊FPGA喔 這才正解拉 這其實更奇怪一個目的可能是商品雛型開發 一個是希望能在PC端找到一個更精確模擬遊戲主機的方式 我一開始其實就講得很清楚了你叫人家買FPGA 人家不如幾百元到網拍二手機主機更乾脆既然都要走實體方案的話 二手主機也才多少錢所謂有實務經驗 就是跟很多人一樣工作上用到FPGA
作者: Apache (阿帕契)   2019-01-01 23:02:00
因為你問的不可行所以人家建議你去用FPGA啊
作者: erspicu (.)   2019-01-01 23:02:00
因為一些開發需求有用過一些現成套裝軟體而已我以為是有人親自嘗試用這構想真正實作過不需要建議用FPGA阿 買台二手主機更快拉
作者: Apache (阿帕契)   2019-01-01 23:04:00
你不是要做雛型開發大廠做雛型開發就是用FPGA啊 更精確用CPU GPU就抱歉沒有而且GPU只是加速 通常不會更準確 反而是用精度換時間
作者: erspicu (.)   2019-01-01 23:05:00
從頭到尾 我第一篇文章和推文就有說過 在PC端使用的模擬在PC端使用的遊戲主機模擬器 已經說過滿多次了如果要用硬體的話 我乾脆去買二手主機不就得了
作者: Apache (阿帕契)   2019-01-01 23:06:00
你插張PCIe介面的不就在PC端了
作者: erspicu (.)   2019-01-01 23:06:00
我就是要放出程式給大家用啊 幹嘛一定硬體阿說白了 根本沒有人有實際親自實作測試的經驗可以分享有的是 阿 你看看那些論文學者發表成果有多早現在還不是沒有普遍商業化 所以我估計都是說幹話拉
作者: Apache (阿帕契)   2019-01-01 23:09:00
這就是大家講你的不聽勸啊==你以為豬屎屋花錢買EDA tool是盤子是不是
作者: erspicu (.)   2019-01-01 23:10:00
沒有模擬器親自實作經驗的人 用自己以為說他的推測而已工作會用到FPGA會需要買套裝軟體使用又如何?
作者: Apache (阿帕契)   2019-01-01 23:17:00
那就祝福你找到你想要的答案囉
作者: erspicu (.)   2019-01-01 23:22:00
https://tinyurl.com/y9oyde25 C++的CODE 每秒可以算到大概1萬HZ的速度 這是在沒做任何平行處理優化狀況下如果能夠優化到3.58MHz 就能達到實機運作速度了
作者: mmonkeyboyy (great)   2019-01-01 23:34:00
好 你好棒 加油喔
作者: enthos (影斯作業系統)   2019-01-02 00:14:00
www.udemy.com/course/design-a-cpu/ 教學用Logisim
作者: mmonkeyboyy (great)   2019-01-02 08:18:00
我沒做過new gb這種模擬器 做過rv arm mips x86?cell模擬器的可以嗎(z80 好像有做過就是了@[email protected]" 幫一個教授做課程project

Links booklink

Contact Us: admin [ a t ] ucptt.com