Soft_Job 板


LINE

monkey大大说你只是想用GPU加速MOS 6502的电路模拟 我觉得就单你的例子是可行的,我分析如下: 你的电晶体数目不大,我们就用实际数目估计吧 - 3510 transistor - 在NmosFet.py里有5个变数记录状态变化 所以整个chip的模拟需要3510x5=17550个状态来表示chip在每个cycle装态 我们取整数20K好了,然後每个状态用1 byte来表示(int8_t or char) 然後我们需要两个阵列分别代表目前chip的状态与chip下一个状态 所以总共是 20K*2 =40K byte = 40 KB int8_t cur_arr[40000]; int8_t next_arr[40000]; 每个cycle更新状态就是按照电路接线与数个cur_arr[i]的值来计算next_arr[j] 算完整个next_arr,到下一个cycle把next_arr所有值复制到cur_arr 我假设对於这40K的状态变数,你都有对应的表可以查,例如 if(cur_arr[0] = LOW && cur_arr[256] = HIGH && cur_arr[87] = LOW) next_arr[3] = HIGH; else next_arr[3] = LOW; 然好写死在code里,每次launch cuda kernel就根据array的index去查表更新状态就可以 原理跟矩阵乘法用cuda kernel写几乎一模一样。 麻烦的就是要把每个状态怎麽更新的规则要了解 这思路很简单很暴力,但是对於MOS 6502绰绰有余,甚至你可以用变数控制cuda kernel 一次更新多少cycle来减少memory之间资料传递的时间 我假设你查表是用2个unordered_map<int8_t,string>,一个是查HIGH,另一个是查LOW 每个状态有10个对应的相关状态要查: 2*40000*(1+5*10+10) = 4880000 约 5MB 2: 两个map 40000: 总共的状态数 1: int8_t 5*10: worst情况会有十个表示四位数的字串加上inv,例如 1234_~2356_3333_.... ~: 表示这个状态是LOW 10: 用来区别的字元(_),其实最多只会有九个 基本上不用担心GPU memory装不下,甚至你可以多算好几个cycle的结果再一次回来 拿NV GPU 3080里面的10GB memory,假设每次cycle更新需要10MB (好算而已) 你可以储存1000个结果了,throughput上一定可以有显着的改善 这次总该有回答到你的问题上了吧? ※ 引述《expiate (弯曲屎壳郎)》之铭言: : 感谢你提供的网站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日後有什麽进展欢迎分享给大家。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 98.207.101.195 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1609705809.A.6BF.html
1F:推 mmonkeyboyy: 这就是我叫他自己算数学算算就好了XD 您人真好 01/04 04:32
2F:→ mmonkeyboyy: 这也是我昨天说的可以用上tensor core的方法 01/04 04:33
3F:→ mmonkeyboyy: 至於能多快....不知道 XD 01/04 04:34
4F:推 erspicu: 感谢 细节我还要稍微多看再了解一下 但初步看起来 01/04 09:39
5F:→ erspicu: 很类似先把结果算出来使用查表的方式去拿结果? 01/04 09:39
6F:→ erspicu: 反正可以当成解法之一当可行作法参考 01/04 09:41
7F:→ erspicu: "自己算数学算算就好了" 我是不知道这回答在说啥 01/04 09:43
8F:→ erspicu: 如果要这种回答 我也会说 自己算数学算算就好了 01/04 09:44
9F:推 mmonkeyboyy: 算一下要用多大ram去计算这种都不会我也不知道该说什 01/04 10:00
10F:→ mmonkeyboyy: 麽 什麽都不太懂 回应到是挺爱战的 01/04 10:01
11F:→ mmonkeyboyy: 反正就算这麽跟你讲 你也不一定知道这中间问题在那 01/04 10:01
12F:→ mmonkeyboyy: 你根本就没心也不想好好理解为什麽gate-level 要这样 01/04 10:02
13F:→ mmonkeyboyy: 做 简单说就是个什麽都不想懂的伸手牌而已 01/04 10:03
14F:→ mmonkeyboyy: 大概你想人家把code 都送上让你去嘴别人这样? 01/04 10:03
15F:→ erspicu: 需要用多大的RAM跟演算法有关系 你连用啥方法都没说 01/04 10:08
16F:推 mmonkeyboyy: 想做gate-level东西 ram不会算 人家当你是来闹的先 01/04 10:08
17F:→ mmonkeyboyy: 你想做这个东西连基本知识都没有@_@~ 01/04 10:08
18F:→ erspicu: js那份project就回圈在跑而已 也只是载入一些节点定义 01/04 10:09
19F:→ erspicu: 所耗的记忆体根本不大 我是根本不知道你是要我算啥 01/04 10:10
20F:推 mmonkeyboyy: 呵呵呵呵呵 所以你还是不懂XD 01/04 10:11
21F:→ mmonkeyboyy: 就当我没讲 你加油 好棒! 01/04 10:12
22F:→ erspicu: 作法可能不只一种 谁知道你是要算哪一种? 01/04 10:12
23F:→ erspicu: 你连一个确定的命题或方式都没说 是要算啥? 01/04 10:12
24F:推 mmonkeyboyy: 这篇回文的e大就懂得怎麽算了不是? 01/04 10:16
25F:→ erspicu: 前面有说 细节我还要再稍微了解一下 但大概知道策略方向 01/04 10:19
26F:→ erspicu: 要算好歹要知道是要算啥用啥大概方式才能评估 01/04 10:19
27F:→ expiate: 没事,希望你能顺利完成你的梦想顺便造福大家 01/04 12:15
28F:→ javatea: array cell的查找用gpu跑 不会有啥好处吧 01/06 18:11
29F:→ javatea: 真的tensor core的硬体也不是这样搞的 = =a.... 01/06 18:14
30F:→ mmonkeyboyy: 不是这样搞没错啊.... 01/07 07:18
31F:→ mmonkeyboyy: 查找可能没有 用点数学运算可能有好处点 01/07 07:19
32F:→ mmonkeyboyy: 还要再插多蛮多层的 我也不能说太多 但方式有点像 01/07 07:20
33F:→ mmonkeyboyy: step-function 的做法 不过做下去搞刚又没啥好处就 01/07 07:20
34F:→ mmonkeyboyy: 是了 而且电路没办法scale 01/07 07:21
35F:→ mmonkeyboyy: 只做一个可能可以吧 啊灾 01/07 07:21
36F:→ mmonkeyboyy: 另一个电路的层级要先分出来才知道怎样让tensor-core 01/07 07:22
37F:→ mmonkeyboyy: 跑就是了@_@~ 这概念大概十年前就有人做了 01/07 07:24
38F:→ mmonkeyboyy: 为了让原文主可以找到文章 免得说找不到 这类文章 01/07 07:25
39F:→ mmonkeyboyy: UMICH下去找 找不找得到就看命了 01/07 07:25
40F:推 tomap41017: 人真的很好。 01/15 11:32







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP