Re: [討論] GPU加速Transistor層的模擬器
感謝你提供的網站http://www.visual6502.org
這提供非常多的訊息與實作的細節,也讓我有機會能更理解你的想法
我先稱它為virtual chip來做區別。
我看了FAQ與slide,裡面大致就回答這群作者能做到什麼程度,
我把我認為重要的條件列在下面:
- if it has only one or two metal layers and was made before about 1985
- Before ~1980, chip design was a very manual process
- MOS 6502: there are "3510" trnsistors
- The simulator is running an idealized "digital" circuit based on our
model of the chip's network of transistors and wires.
- It does not account for "analog" behavior
(resistance, capacitance, leakage), has no propagation delays, and
transistors switch on and off instantaneously.
綜上所述,我覺得你會混用transister-level與gate-level真的不能怪你
因為這真的是時空背景不同,但照歷史脈絡來看也能稍微理解為什麼
TSMC/UMC晶圓代工與EDA產業的興起了:因為製程發展與電晶體數量大增
那如果你要照這群作者的方法做逆向工程在現今的晶片可行嗎?
我覺得人眼要識別現今的polygon(網頁所用的詞)及連接,可能要有寫輪眼
不過我layout學得很差,也許真的有能人可以做到,但那個數量級太大了
這網頁有提到他們想要自動化但是失敗(How did automatic vectorization fail?)
所以我推論目前人必須很大程度參與到這逆向工程中。
對這我有個想法,這個project是在2010左右的成果,而CNN(卷積神經網路)在
ImageNet 2012比賽取得壓倒性的勝利,時至今日computer vision已經很成功了
也許在這部分,CNN可以做到很好,然後把比較難辨識的再交給人類來做
可是呢,這又會需要foundry廠的know how了,因為你需要訓練用的資料與標籤
所以你想繼續這條路,我給的建議是看看有沒有人在做半導體的computer vision。
我知道S家有在做P&R的那方面的,也許C家做更多
然後拿他們的模型來做逆向工程並請專家幫你做最後的驗證
之後的工作基本都可以用程式來解決了
至於有無法律問題就看看有沒有人在你寫程式時來查水表了XD
我寫到這,我大概也能理解為什麼沒人做virtual chip emulator了
如果chip簡單人類可能還可以做,但是現在的chip真的太大太複雜了
還有3D IC這種多一個維度的,加上公司求快。除非是要偷設計,
不然成本太高了太不經濟了。
希望能給你一些幫助。
※ 引述《expiate (彎曲屎殼郎)》之銘言:
: 我有把你下面推文的兩個連結看了以確定我盡量能理解你的目的。
: 文中你提到transistor-level與邏輯閘層(gate-level)模擬,
: 這兩個用詞在你的語境下所代表的意思有點模糊,
: 我用我的理解以及上篇crossbar的觀點來定義一下:
: - transistor-level:
: 我認為你指的是電晶體電路,也就是layout或是spice
: 模擬用來跑電氣特性,像是增益,匹配或是SNR
: 裡面的基本元素就是半導體的材料物理模型(非我專長請專家補充)
: - gate-level:
: 邏輯閘電路,我這邊理解的話就會指cell-based design
: 裡面的電路表示會由boolean operator或是更複雜的像是
: AOI (And-Or-Inverter),基本上世界上的IC design house
: 的design flow主要都是走這條。
: /*** 我假設你有unlimited resources,要多快有多快的CPU,GPU和memory ***/
: 然後我只就數位電路作為我的目標,類比電路我是覺得更難就不深入了
: 基本上transistor-level的模擬我覺得要行得通,必須半導體物理材料模型要準
: 以及RC (resistance capacitance) model要準。也就是內部電氣特性與外部
: routing的特性都要有準確的模型去計算才有可能實現。
: 如果你只是對於前幾代製程的產品,我猜也許會有已經很成熟及準確的模型可以使用
: 但我很懷疑是否有公開的資訊你可以拿到,因為基本上這都是foundry的know how。
: 也許學校有資源可以讓你接觸,或是真的有很老亦或教學的的模型供你使用
: 假設你有了,其實就是把transistor-level的電路用這些模型表示
: 然後把彼此的輸入/輸出 接好跑模擬即可。最後在針對電氣數值判斷0/1
: 這是我覺得最困難的部分,完成後就都是0/1世界了。
: Gate-level的模擬跟對應的library有很深的相依性,也就是foundary所提供。
: 而且所需的電氣特性都包含在每個cell裡的table,所以像是slack或是slew
: 都可以快速查表得知。而EDA公司提供的sign-off product就是保證他們的驗證
: 結果跟foundry廠生產出來的晶片會是一樣的。
: 這就間接的指出其實可以透過gate-level模擬來實現你的目標。
: 然後這也是為什麼FPGA會作為驗證工具的原因。只要在FPGA功能驗證完成,
: 剩下的就是跑flow然後tapeout,不用太擔心會不一樣。而且跟模擬比起來快太多了
: 你可以試試用VCS或是NCVerilog跑個一百萬cycle就可以感覺為什麼唯快不破了
: 通常IC design house在tapeout之前都可以估自己只能跑幾次模擬。
: 也就是說bug或是timing issue如果不能在這幾次模擬中解決就等著被X吧
: 以上是我覺得可以實現你目標的方法,如果真的能reverse回來的話。
: 下面是我覺得為什麼GPU無法幫助太多的理由。
: 就我所知,目前沒有EDA公司的產品裡有使用GPU做加速,也許有功能但可能賣不出去XD: 大部分都還是仰賴CPU及memory作為計算的主力。
: 這是因為GPU主要的計算典範是SIMD (Single Instruction Multiple Data)。
: 拿現今最流行的深度學習做例子,訓練的步驟很明確feedforward,backpropagation
: 底下的計算主要都是矩陣運算,只是每次要做運算的data不一樣。
: 回過頭看gate-level電路模擬,如果把電路看成神經網路不也可以用GPU加速?
: 嗯其實GPU加速電路模擬真的是很容易想到,cuda已經出來十幾年了,所以我想
: 肯定有人嘗試但是沒成功或是效果不如預期。這也是大家噴這麼凶的原因。
: 不過我覺得大家太嚴苛了,難得有人正經問問題其實可以多點耐心分享所學的。
: 所以問題就該是為什麼GPU不能像神經網路一樣很好地加速電路模擬?
: 我個人思考的結果是:大部分的電路模擬不是線性的
: 我的思路是把combinational logic電路當作是神經網路,
: 而暫存器就是神經網路的layer。我能用矩陣來表示combinational logic嗎?
: 我覺得光是處理gate個數與gate該在矩陣哪個位置我就覺得不好處理
: 當然你可能有別的思路,可是本質上你還是會受限於GPU計算的本質:
: 不擅長做複雜(heavy control dependency)的計算。
: 這也是我覺的目前EDA公司還是以cpu為主要算力的原因。
: 如果你有興趣,你可以試著朝high performance computing/parallel computing
: 做更深入的理解。
: 最後,我只是拋磚引玉吸引炮火。
: 大家不要為難原po,我其實很欣賞這樣願意花時間苦幹的人了
: 所以歡迎大家來噴我吧!最好發戰文,大家一起學習!
: 也期許原po日後有什麼進展歡迎分享給大家。
: ※ 引述《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#版本
--
其實用簡單數學算一下放下電路RAM大小就知道可行性了
分析得很透徹
這種拆磨晶片靠顯微鏡或是放大鏡看內部電路去描繪的事情
常理推斷只適合骨灰級的一些晶片 也不是我感興趣的事情
我目前在做的只是把這網站的專案從JS版移植到C#
內部邏輯閘.相連定義.接腳 他們都完全整理好了
可能是因為工作領域習慣性去預設的目的設想不同
即使我不只一次提及 只是一個在電腦上能夠更精確的紅白機
模擬器.. 還是有許多人會做發散式假設
js版的速度可以算到大概10"Hz" 非常慢
有人用C++改寫優化後到達10000Hz 但還是太慢實機是3.5Mhz
看CODE內容初步來看主要是FOR迴圈處理一些陣列資料
以前有用過GPU處理影像 有前後次序性相依關係的
都會出問題 如果沒有這層問題 基本上就是把FOR迴圈改用
parallel的方式去跑就有加速效果 但能不能拉到3.5Mhz
這我就不太清楚..
我想別人的推文你都沒看懂 你只是一直在講你的想法
是很不錯的想法 加油呦~~~~好棒棒捏~
你也只是拿別人的c++來優化 看來你也不一定知道問題
在那裡 另外gpu如果可以就這樣scale上去真的就是太
美好了 至於到底gate-level simulation 在解什麼我
猜你也不在意吧
可以避開前後相依次序性關係問題的話 多核就可以加速
...........你以為只有你知道 ?
你以為電路就不是要靠上一級輸入來做
然後這篇花很多篇幅在寫磨開晶片後的程式辨識 問題是
你天真以為業界沒人知道沒人想過 沒人試過?
這個就不是我要做的事情 人家晶片內部定義檔都整個都幫你
這篇沒有抓到原po的點,但是原po的推文也是...
輸出整理好好的了... 而且這種方式本來就只適合骨灰產品
也不是我寫得啊 文主只是也就....他肯定是懂得人
我第一個推文就告訴你了 你用數學算算就知道多快了
gate數可以推出data量&使用memory量 套上GPU硬體
能力 還有你要計算的東西 就算是完美的平行運算
你等於是一個原來的指令集 在一顆2GHz cpu上要跑2M
你只有1000cycles可以解
你說要做gate-level simulation 你可以自己看看有多
少層要做 (每一層最少要1cycle) gate->gate就是一層
其他的運算 搬資料的耗損什麼我就不說了
他會說他只要變快就好
我覺得前面那篇不錯 SIMD能加速的問題其實很少
我是真的不知道該怎麼算 你要不要分享一下你的算法
我n年前就跟某廠在做這個事了 也沒看我賺到錢還在這
光靠單核C++ CODE可以到1萬 實機350萬 效率如果能改善到
就知道沒用了啊XD
350倍也就算及格了... 當然也可能根本到不了
還有而且code對架構非常敏感,還有開銷跟同步問題
用ARM海快了點@[email protected]~ 主要是你dataflow那個移出cache
記憶體從主機板那邊搬移到GPU的記憶體也是效能耗損拉
所以我當初處理影相 雖然是比多核電腦快但略快一點點而已
那個對GPU太傷了@[email protected]~ 成本太高
實際上得考慮到各種耗損 介面速度等等因素 我是真的
不知道該拿何種計算方式去做評估
GPU內部記憶就不用搬泥 ? 搬啊 搬死啊 跳著搬才是
問題是吧
都不用算這些 你就算有多少層logic gate要計算就好
不過骨灰級的東西 3.5Mhz 3.4千邏輯閘數 不是現代晶片
這樣算明知故問嗎= =
影像已經是GPU相對好解的問題了 其他通常更慢
所以我沒有說沒有機會啊 這是上古產品數字這麼少
硬塞GPU 採 greedy 方式邏輯用全放的可能可以哦@[email protected]~
你很壞
我換一個方式算給你看 這個種control dataflow型
是說mmonkeyboyy能分享"我n年前就跟某廠在做這個事了"
哪間公司做了啥相關GPU應用計畫?結果失敗 好奇想聽聽八卦
的運算 要加速350倍 ..... 就算是單核比350核也難
這沒什麼八卦 你文章多看就有了
蠻多人在2010左右做過的
我猜你要能拿顆普通GPU到1MHz就是一個大成就了
我猜拿顆3990X可能還香點 尤其是
2010年老闆花了一筆錢養RD 結果全都失敗收場滿慘的
我不知道你是從何得來上述結論的 反正不是我說的
因為如果我沒記錯當初相關宣傳未來願景等等說得滿多
這我就不知道了 反正我現在沒做EDA&GPU 沒關我事
不要說我沒啥建樹 你可以考慮看看用tensor core的方
解解看logic array 說不定可以呢 不過這個做法我沒
很仔細思考過 但我想這應該是少數還沒試過的方法
目前IC設計的流程是 C model(optional)-> RTL ->
Gate level . 轉換之間都會作等效檢查。 如果覺得g
atelevel 太慢,可以考慮 反向回RTL, 這樣估計可以
快2-3個數量級.
他就不要啊XD
對牛彈琴 浪費時間啊
一直都在說這顆骨灰級6502 哪來的c model RTL 不需要一
直擴大命題假設
已經有C++source的話也許可以先試試加OpenMP pragma看
能不能加速
專案移植完 會看看有沒有順序性相依關係,能處理掉的話再
看看怎麼做
能不能達到實機速度也無所謂 反正試試看
這顆已經是1975年的東西 3.4k邏輯閘數的老晶片了
openmp也有上限啦@[email protected]~ 不過他原來說要放gpu啊
不然放3990X 寫得好的快個幾十倍可能還是有的
(Synopsys VCS) In heterogeneous environments where
a mix of processors, GPUs and hybrid architectures a
re available, Cheetah technology can speed-up simulat
ion by up to 5X on RTL and up to 30X on gate-level de
signs.
你所謂的更精確卻不用去考慮模型精確反而是加速部分?
所以你到底是要做加速還是要更精確的模擬啊?
用GPU要怎麼達到你所謂的更精確?我好像更不理解了
拿如果是加速,最早的FPGA不就是最好的解嗎?
gate cout才3000多,寫Verilog也很快啊
還是你就是要加速人家寫好的code而已?
他想在電腦上讓一群情懷黨模擬晶片打紅白機吧
所以問題應該就是該怎麼寫 cuda kernel來跑MOS 6502的循
序電路模擬,使其加速350倍對吧?
差不多是這意思而已
@GameGyu. 不管是S家的cheetah或C家的rocketsim, 用GPU
加速都只能跑特定設計, 無法大規模採用, 原因和我先前推
文的內容有關. 當然兩家都有想些新點子, 不過很難.
ex大 你得到他了 xd
GPU本來就很難做他原本功能以外的事啊
讓我想起當年被唬弄去用早期的gpgpu....(眼神死)
7
monkey大大說你只是想用GPU加速MOS 6502的電路模擬 我覺得就單你的例子是可行的,我分析如下: 你的電晶體數目不大,我們就用實際數目估計吧 - 3510 transistor - 在NmosFet.py裡有5個變數記錄狀態變化6
我有把你下面推文的兩個連結看了以確定我盡量能理解你的目的。 文中你提到transistor-level與邏輯閘層(gate-level)模擬, 這兩個用詞在你的語境下所代表的意思有點模糊, 我用我的理解以及上篇crossbar的觀點來定義一下: - transistor-level:19
首Po不想走冤枉路.... 雖然有找過資料 但找到的資料似乎是一些大學教授和硬體大廠的研界成果發表 論文也有 感覺有很高的技術門檻 門檻高就算了 主要是怕結果實際上也沒如同想像中好 想問看看有沒有已經走過這條路了 不知道通不通或是值不值得 模擬器最傳統的做法是cpu指令層的模擬 這種模擬方式好實作6
1. 你所描述的聽起來不是 transistor 層模擬,而是邏輯閘層次的模擬。Transistor 模 擬是指像 spice 那樣模擬時間 vs 電流之類的類比計算,就像用工具幫你做 smith 電子 學習題這樣。 2. 你內文裡面比較「cpu 指令層」, 「cycle-accurate」,「邏輯閘層」模擬,提到哪些 運算量比較大,哪些比較準,這些都是 ic 設計常識。一般公司的設計流程,在設計晶片
43
[請益] 數位IC設計Offer選擇幫朋友代po 背景: 交大電機學士+清大電機碩士 數位IC相關課程修好修滿 背景比較偏向計算機結構18
[情報] 老黃切出新產品A800繞過中國禁令以下為摘要 來自路透社的報導 簡單來說,中國商人已經開始廣告新的老黃產品 Nvidia responded to Reuters' reporting that Chinese computer sellers are17
[問卦] 芯片還是晶片 哪個較精確?芯片還是晶片 白豬方言英語 是chip potato chip a very thin, often round piece of fried potato, sometimes with a flavour added, sold especially in plastic bags a thin slice of fried maize, banana, or other food that is eaten cold9
[情報] 交大資工葉宗泰教授實驗室招生各位同學大家好 我是交大資工葉宗泰老師的學生 最近推甄陸續放榜,想來宣傳一下我們實驗室 以下簡單介紹一下我們實驗室 教授個人網頁8
[請益] 資料中心交換器晶片成長性?-———————————————————————— 發文前請先詳閱[請益]分類發文規範,未依規範發文將受處份。 根據板規1-4-2.請益可提及標的,但是只要屬以下如: 1.問漲跌,或持股分析。 2.預測個股或產業未來性。 3.或有推薦意圖。 請使用 [標的] 分類並依正確格式發文,違者1-4-2砍文處分。9
Re: [請益] 非本科韌體技能樹該怎麼點不知道你說的韌體是指什麼? 嵌入系有很多種: * embedded linux * 使用 rtos, 例如: freertos/vxworks * bare metal 程式 * 手機- 不知道你說的韌體是指什麼? 嵌入系有很多種: * embedded linux * 使用 rtos, 例如: freertos/vxworks * bare metal 程式 * 手機