PTT推薦

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

看板Soft_Job標題Re: [討論] GPU加速Transistor層的模擬器作者
crossbar
(helloWorld)
時間推噓 6 推:6 噓:0 →:67

1. 你所描述的聽起來不是 transistor 層模擬,而是邏輯閘層次的模擬。Transistor 模擬是指像 spice 那樣模擬時間 vs 電流之類的類比計算,就像用工具幫你做 smith 電子學習題這樣。

2. 你內文裡面比較「cpu 指令層」, 「cycle-accurate」,「邏輯閘層」模擬,提到哪些運算量比較大,哪些比較準,這些都是 ic 設計常識。一般公司的設計流程,在設計晶片架構時,用 c++ 寫 transaction accurate simulation,用 c++ 或是 systemC 寫 cycle 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#版本

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.224.62.188 (臺灣)
PTT 網址

locklose12/31 13:43

erspicu12/31 13:51可能是稱呼有些翻譯上或是認知上落差 後來想想

erspicu12/31 13:51更正確應該是稱呼Gate-Level Simulation 不過

erspicu12/31 13:52查資料過程有些也是以transistor level simulation稱呼

erspicu12/31 13:53另外FPGA主要是沒辦法普遍普及 然後早期處理及GATE數量

erspicu12/31 13:55早期處理氣邏輯閘數量並沒有那麼多幾K到萬初而已

erspicu12/31 13:56即使無法一次完成整個週期動作 靠著現在GPU速度快

erspicu12/31 13:56多幾次動作去完成 可能也可行 但不確定效果好不好

erspicu12/31 14:01主要希望目標是早期一些遊戲主機處理氣Z80 6502等等

hizuki12/31 14:48沒,可以裝下,只是可能一萬鎂的裝個arm現代的core,十萬

hizuki12/31 14:48鎂消費級AP,Intel他們可能是百萬鎂的跳。

mmonkeyboyy01/01 00:29https://www.analogue.co/pocket

mmonkeyboyy01/01 00:34上面那個大概就是你要的東西吧

mmonkeyboyy01/01 00:35FPGA是真正把電路放進去 gpu又不能放電路

mmonkeyboyy01/01 00:36連個接近都不是 所以沒有emu的意義

mmonkeyboyy01/01 00:36HDL跟cuda根本不是一回事 所以我也不懂這樣放意義

erspicu01/01 03:20我並不是要啥現成模擬器商品或是程式 只是要探究一種

erspicu01/01 03:20能夠在電腦上更正確模擬的方式 要知道早期很多CPU一些特

erspicu01/01 03:21官方SPEC並不一定會寫出來還有一些硬體特性也是 BUG也是

erspicu01/01 03:23GPU能不能放電路都沒關係 只是藉著GPU去處理邏輯閘運算

mmonkeyboyy01/01 03:51你現在連gpu為什麼連 gpu不太好做這事都不想理解了

mmonkeyboyy01/01 03:52還不如拿來解transistor level實在多了 這裡有數值的

mmonkeyboyy01/01 03:53解gate level除了timing 有得搞外 解邏輯 gpu不會比

mmonkeyboyy01/01 03:53較快 我拿個ARM海可能更快點 (這個是有產品的哦)

bcew01/01 16:39to erspicu:要不要先去修一些ic設計的課程再來講電腦模擬的

bcew01/01 16:39事,怕走冤枉路,背景知識不足也不聽勸,還能說什麼?

erspicu01/01 17:29不聽勸 這帽子扣太大了吧 都只是交流一些想法

erspicu01/01 17:30只是覺得沒必要把人家學者的研究描述成啥說幹話 不經思考

erspicu01/01 17:39附帶一提的是 想當然也知道FPGA是花錢最快最棒的解法

erspicu01/01 17:40問題是這回答跟 人家電腦上玩模擬器部分運作有問題

erspicu01/01 17:41問人家玩模擬器的意義是啥 為啥不買實體機一樣

erspicu01/01 17:42預設的情境就是電腦開啟執行去達成一個更高的模擬完成度

erspicu01/01 17:42一直在那邊FPGA FPGA..我買FPGA 我乾脆買二手主機還便宜

Apache01/01 21:53大概是原PO背景知識落差太大了吧

Apache01/01 21:54這邊回你的很多都在豬屎屋/EDA/HPC業界有實務經驗

Apache01/01 21:56很多前提對他們來說是理所當然 但是對原PO不是

Apache01/01 21:59不過對個人這種需求真的是很怪

erspicu01/01 22:56對於只是想玩玩遊戲主機模擬器玩遊戲 有更高模擬品質

erspicu01/01 22:56你叫人家 不會去買塊FPGA喔 這才正解拉 這其實更奇怪

erspicu01/01 22:59一個目的可能是商品雛型開發 一個是希望能在PC端找到一個

erspicu01/01 23:00更精確模擬遊戲主機的方式 我一開始其實就講得很清楚了

erspicu01/01 23:00你叫人家買FPGA 人家不如幾百元到網拍二手機主機更乾脆

erspicu01/01 23:01既然都要走實體方案的話 二手主機也才多少錢

erspicu01/01 23:02所謂有實務經驗 就是跟很多人一樣工作上用到FPGA

Apache01/01 23:02因為你問的不可行所以人家建議你去用FPGA啊

erspicu01/01 23:02因為一些開發需求有用過一些現成套裝軟體而已

erspicu01/01 23:03我以為是有人親自嘗試用這構想真正實作過

erspicu01/01 23:03不需要建議用FPGA阿 買台二手主機更快拉

Apache01/01 23:04你不是要做雛型開發

Apache01/01 23:04大廠做雛型開發就是用FPGA啊 更精確用CPU GPU就抱歉沒有

Apache01/01 23:05而且GPU只是加速 通常不會更準確 反而是用精度換時間

erspicu01/01 23:05從頭到尾 我第一篇文章和推文就有說過 在PC端使用的模擬

erspicu01/01 23:05在PC端使用的遊戲主機模擬器 已經說過滿多次了

erspicu01/01 23:06如果要用硬體的話 我乾脆去買二手主機不就得了

Apache01/01 23:06你插張PCIe介面的不就在PC端了

erspicu01/01 23:06我就是要放出程式給大家用啊 幹嘛一定硬體阿

erspicu01/01 23:07說白了 根本沒有人有實際親自實作測試的經驗可以分享

erspicu01/01 23:08有的是 阿 你看看那些論文學者發表成果有多早

erspicu01/01 23:08現在還不是沒有普遍商業化 所以我估計都是說幹話拉

Apache01/01 23:09這就是大家講你的不聽勸啊==

Apache01/01 23:09你以為豬屎屋花錢買EDA tool是盤子是不是

erspicu01/01 23:10沒有模擬器親自實作經驗的人 用自己以為說他的推測而已

erspicu01/01 23:10工作會用到FPGA會需要買套裝軟體使用又如何?

erspicu01/01 23:14這構想做法早就有JS版實作後來有人改寫C++版

Apache01/01 23:17那就祝福你找到你想要的答案囉

erspicu01/01 23:22https://tinyurl.com/y9oyde25 C++的CODE 每秒可以算到

erspicu01/01 23:22大概1萬HZ的速度 這是在沒做任何平行處理優化狀況下

erspicu01/01 23:25如果能夠優化到3.58MHz 就能達到實機運作速度了

mmonkeyboyy01/01 23:34好 你好棒 加油喔

enthos01/02 00:14www.udemy.com/course/design-a-cpu/ 教學用Logisim

mmonkeyboyy01/02 08:18我沒做過new gb這種模擬器 做過rv arm mips x86?

mmonkeyboyy01/02 08:19cell模擬器的可以嗎

mmonkeyboyy01/02 08:20(z80 好像有做過就是了@[email protected]" 幫一個教授做課程project