作者erspicu (.)
看板Soft_Job
标题[讨论] GPU加速Transistor层的模拟器
时间Thu Dec 31 00:37:20 2020
不想走冤枉路.... 虽然有找过资料
但找到的资料似乎是一些大学教授和硬体大厂的研界成果发表 论文也有
感觉有很高的技术门槛 门槛高就算了 主要是怕结果实际上也没如同想像中好
想问看看有没有已经走过这条路了 不知道通不通或是值不值得
模拟器最传统的做法是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.cc), 来自: 39.9.202.16 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1609346243.A.FFF.html
※ 编辑: erspicu (39.9.202.16 台湾), 12/31/2020 00:44:38
1F:→ labbat: 要有hdl parser然後compiler最後大魔王scheduler 12/31 02:45
2F:推 mmonkeyboyy: 我可以帮忙哦XD XDXD 12/31 04:12
3F:推 ptta: 看Nvidia的报告,结果很惊人啊,10倍以上差距 12/31 06:44
4F:→ bcew: 要不要先讨论你模拟到这麽底层的意义?各逻辑闸、各走线的ti 12/31 07:56
5F:→ bcew: ming还是没模拟到;如果想找模拟的加速方法,现在的软硬体 12/31 07:57
6F:→ bcew: 协调模拟都是搭FPGA...你的做法不是不行,也许AWS的云端FPGA 12/31 07:57
7F:→ bcew: 真的这麽做,只是就你个人意义何在? 12/31 07:57
目前一些骨灰迷 把晶片磨开 用放大镜把里头线路逻辑闸等复刻描绘出来
用这层去跑是真的可以跑 就慢到炸... 如果效率能改善到基本实用程度
对模拟器发展是一大里程碑 保证硬体原汁原味 以後要模拟啥晶片
反正拆晶片 放大镜复刻描绘就好
8F:→ Holysml: C家有想搞过?不过尚未看到商用化的tool 12/31 08:06
C家是哪一家?
9F:推 mmonkeyboyy: 别的先不说 abstract -> cycle accurate的很难跑了 12/31 09:13
10F:→ mmonkeyboyy: 下到 transistor的 @_@~ 你就想着把spice 拿来跑数位 12/31 09:14
11F:→ mmonkeyboyy: 这....XD 当然有人这样做过啊 还可以gpu加速 12/31 09:14
12F:→ mmonkeyboyy: 但解逻辑慢到一个不行 解数值还可以 @_@ 12/31 09:15
13F:→ mmonkeyboyy: GPU 不是万能 解这种东西还不如用cpus+ fpga emu 12/31 09:15
是有查 不少国外论文有 也有成果发表
https://tinyurl.com/ycfl4lp2
但看不太懂是否达实用程度 还是目前仍属於理论验证.实验室发展阶段
虽然觉得这议题离我的程度有段差距 但如果行得通 仍然会想去尝试看看
看到人家移植
https://www.youtube.com/watch?v=tVRMG6Ikrxw
※ 编辑: erspicu (36.239.97.253 台湾), 12/31/2020 11:21:51
14F:→ bcew: 了解你想做的事了,这麽少的逻辑闸,直接摆进FPGA就好,小FP 12/31 11:41
FPGA有的人不多阿...一般玩家花钱买高阶显卡正常 但买FPGA除非是相关行业的
以及最终是希望可以在电脑上使用
15F:→ bcew: GA应该还比你显卡便宜呀,放GPU跑模拟像是在现代想打造一个 12/31 11:41
16F:→ bcew: 高效率蒸汽汽车,不是不行但方向怪怪的。 12/31 11:41
※ 编辑: erspicu (36.239.97.253 台湾), 12/31/2020 11:57:38
17F:推 wulouise: 我对GPU不是很熟,GPU擅长平行处理,为什麽不用CPU做? 12/31 16:17
逻辑电路的运作就是平行的
※ 编辑: erspicu (36.239.97.253 台湾), 12/31/2020 16:21:51
18F:推 Apache: C家是cadence吧 12/31 17:30
19F:→ Apache: 至少商用没有 然後目前GPU其实不好模拟这种 12/31 17:32
20F:推 mmonkeyboyy: 哇 那个slide 上还有黄仁勳啊XD 01/01 00:31
21F:→ mmonkeyboyy: 我人没那麽好 我懒得解释为什麽不行 总之就是不太行 01/01 00:33
22F:→ mmonkeyboyy: 那篇文章讲的是用gpu 解 事实真是如此吗 (笑) 01/01 00:37
23F:→ mmonkeyboyy: 国外有太多这类文章了 後来也没怎麽做下去XD 01/01 00:40
24F:→ mmonkeyboyy: 都讲讲x话 没怎麽思考就做的 01/01 00:40
你的意思是
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期刊的论文在话唬烂?? 然後他们做的事情毫无意义?
我相信他们不会没思考就做 更不会觉得没意义
只是好奇发展程度是理论验证和发展阶段
还是真的效能已达实务上能应用阶段
25F:→ mmonkeyboyy: 有可能是拿了计划要做新方向而做 01/01 00:40
26F:→ mmonkeyboyy: C家快有混合平台了 XD 01/01 00:41
※ 编辑: erspicu (27.52.128.32 台湾), 01/01/2021 03:38:43
27F:推 mmonkeyboyy: 理论是理论 不考虑实际情况的文章多的去了 01/01 03:49
28F:→ mmonkeyboyy: 这篇起头是在 2011 ICCAD 如果真做那麽好 现在早有 01/01 03:49
29F:→ mmonkeyboyy: 产品了.... 这篇我在n年前就看过了 当时有有争论过 01/01 03:49
30F:→ mmonkeyboyy: 为什麽写文章可以 实际做出来会有很大的落差 01/01 03:50
31F:→ mmonkeyboyy: 而且他用的方法跟你想的不一样哦 他是拿来解现在用 01/01 03:50
32F:→ mmonkeyboyy: CPU等解 timing问题为起始 等於你拿 gpu解graph 01/01 03:51
33F:→ mmonkeyboyy: GPU的计算优势先回去看看吧 又不是核多就好 01/01 03:54
34F:→ mmonkeyboyy: 核多 arm或是rv最多好吗 @_@~ gpu特性就不是这样的 01/01 03:54
35F:推 mmonkeyboyy: 你连C家是那一家都不知道了@_@~ 那 也对啦 到不意外 01/01 03:59
36F:→ mmonkeyboyy: S家M家其实也做过这事 结论:FPGA EMU解逻辑功能才是 01/01 04:01
37F:→ mmonkeyboyy: 对的路 XD GPU可以拿来解大型网路型电路 01/01 04:02
38F:→ mmonkeyboyy: 就是解spice类transistor level还可以 01/01 04:04
39F:→ mmonkeyboyy: 最近欧洲才有公司发表这个 01/01 04:04
40F:推 mmonkeyboyy: event-driven的在 2010年左右算红 很多人都想做 01/01 04:06
41F:→ mmonkeyboyy: 文章也不少 但都没有後续就是了 01/01 04:06
42F:→ mmonkeyboyy: 你可以找找 gate-level simulation on GPU 01/01 04:08
43F:推 jeff40108: 讲白了你能算timing就是天才,不能就是白痴 01/01 13:12
44F:推 snaketsai: CSM应该分别是Cadence/Synopsys/Mento Graphics?不过C 01/01 13:18
45F:→ snaketsai: 有类似产品这个我有点意 01/01 13:18
46F:→ javatea: 这篇在讲什麽屎啊 你知道你自己讲什麽东西吗 01/01 14:26
你听不懂就算了阿 目前有人就实作出来了阿 只是效率还没达到堪用层次
很多论文和教授也有发表相关探讨议题 效率是否达堪用或是商用层次是另一回事
不过这些都不是啥屎 有时候作法和理论是先研究起来放 硬体或许有一天会达到条件
47F:→ blackrays: 感觉原po不是做硬体的吧 01/01 17:11
是的 我不是做硬体的 所以之前以CPU指令集完成几款模拟器 中间也是很辛苦
本来就需要去STUDY
※ 编辑: erspicu (27.52.128.32 台湾), 01/01/2021 17:22:21
48F:推 Neistpoint: 你可以清楚描述你想要解决的问题吗? 01/01 17:30
其实是写得很清楚了 如果看不懂 代表即使看懂了问题 也很难提供啥帮助
所以如果看不懂那就也没关系 忽略就好
49F:→ Neistpoint: 模拟器的种类很多,你指的是instruction set simul 01/01 17:32
50F:→ Neistpoint: ator 吗? 01/01 17:32
※ 编辑: erspicu (27.52.128.32 台湾), 01/01/2021 17:38:56
51F:推 Neistpoint: 你喜欢6502,重写一颗就好干麻作反向工程从电晶体反 01/01 17:40
52F:→ Neistpoint: 向回逻辑电路再烧到FPGA? 01/01 17:40
没有人说要烧到硬体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.html
opcode cycle table的作法其实还不是很ok
※ 编辑: erspicu (27.52.128.32 台湾), 01/01/2021 18:12:21
53F:→ Neistpoint: 所以你想作的是抄一颗很古老的CPU? 01/01 19:59
精确度更高的红白机模拟器
※ 编辑: erspicu (27.52.128.32 台湾), 01/01/2021 22:52:35
54F:推 wulouise: 我记得最近才有人重新出gameboy, 就是用fpga完全模拟 01/01 23:33
56F:→ wulouise: 说真的你提的问题已经完全脱离效益等级,就是很深但是没 01/01 23:36
57F:→ wulouise: 有商业领域会想钻的领域,就是靠爱撑过去 01/01 23:36
58F:→ wulouise: 有成本更低的方式可以满足,其他方式的探讨就是纯学术 01/01 23:37
59F:→ ESTARRIOL: 如果是兴趣使然去研究的话,不用太在乎利益啦 01/01 23:42
60F:→ ESTARRIOL: 玩兴趣开心最重要 01/01 23:43
61F:推 kurtsgm: 这篇让我想到麦块里面有人做出电脑来 XDD 01/02 03:27
62F:推 SkyFluid: 想这麽做也可以, 但有件很关键的事你没有注意到. 01/03 01:39
63F:→ SkyFluid: 硬体在跑的时候,并不是所有的电晶体都有作用. 但你用gpu 01/03 01:40
64F:→ SkyFluid: 模拟(emu)时,会在编译期先决定哪些电晶体需要跑.除非能 01/03 01:41
65F:→ SkyFluid: 事先拿到testbench,不然就是全部电晶体都要emu,这是巨大 01/03 01:41
66F:→ SkyFluid: 的负担. 同时,某条signal有上百个load是很正常的事,不过 01/03 01:42
67F:→ SkyFluid: 这会造成在emulation时的同步问题. 01/03 01:44
68F:推 SkyFluid: 有兴趣的话, 你可以看一下去年CAD-contest, NV出的题目 01/03 03:20
69F:推 mmonkeyboyy: 帮楼上补一下 是ICCAD 的contest 01/03 04:24
70F:推 Boska: 跪着看 01/18 00:32