强化学习将问题建模为智能体与环境交互过程,从而使得对数据标签的使用方式与上述方法略有不同。通过利用数据标签中的奖惩信息,使得智能体的高价值行为得到奖赏,低价值行为受到惩罚,最终驱动智能体能够以累计奖励最大化来实现任务目标。目前强化学习的热点研究主要集中在深度强化学习上。这些算法按照有无模型可分为基于模型(model-based)算法,例如AlphaZero,无模型(model-free)算法,例如DDPG。而无模型方法中又可分为基于Q函数方法如DQN(Deep Qlearning),基于策略梯度方法,如PG(Policy gradient),以及综合两种方法而提出的Actor-Critic方法,如目前常用的算法PPO,TD3等。
限制强化学习的因素主要分为算法的训练过程,以及智能体与环境的交互效率。在实际应用中,相对于算法的训练过程(可以利用Tensor core进行加速的矩阵乘法运算),环境交互效率往往成为性能的瓶颈,例如复杂的仿真器设计或是数字孪生环境反而容易成为强化学习的性能瓶颈,因此强化学习多用于游戏(围棋,星际争霸,DOTA)等易于仿真的领域,这些场景的环境较为纯净。而其它例如机器人,自动驾驶等真实场景的领域场景较为复杂,相关应用还处于探索阶段。芯片设计中仿真环境大多数为数学算法模型,因此强化学习将有很大的发挥空间。另外,强化学习在大空间范围内的设计空间探索任务(DSE, design space exploration)也有比较好的效果[2]。
数字芯片设计流程介绍
在主要架构部分设计决定后,接下来就是在传统开发流程中需要开始大量消耗人力资源和计算机资源的软硬件研发步骤,主要包括逻辑设计/验证(Logic design/verification),逻辑综合(Logic level synthesis),系统级仿真平台(FPGA/Emulation),Design for test(DFT),形式验证(Formal verification),布局规划(Floorplan),布局(Placement),时钟树综合(Clock tree synthesis),布线(Routing),工程修改命令(ECO),
静态时序分析(static timing analysis),
物理验证(Physical verification),制造(Fabrication),封装(Packaging)和测试(Testing),驱动和编译器设计(driver/compiler),其中每一个步骤都包含了大量的测试迭代和反复设计的过程,很大程度上影响了芯片设计的周期,因此,这些领域也是可以让机器学习方法极大提升生产效率的领域。
ML方法在芯片设计领域的应用
逻辑综合是将RTL寄存器描述转换成门级网表的过程。我们可以将电路看成是一个DAG(Directed Acyclic Graph)图的表达形式,使用DNN方法根据不同的QoR(Quality of Results)需求将电路优化成AIG(And-Inverter Graph)的形式或者是MIG(Majority Inverter Graph)的形式。另外,我们也可以利用CNN的方法来预测一个RTL设计的QoR,其中包括timing/area/power等指标。在强化学习中,也有一些针对逻辑综合任务的建模技巧,例如,我们可以将同一个IO行为的电路的不同的DAG实现看成一个强化学习中的action;使用GCN方法作为策略函数来获得每一个action的概率等。
Floorplan是placement的前序步骤,在这个阶段我们需要根据一定的原则将所有的模块在区域内摆放位置确定好,同时满足时序和走线基本需求。对此,Google设计了一个强化学习策略,将macro的摆放过程看成是连续的决策过程[6]。下图展示了具体网络设计流程,其使用GCN,将所有macro的信息和网表的连接信息做embedding,拿到graph embedding当前macro的embedding和网表元数据的embedding后,通过一个FC层分别送给策略网络和价值网络。其价值网络是一个FC层,策略网络是一个反卷积网络,策略网络会根据概率输出一个128x128x1的网格mask,作为当前macro的摆放位置。另外还会输出一个当前placement的预期reward,其奖励是整个方案预估的走线长度和congestion的线性加权值。
[1] A Survey of Machine Learning for computer Architecture and Systems,NAN WU and YUAN XIE, University of California, Santa Barbara
[2] Apollo: Transferable ArchitectureExploration,Amir Yazdanbakhsh Christof AngermuellerBerkin Akin Yanqi Zhou Albin Jones Milad Hashemi Kevin Swersky SatrajitChatterjee Ravi Narayanaswami James Laudon
[3] Machine Learning for Electronic DesignAutomation: A Survey,GUYUEHUANG, JINGBOHU, YIFAN HE, JIALONG LIU, MINGYUAN MA, ZHAOYANG SHEN, JUEJIAN WU, YUANFAN XU, HENGRUI ZHANG, KAI ZHONG, and XUEFEI NING, YUZHE MA, HAOYU YANG, and BEI YU, HUAZHONG YANG and YU WANG
[4] Bit-level Perceptron Prediction for Indirect Branches,Elba Garza, Samira Mirbagher-AjorpazTahsin Ahmad Khan, Daniel A. Jimenez
[5] End-to-end Deep Learning of Optimization Heuristics,Cummins, C, Petoumenos, P, Wang, Z & Leather, H
[6] Chip Placement with Deep ReinforcementLearning,Azalia Mirhoseini Anna Goldie Mustafa YazganJoe Jiang Ebrahim Songhori Shen Wang Young-Joon Lee Eric Johnson Omkar PathakSungmin Bae Azade Nazi Jiwoo Pak Andy Tong Kavya Srinivasa William Hang EmreTuncer Anand Babu Quoc Le James Laudon Richard Ho Roger Carpenter Jeff Dean
[7] Haoxing Ren, George F Kokai, Walker J Turner, and Ting-Sheng Ku. 2020. ParaGraph: Layout parasitics and device parameter prediction using graph neural networks. In 2020 57th ACM/IEEE DesignAutomation Conference (DAC).