Public Docs
【模型量化】深度学习模型量化 & 量化理论 & 各平台的量化过程 & 硬件加速
【TVM】TI关于TVM的使用测试与分析
【LLM&LVM】大模型开源工程思维导图
【北航卓越工程师】《汽车前沿技术导论:智能驾驶》讲义
【工具链】Yocto使用介绍——使用Yocto创建一个树莓派的系统镜像
【工具链】使用ssh+dialog指令设定服务器指定用户仅容器访问
【推理引擎】一篇关于模型推理的详细对比与学习
【推理引擎】关于TVM中的Schedule优化详解(On going)
【LLM微调】使用litgpt进行私有数据集模型微调的测试总结
【TVM】在TVM Relay中创建一个自定义操作符
【STT+LLM+TTS】如何使用语音转文字模型+大预言模型+语音生成模型完成一个类人的语音交互机器人
【RAG】 通过RAG构建垂直领域的LLM Agent的方法探索
【RAG】GraphRAG精读与测试(On going)
【AI Agent】MetaGPT精读与学习
【AI Base】Ilya Sutskever 27篇必读论文分享清单
【Nvidia】Jetson AGX Orin/ Jetson Orin nano 硬件测试调试内容(On going)
【BI/DI】LLM Using in BI Testing Scenario (On going)
【Nvidia】How to Activate a Camera on Nvidia Platform in Details
【RAS-PI】树莓派驱动开发
【行业咨询阅读】关注实时咨询和分析
【mobileye】2024 Driving AI
【mobileye】SDS_Safety_Architecture
【yolo】yolov8测试
【nvidia】Triton server实践
【alibaba】MNN(on updating)
【OpenAI】Triton(on updating)
【CAIS】关于Compound AI Systems的思考
【Nvidia】关于Cuda+Cudnn+TensorRT推理环境
【BEV】BEVDet在各个平台上的执行效率及优化(On Updating)
【Chip】AI在芯片设计和电路设计中的应用
【Chip】ChiPFormer
【Chip】关于布线的学习
【Chip】MaskPlace论文精读与工程复现优化
【gynasium】强化学习初体验
【Cadence】X AI
【transformer】MinGPT开源工程学习
【中间件】针对apollo 10.0中关于cyberRT性能优化的深度解读和思考
【Robotics】调研了解当前机器人开发者套件(on updating)
【Robotics】ROS CON China 2024 文档技术整理与感想总结(上2024.12.7,中2024.12.8,下场外产品)
【algorithm】关于模型、数据与标注规范的平衡问题
【nvidia】DLA的学习了解与使用
【nvidia】构建nvidia嵌入式平台的交叉编译环境(其他环境平台可借鉴)
【2025AI生成式大会】2025大会个人总结
【Robotics】 Create Quadruped Robot RL FootStep Training Environment In IsaacLab
文档发布于【Feng's Docs】
-
+
首页
【Chip】ChiPFormer
# 1. Description * https://github.com/laiyao1/chipformer * https://github.com/FengD/chipformer_custom 测试理解完,DeepPlace,MaskPlace之后,根据项目需求,详细学习了一下chipformer,并针对开源工程和论文本身,fork了一下github工程进行了一些调整和学习。 # 2. Introduction `ChiPFormer: Transferable Chip Placement via Offline Decision Transformer ICML203` * 作者自述的核心贡献: 1. 第一个学习可移植(可以高效迁移到没见过的芯片布局上)布局策略的offline方法; 2. 公开了一个芯片数据集;包含12个芯片和每个芯片的500个布局,可以在google drive上下载;(https://drive.google.com/drive/folders/1F7075SvjccYk97i2UWhahN_9krBvDCmr?usp=sharing) 相比较于之前的方法,个人理解的理解和解读: 1. (与作者自述第一点相同)相比较于之前的其他方案,虽然online训练能够取得不错的效果,但是每当有新的电路出现时,都需要重新执行online训练,迁移能力和效率都比较差。而能够实现这一步骤其中有几个非常精巧的设计; * 直接使用GPT结构,transformer base的方案不论是在繁华性,还是考虑未来数据的增加和资源变多,基于scaling law进行扩增,都能有一定的性能扩增,在便捷度和扩展性方面有较大优势;同事不论是当前的few shot方案,还是在GPT结构上添加一些微调结构,也能进一步的适应迁移; * maskplace中作者虽然提到了图结构但是没有实际使用,而deeplace等方案只是使用了一个简单的GCN。而chipformer中直接使用GAE或者VGAE直接学习图结构更深层的特征表示,并且本身这些过程都是无监督的,无需对数据进行标注。整个方案既满足了性能需求,也弥补了wiremask,position mask和View mask中无法体现出电路本身的特征信息的不足; 2. 对于历史专家数据的使用;chipformer的专家数据因为考虑到时序信息,是使用maskplace生成的500组随机结果;后续如果使用人工的专家数据,会取得更好的效果; 3. 对于mixed placement的效果; 4. 相比较于maskplace的开源工程,chipformer的工程质量有较大的进步; # 3. 论文精度以及和开源工程的对比与修改 1. 工程中没有对结果进行可视化的部分,关于HPWL和cost的计算也没有添加,tensorboard的相关使用都注释掉了,整体进行了复原; 2. 针对于部分参数在各个文件中重复定义,容易出错的问题,添加了config.py文件,统一管理 pretrain和finetuning的参数; 3. 使用github lfs将一些大文件进行上传归档,方便读取以及全流程使用; ## 3.1 执行时间 从执行时间来看,ChiPFormer的整个训练工程的用时具有明显优势。作者在论文中提到,使用的是一个6layer 8head 128 embeding的结构,刚好需要24GB的显存,但是工程中从备注可以看到作者是有尝试过12layer 12head 768 embedding的gpt2对的结构的,双RTX3090刚好能跑动。我因为使用的是4090单卡,所以保持论文中的配置不变  ## 3.2 整个方案过程offline RL 下图清晰的展示了chipformer和其他方案的区别。从b图可以看到,针对marco单元的布局中,先在已经有的数据集上进行offline训练,如果是已经见过的电路,则可以直接推理出结果。如果是未见过的电路,再在新的数据集上进行fine-tuning,根据Dreamplace中基于优化的方案对standard cell进行布局,但是macro cell仍可以移动。  ## 3.3. 骨干网 * 左侧是采用VGAE进行特征提取。 A是adj矩阵,表示节点之间的连接关系,X是节点的特征特征维度为4,分别是长、宽、面积和顺序,实际使用时进行了归一化处理。考虑到adj的影响,实际对图的`度`进行了一些列的处理,见preprocessing.py preprocess_graph,这是避免图出现同质化现象的一系列标准操作。完成操作VGAE推理得到Z,Z是一个电路VGAE的最终特征结果。VGAE也是GAE添加了一个生成式网络的标准高斯噪声层,使用一个额外的可学习GCN模块。输出一个1*32的特征向量。多个特征向量叠加,在每个特征维度进行avg pooling,得到HI token。用于右侧部分的Transformer网络的训练。 * 右侧的Transformer网络是使用的一个minGPT的结构。state token的方案和maskplace相同,分别计算了position mask,wiremask和Viewmask,分别作为一个1*84*84的图层,concat之后,使用一个三层卷积和一个全连接进行特征提取embedding操作,转换为state token。action token就是一个macros的x y坐标。然后根据2T+1个token 预测 action(t+1)。  # 4. 复现实验结果 ## 4.0 数据 * 基于google drive placement benchmark的数据解压后得到所有数据的node、net、pl、scl等文件作为benchmark数据。  数据定义见pdf[【附件】Benchmark_Format.pdf](/media/attachment/2024/11/Benchmark_Format.pdf)。 <iframe src="https://blackmanba.top/media/attachment/2024/11/Benchmark_Format.pdf" style="width:100%;height:500px;" frameborder="no"></iframe> * 除了benchmark用来做对比训练图网络生成cirsuit token和损失计算外,google网盘还额外提供了部分用于训练的专家数据,用于state token和action token的生成。   关于expert文件的数据量为什么是5120还没太理解????? ``` python import pickle import numpy as np pkl_file_path = "./data_expert/adaptec2-11082115-expert-data.pkl" with open(pkl_file_path, 'rb') as file: data = pickle.load(file) print(data) print(len(data['lengths'])) print(len(data['actions'])) print(len(data['terminals'])) print(len(data['rewards'])) print(len(data['obs_pos_mask'])) # output # 5120 # 5120 # 5120 # 5120 # 5120 ``` ## 4.1. VGAE训练 首先基于全量的12个circuit 尝试训练了GAE和VGAE两个版本的circuit token。然后使用VGAE的结果进行pretrain   ## 4.2. pretrain 按照论文中的描述,使用adaptec1、ibm01、bigblue1三个circuit作为pretrain的数据。原论文中将数据分成了4组,分别是1,2,3,4。使用2,3,4共9个数据作为pretrain的训练。使用1作为finetuning的训练。我这边先进行了一个初步测试。看一下hwpl和cost的结果。  可以看到 整个过程基本在训练到600个iter左右收敛,hwpl 分别在adaptec1 8.6 * 10^5, bigblue1 3 * 10^5, adaptec1 4.3* 10^5, 基本都与论文标称的指标一致。   ## 4.3 finetuning 使用4.2中训练的模型直接进行推理,使用660 epoch的结果110*10^5已经由于ChipFormer1的结果,然后执行finetuning。 ``` T_rewards [-56885.0, -74757.0, -46373.0, -50640.0, -85094.0, -43640.0, -82897.0, -48110.0, -48561.0, -79409.0] T_scores [1.2889375000000005, 1.0655374999999994, 1.4203375000000005, 1.3669999999999995, 0.9363250000000002, 1.4545, 0.9637875000000001, 1.3986250000000002, 1.3929874999999998, 1.0073874999999999] target return: 0.00, eval return: -43640.00, avg return: -61636.60 len self.net_min_max_ord 2335 T_rewards [-59582.0] T_scores [1.255225] len self.net_min_max_ord 2335 adaptec2-N: hpwl = 11045637.000000037, cost = 11825500.666666668 ``` 可以看到在差不多10个epoch,3分钟之后,就直接优于了maskplace online trining的结果  # Annexe * https://arxiv.org/pdf/2306.14744
dingfeng
2024年11月22日 11:28
594
0 条评论
转发文档
收藏文档
上一篇
下一篇
评论
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码