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