写点什么

英伟达发布基于深度增强学习的电路设计方法 PrefixRL

作者:Claudio Masolo

  • 2022-08-08
  • 本文字数:1247 字

    阅读完需:约 4 分钟

英伟达发布基于深度增强学习的电路设计方法PrefixRL

英伟达发布PrefixRL,一种基于强化学习(RL)的方法,用它设计的并行前缀电路比用最先进的电子设计自动化(EDA)工具设计的并行前缀电路更小、更快。

 

GPU 中各种重要的电路,如加算器、递增器和编码器被称为并行前缀电路。这些电路是高性能数字设计的基础,可以在更高的级别上被定义为前缀图。PrefixRL 专注于这类运算电路,其主要目标是了解 AI 代理是否可以设计出一个好的前缀图,因为这个问题的状态空间是 O(2^n^n),所以不能使用暴力破解的方法解决。

 

理想的电路应该体积小、速度快、耗电少。英伟达发现,功耗与电路的面积密切相关,但电路面积和延迟往往是相互竞争的特性。PrefixRL 的目标是找到面积和延迟之间的有效权衡:在更小的面积上安装更多的电路,减少芯片的延迟,以提高性能和减少功耗。

 

Hopper GPU是英伟达最新的架构,有近 13000 个电路是由 AI 设计的。

 

PrefixRL 代理是用全卷积神经网络(Q-learning 代理)进行训练的。Q 网络的输入和输出都有一个前缀图的网格表示,网格中的每一个元素都唯一地映射到一个前缀节点。输入网格中的每一个元素表示节点是否存在。在输出端,每个元素表示用于添加或删除节点的 Q 值。PrefixRL 代理分别预测面积和延迟的值,因为这些属性在训练时是分开观察的。

 


前缀图表示(左)和完全卷积 Q-learning 代理架构(右)

 

RL 代理可以在前缀图中添加或删除节点,在强化学习任务的每一个步骤中,代理都会收到相应电路面积的改进和延迟作为奖励。在其他步骤中,设计过程是这样的:合法化前缀图,始终保持正确的前缀和计算,然后根据合法化前缀图生成一个电路。最后,用物理合成工具对电路进行优化,设计过程的最后一步是测量电路的面积和延迟特性。

 

面积和延迟之间的最佳权衡,即设计的帕累托边界,是通过训练大量不同权重(从 0 到 1)的代理来获得的。因此,在 RL 环境下的物理综合优化可以产生各种各样的解决方案。这个合成过程很慢(64 位加算器大约需要 35 秒),计算量也很高,物理模拟每个 GPU 对应 256 个 CPU,64 位的训练需要超过 32000 个 GPU 小时。

 

对于这种 RL 任务,英伟达开发了 Raptor,一个内部分布式强化学习平台,利用了英伟达的硬件优势。提高这类 RL 任务可伸缩性和训练速度的核心特性是:作业调度、GPU 感知的数据结构和自定义网络。为了提高网络性能,Raptor 能够在NCCL(用于点对点传输,直接从学习 GPU 传输模型参数到推断 GPU)、Redis(用于异步操作和较小的消息传输,如奖励或统计)和 JIT 编译的 RPC(用于处理高容量和低延迟的请求,如上传经验数据)之间切换。

 


英伟达的框架支持并行训练和数据收集

 

Raptor 提高了训练速度,让代理无需等待通过环境的步骤,这要归功于 CPU Worker 池并行执行物理合成。为了避免相同状态下的冗余计算,当 CPU Worker 返回奖励时,转换被插入到重放缓冲区中,奖励被缓存下来。

 

在相同的延迟条件下,RL 加算器比 EDA 加算器面积小 25%,而且结构不规则。这一成绩是通过 RL 代理学习利用合成电路特性的反馈从头设计电路来实现的。

 

原文链接

PrefixRL: Nvidia's Deep-Reinforcement-Learning Approach to Design Better Circuits

 

2022-08-08 10:294997

评论

发布
暂无评论
发现更多内容

Docker运行常用软件:MySQL,Redis,Nginx,RabbitMQ,Neuxs,Gitlab

读钓

MySQL nginx Docker gitlab

Python 有哪些黑魔法?

极客时间

Python 编程语言

身为程序员,怎么接私活赚外快?

爱看书的小代码

Sentinel在docker中获取CPU利用率的一个BUG

捉虫大师

Java sentinel cpu

以为是青铜,没想到是王者的dubbo标签路由

捉虫大师

dubbo

skywalking内存泄露排查

捉虫大师

dubbo 内存泄露

项目实施要避免哪些坑?

顾强

项目管理

如何在非 sudo 用户下运行 docker 命令?

愚一

Docker DevOps

XOR异或运算在计算机中的应用

wangkx

XOR 异或运算 对称加密

SpringBoot中如何优雅的使用多线程

读钓

Java spring Spring Boot

Ledge:这可能是距今最好的『DevOps + 研发效能』知识平台

Phodal

DevOps 敏捷开发 软件开发 研发效能

记一次spring注解@Value不生效的深度排查

捉虫大师

spring Spring Boot dubbo

MacOS配置网络命令

编程随想曲

macos network

读书·行路·问心·求道

黄崇远@数据虫巢

读书笔记 个人成长 读书

Apache Beam 大数据处理一站式分析

李孟聊AI

Java 大数据 数据中台 数据交换 Beam

在Kubernetes上运行SpringBoot应用

铁花盆

Docker Kubernetes Spring Boot

一个工程师向电信公司的维权

D

LeetCode 前1000题二叉树题目系统总结

Yano

面试 算法 LeetCode 二叉树 刷题

什么是物联网中台

老任物联网杂谈

物联网中台 IOT Platform 物联网平台

用jdk8的stream实现斐波那契数列

编号94530

jdk stream 斐波那契 fibonacci

18个PPT,29个提问解答,都在这儿啦!

Apache Flink

大数据 flink 流计算 实时计算

一行代码实现网站可编辑,并解决网站禁止复制的限制

wangkx

复制 破解 DOM

nacos的一致性协议distro介绍

捉虫大师

nacos

Linux系统优化

桥哥技术之路

Linux

一次漫长的dubbo网关内存泄露排查经历

捉虫大师

dubbo 内存泄露

都在说实时数据架构,你了解多少?

Apache Flink

大数据 flink 流计算 实时计算

零基础应该如何学习爬虫技术?

极客时间

Python 编程 爬虫

当dubbo多注册中心碰上标签路由

捉虫大师

dubbo

IPFS 星际传输协议的入门(二)

AIbot

区块链 分布式数据库

centos7.6操作系统安装

桥哥技术之路

Linux

思维导图学《Linux性能优化实战》

Yano

Linux 后端

英伟达发布基于深度增强学习的电路设计方法PrefixRL_AI&大模型_InfoQ精选文章