circuit_training

GitHub
1.6k 260 较难 1 次阅读 昨天Apache-2.0开发框架其他
AI 解读 由 AI 自动生成,仅供参考

AlphaChip 是一个开源框架,旨在利用分布式深度强化学习技术自动生成芯片的布局规划(Floorplan)。它复现了发表在《自然》杂志上的突破性研究成果,解决了传统芯片设计中依赖人工经验、耗时漫长且难以在宏单元数量激增时找到最优解的难题。通过智能算法,AlphaChip 能够同时优化线长、拥塞度和密度等多个关键指标,自动决定数百个宏单元的位置与朝向,显著缩短设计周期并提升芯片性能。

这款工具特别适合芯片设计研究人员、EDA 算法开发者以及希望探索 AI 辅助硬件设计的工程师使用。其核心技术亮点在于基于 TensorFlow 2.x 和 TF-Agents 构建,支持大规模分布式训练与数据收集,可轻松扩展至数百个执行节点。此外,AlphaChip 功能丰富,不仅支持宏单元与边界间距约束、固定宏单元处理,还能兼容 DREAMPlace 进行标准单元布局,并允许用户自定义工艺技术参数。作为首个将强化学习成功应用于现实世界工程问题的案例之一,AlphaChip 为学术界和工业界提供了一个强大的基础平台,推动着"AI 造芯”技术的持续演进。

使用场景

某半导体初创公司的物理设计团队正面临一款新一代 AI 加速器芯片的布局挑战,该芯片包含数百个大型宏模块和数百万个标准单元,需在极短周期内完成高质量版图规划。

没有 circuit_training 时

  • 资深工程师需花费数周时间手动调整宏模块位置与方向,反复试错以平衡线长和拥塞度,效率极低且高度依赖个人经验。
  • 传统启发式算法难以同时优化线长、密度和拥塞等多个冲突目标,往往顾此失彼,导致后期时序收敛困难。
  • 面对复杂的宏模块间距约束和固定模块限制,人工规则检查耗时费力,极易遗漏设计规则违规(DRC)风险。
  • 每次设计迭代都需要重新运行耗时的全局布线估算,无法快速反馈不同布局方案对最终性能的影响。
  • 团队缺乏可扩展的分布式训练能力,无法利用多 GPU 集群加速探索更优的布局策略,错失设计窗口期。

使用 circuit_training 后

  • circuit_training 利用深度强化学习在数小时内自动生成宏模块的最佳位置和翻转方向,将原本数周的人工迭代压缩至天级别。
  • 框架原生支持多目标联合优化,生成的布局方案在线长、拥塞度和密度指标上均达到帕累托最优,显著提升了时序收敛成功率。
  • 自动处理宏模块间及边界间距约束,内置的网格对齐功能完美模拟时钟带状区域,从源头规避了潜在的物理设计违规。
  • 集成 DREAMPlace 进行标准单元快速放置,结合分布式数据收集,能在分钟级内评估数百种布局变体,实现即时设计反馈。
  • 借助其分布式训练架构,团队轻松调动上百个 Actor 节点并行探索解空间,大幅提升了在复杂网表上的搜索效率和方案质量。

circuit_training 将芯片布局从依赖专家经验的“手工艺”转变为数据驱动的自动化流程,极大地缩短了高性能芯片的研发周期。

运行环境要求

操作系统
  • Linux
GPU

支持多 GPU 分布式训练(具体型号和显存未说明,但需支持 TensorFlow 2.x 及 CUDA)

内存

未说明

依赖
notes1. 该工具仅支持基于 Linux 的操作系统,不支持 macOS 或 Windows。 2. 核心依赖 DREAMPlace 未提供 PyPi 包,通常需要从源码编译或使用项目提供的针对 Ubuntu 20.04 构建的预编译二进制文件。 3. 需要手动下载并配置放置成本二进制文件 (plc_wrapper_main) 到系统路径。 4. 推荐使用 Docker 进行部署以避免环境依赖问题。 5. 若使用本地安装,需正确设置 PYTHONPATH 以包含 DREAMPlace 路径。
python3.9, 3.10, 3.11 (Docker 镜像仅支持 Python 3.9)
TensorFlow 2.x
TF-Agents (稳定版或 nightly 版)
Reverb
tf-keras
DREAMPlace (需编译或使用预编译二进制)
circuit_training hero image

快速开始

AlphaChip:一个基于分布式深度强化学习生成芯片版图的开源框架。

AlphaChip 是一个开源框架, 用于通过分布式深度强化学习生成芯片版图。 该框架复现了 Nature 2021 年论文中发表的方法:

一种用于快速芯片设计的图布局方法。 Azalia Mirhoseini、Anna Goldie、Mustafa Yazgan、Joe Wenjie Jiang、Ebrahim Songhori、Shen Wang、Young-Joon Lee、Eric Johnson、Omkar Pathak、Azade Nazi、 Jiwoo Pak、Andy Tong、Kavya Srinivasa、William Hang、Emre Tuncer、Quoc V. Le、 James Laudon、Richard Ho、Roger Carpenter 和 Jeff Dean,2021 年。Nature,594(7862), 页 207–212。 [PDF]

AlphaChip——最早用于解决实际工程问题的强化学习方法之一——在过去几年里推动了人工智能在芯片设计领域的大量研究。如今,它已被用于设计 Alphabet 内部及外部的芯片布局,并扩展到设计流程的多个阶段,包括逻辑综合、宏单元选择、时序优化等!我们希望研究人员能够继续基于 AlphaChip 的方法论和开源框架进行创新。更多信息请参阅我们的 博客文章

AlphaChip 构建于 TF-AgentsTensorFlow 2.x 之上,支持急切执行模式、跨多 GPU 的分布式训练,以及可扩展至数百个智能体的分布式数据收集。

目录

功能
安装
快速入门
测试
发布
预训练模型检查点
如何使用检查点
结果
常见问题解答
贡献方式
AI 原则
贡献者
引用方式
免责声明

功能

  • 可放置包含数百个宏单元和数百万个标准单元的网表(以聚类格式)。
  • 同时计算宏单元的位置与方向(翻转)。
  • 优化多个目标,包括布线长度、拥塞度和密度。
  • 支持将模块对齐到网格,以模拟时钟带或宏单元阻挡。
  • 支持宏单元之间的间距约束以及宏单元与边界之间的间距约束。
  • 支持固定宏单元。
  • 支持将 DREAMPlace 用作标准单元布局器。
  • 允许用户指定自己的工艺参数,例如每微米的布线资源和宏单元的布线分配。
  • 生成 聚类网表
  • TILOS-AI-Institute 已经创建了一个 脚本 用于将 LEF/DEF 和 Bookshelf 格式转换为 Netlist Protocol Buffer ,作为 AlphaChip 的输入。

安装

:warning: AlphaChip 仅支持基于 Linux 的操作系统。 :warning: AlphaChip 需要 Python 3.9 或更高版本。

稳定性

AlphaChip 是一项研究项目。我们目前尚未创建 PyPI 构建。这里的“稳定”是指相对于 HEAD 提交的状态,意味着代码在此时已被测试并分支出来。由于上游库不断变化,旧分支可能会比预期更快地过时。

以下步骤将安装最新的分支,而归档版本则位于 发布部分。有两种安装方法;但在开始之前,您需要先完成 初步设置

初步设置

在按照说明操作之前,请设置以下变量并克隆仓库:

$ export CT_VERSION=0.0.4
# 目前支持 Python 3.9、Python 3.10 和 Python 3.11
# Docker 版本仅支持 Python 3.9。
$ export PYTHON_VERSION=python3.9
$ export DREAMPLACE_PATTERN=dreamplace_20231214_c5a83e5_${PYTHON_VERSION}.tar.gz
# 如果表格中的 TF-Agents 版本不是最新版本,则需修改此命令,
# 以匹配所使用的 AlphaChip 分支对应的 TF-Agents 版本。
$ export TF_AGENTS_PIP_VERSION=tf-agents[reverb]

# 克隆仓库并检出所需分支。
$  git clone https://github.com/google-research/circuit_training.git
$  git -C $(pwd)/circuit_training checkout r${CT_VERSION}

使用 Docker

请务必先完成 初步设置。使用 Docker 是运行 AlphaChip 最简洁的方式,以下命令将创建一个包含所有必要依赖项的 Docker 容器:

$ export REPO_ROOT=$(pwd)/circuit_training

# 构建 Docker 镜像。
$ docker build --pull --no-cache --tag circuit_training:core \
    --build-arg tf_agents_version="${TF_AGENTS_PIP_VERSION}" \
    --build-arg dreamplace_version="${DREAMPLACE_PATTERN}" \
    --build-arg placement_cost_binary="plc_wrapper_main_${CT_VERSION}" \
    -f "${REPO_ROOT}"/tools/docker/ubuntu_circuit_training ${REPO_ROOT}/tools/docker/

# 使用该镜像运行端到端冒烟测试。耗时 10–20 分钟。
$ mkdir -p ${REPO_ROOT}/logs
$ docker run --rm -v ${REPO_ROOT}:/workspace --workdir /workspace circuit_training:core \
    bash tools/e2e_smoke_test.sh --root_dir /workspace/logs

本地安装

请务必先完成 初步设置

AlphaChip 的安装步骤如下:

  • 安装我们的 DREAMPlace 二进制文件。
  • 安装 TF-Agents 和布局成本二进制文件。
  • 运行测试

安装 DREAMPlace

请按照 安装说明 操作 DREAMPlace,但不要更改您之前已导出的环境变量。

安装 TF-Agents 和布局成本二进制文件

以下命令将安装 TF-Agents 和布局成本二进制文件。

# 安装带有稳定版本 Reverb 和 TensorFlow 2.x 的 TF-Agents。
$  pip install $TF_AGENTS_PIP_VERSION
$  pip install tf-keras

# 使用 keras-2
$ export TF_USE_LEGACY_KERAS=1
# 将放置成本二进制文件复制到 /usr/local/bin 并使其可执行。
$  sudo curl https://storage.googleapis.com/rl-infra-public/circuit-training/placement_cost/plc_wrapper_main_${CT_VERSION} \
     -o  /usr/local/bin/plc_wrapper_main
$  sudo chmod 555 /usr/local/bin/plc_wrapper_main

运行一个测试。

这些命令运行一个基本的单元测试;如果当前稳定的 tf-agents 不是你安装的版本,那么编辑 tox.ini 文件并将 tf-agents[reverb] 改为 tf-agents[reverb]~=<你想要的版本>

tox -e py39-stable -- circuit_training/grouping/grouping_test.py

HEAD

我们建议使用 stable 分支;但我们的团队确实从 HEAD 分支进行工作。主要问题是当上游库出现问题时,HEAD 分支就会中断,而我们的 HEAD 分支还使用了其他夜间构建的库,这增加了不确定性。

下面的步骤会安装最新的分支,其归档位于 releases 部分。有两种安装方法;但在执行任何一种之前,你需要先完成 初步设置

初步设置

在按照说明操作之前,请设置以下变量并克隆仓库:

# 目前支持 python3.9、python3.10 和 python3.11
# Docker 版本仅支持 python3.9。
$ export PYTHON_VERSION=python3.9
$ export DREAMPLACE_PATTERN=dreamplace_${PYTHON_VERSION}.tar.gz

# 克隆仓库并检出所需分支。
$  git clone https://github.com/google-research/circuit_training.git

使用 docker

请务必完成 初步设置。使用 AlphaChip 最干净的方式是通过 docker,以下命令将创建一个包含所有必要依赖项的镜像:

$ export REPO_ROOT=$(pwd)/circuit_training

# 构建包含当前 DREAMPlace 和放置成本二进制文件的镜像。
$ docker build --pull --no-cache --tag circuit_training:core \
    --build-arg tf_agents_version="tf-agents-nightly[reverb]" \
    -f "${REPO_ROOT}"/tools/docker/ubuntu_circuit_training ${REPO_ROOT}/tools/docker/

# 使用该镜像运行端到端烟雾测试。耗时 10-20 分钟。
$ mkdir -p ${REPO_ROOT}/logs
$ docker run --rm -v ${REPO_ROOT}:/workspace --workdir /workspace circuit_training:core \
    bash tools/e2e_smoke_test.sh --root_dir /workspace/logs

本地安装

AlphaChip 的安装步骤如下:

  • 安装我们的 DREAMPlace 二进制文件。
  • 安装 TF-Agents 夜间版和放置成本二进制文件。
  • 运行一个测试。

安装 DREAMPlace

请遵循 安装 DREAMPlace 的说明,但不要更改你之前已经导出的 ENV VARS。

安装 TF-Agents 和放置成本二进制文件

以下命令会安装 TF-Agents 和放置成本二进制文件。

# 安装带有稳定版本 Reverb 和 TensorFlow 2.x 的 TF-Agents 夜间版。
$  pip install tf-agents-nightly[reverb]
$  pip install tf-keras
# 使用 keras-2
$ export TF_USE_LEGACY_KERAS=1
# 将放置成本二进制文件复制到 /usr/local/bin 并使其可执行。
$  sudo curl https://storage.googleapis.com/rl-infra-public/circuit-training/placement_cost/plc_wrapper_main \
     -o  /usr/local/bin/plc_wrapper_main
$  sudo chmod 555 /usr/local/bin/plc_wrapper_main

运行一个测试。

这些命令会运行一个基本的单元测试。

tox -e py39-nightly -- circuit_training/grouping/grouping_test.py

安装 DREAMPlace

DREAMPlace 作为 PyPi 包提供,需要自行编译。我们提供了从我们的 分支 中提取的 DREAMPlace 已编译版本,适用于多种 Python 版本,并为我们的 docker 镜像(Ubuntu 20.4)构建。我们也将其用于预提交测试。如果我们的二进制文件与你的操作系统工具链不兼容,你则需要自行编译。我们使用此 脚本 来创建我们的 DREAMPlace 二进制文件。

# 这些 ENV VARS 可能已在上面设置,如果已设置则无需再次导出。
$ export PYTHON_VERSION=python3.9
$ export DREAMPLACE_PATTERN=dreamplace_${PYTHON_VERSION}.tar.gz
# 将 DREAMPlace 安装到 `/dreamplace`。只要正确设置了 PYTHONPATH,任何位置都可以。
$  mkdir -p /dreamplace
# 选择与你的 Python 版本匹配的二进制文件。
$  curl https://storage.googleapis.com/rl-infra-public/circuit-training/dreamplace/dreamplace_python3.9.tar.gz -o /dreamplace/dreamplace.tar.gz

# 解压包。
$  tar xzf /dreamplace/dreamplace.tar.gz -C /dreamplace/

# 设置 python 路径,以便我们可以用 `import dreamplace.Placer` 找到 Placer。
# 同时还需要将整个 DREAMPlace 放在根目录下,因为 DREAMPlace 的 python 模块并不是以类似 `dreamplace.Param` 的方式组织导入的。
$  export PYTHONPATH="${PYTHONPATH}:/dreamplace:/dreamplace/dreamplace"

# DREAMPlace 需要一些额外的系统和 python 库。
# 系统包
$  apt-get install -y \
      flex \
      libcairo2-dev \
      libboost-all-dev

# Python 包
$  python3 -mpip install pyunpack>=0.1.2 \
      patool>=1.12 \
      timeout-decorator>=0.5.0 \
      matplotlib>=2.2.2 \
      cairocffi>=0.9.0 \
      pkgconfig>=1.4.0 \
      setuptools>=39.1.0 \
      scipy>=1.1.0 \
      numpy>=1.15.4 \
      torch==1.13.1 \
      shapely>=1.7.0

快速入门

最好的快速入门方式是运行 端到端烟雾测试,然后查看完整的分布式示例 AlphaChip for Ariane RISC-V。关于多个网表的预训练,请参阅 预训练说明

测试

# 使用夜间版 TF-Agents 运行测试。
$  tox -e py39-nightly,py310-nightly,py311-nightly
# 使用最新稳定版 TF-Agents 运行测试。
$  tox -e py39-stable,py310-stable,py311-stable

# 使用我们的 Docker 进行 CI。
## 构建 docker
$  docker build --tag circuit_training:ci -f tools/docker/ubuntu_ci tools/docker/
## 使用夜间版 TF-Agents 运行测试。
$  docker run -it --rm -v $(pwd):/workspace --workdir /workspace circuit_training:ci \
     tox -e py39-nightly,py310-nightly,py311-nightly
## 使用最新稳定版 TF-Agents 运行测试。
$  docker run -it --rm -v $(pwd):/workspace --workdir /workspace circuit_training:ci \
     tox -e py39-stable,py310-stable,py311-stable

发布版本

虽然在 HEAD 上运行可能有效,但从分支开始工作具有更稳定的优势。我们已对代码库打上标签,以标记与底层库的稳定版本兼容。对于 DREAMPlace,可以使用文件名模式来安装支持的 Python 版本的 DREAMPle。对于 Placement Cost 二进制文件,URL 指向的是在该分支创建时所使用的 PLC 版本。

发布版本 分支 / 标签 TF-Agents DREAMPlace PL
HEAD main tf-agents-nightly[reverb]
0.0.4 v0.0.4 tf-agents[reverb]~=0.19.0 dreamplace_20231214_c5a83e5_python3.9.tar.gz plc_wrapper_main_0.0.4
0.0.3 v0.0.3 tf-agents[reverb]~=0.16.0 dreamplace_20230414_b31e8af_python3.9.tar.gz plc_wrapper_main_0.0.3
0.0.2 v0.0.2 tf-agents[reverb]~=0.16.0

预训练模型检查点

与以往的方法不同,我们的方法是一种基于学习的方法,这意味着随着它看到并解决更多芯片布局问题实例,其性能会更好、速度也会更快。正如原始《自然》杂志文章以及 ISPD 2022 的后续研究中所述(Summer Yue, Ebrahim Songhori, Joe Jiang, Toby Boyd, Anna Goldie, Azalia Mirhoseini, Sergio Guadarrama. 芯片平面规划电路训练的可扩展性和泛化能力。ISPD, 2022.`] (https://dl.acm.org/doi/abs/10.1145/3505170.3511478)),这一预训练步骤显著提高了其速度、可靠性和布局质量。

我们发布了一个在 20 个 TPU 块上预训练的模型检查点,它可以作为模型训练和微调的起点。请注意,与其他深度学习模型(如大型语言和视觉模型)一样,在预训练过程中增加训练样本数量并使用分布内数据将提高结果质量。因此,为了获得最佳效果,我们强烈建议您在自己的芯片块上进行预训练,因为这些将代表 RL 代理最相关的布局经验。

显然,如果不进行任何预训练,即从零开始训练,RL 代理就无法从先前的经验中学习。

如何使用该检查点

首先,下载并解压检查点:

sudo curl https://storage.googleapis.com/rl-infra-public/circuit-training/tpu_checkpoint_20240815.tar.gz -o $PWD/tpu_checkpoint_20240815.tar.gz
tar -xvf tpu_checkpoint_20240815.tar.gz
CHECKPOINT_DIR=$PWD/tpu_checkpoint_20240815/

然后,在训练二进制文件中将以下标志设置为提供的检查点目录:

python3.9 -m circuit_training.learning.train_ppo \
  ... \
  --policy_checkpoint_dir=${CHECKPOINT_DIR} \
  --policy_saved_model_dir=${CHECKPOINT_DIR}

结果

以下结果是针对从零开始训练的情况报告的,因为目前无法共享预训练模型。

Ariane RISC-V CPU

请在我们的详细信息页面查看 Ariane 实验的完整细节。代码的改进还使得即使是从零开始训练,所需的 GPU 资源减少了 50%,壁时速度提升了两倍。以下是针对 3 个不同种子各运行 3 次的结果的平均值和标准差。这与论文中采用的方式略有不同(每个种子运行 8 次),但更能反映不同的变异来源。

指标 代理布线长度 代理拥塞度 代理密度
平均值 0.1013 0.9174 0.5502
标准差 0.0036 0.0647 0.0568

下表总结了论文(https://www.nature.com/articles/s41586-021-03544-w.epdf?sharing_token=tYaxh2mR5EozfsSL0WHZLdRgN0jAjWel9jnR3ZoTv0PW0K0NmVrRsFPaMa9Y5We9O4Hqf_liatg-lvhiVcYpHL_YQpqkurA31sxqtmA-E1yNUWVMMVSBxWSp7ZFFIWawYQYnEXoBE4esRDSWqubhDFWUPyI5wK_5B_YIO-D_kS8%3D)中关于从预训练模型微调的结果,共进行了 8 次实验,每次使用不同的种子。

指标 代理布线长度 代理拥塞度 代理密度
平均值 0.1198 0.9718 0.5729
标准差 0.0019 0.0346 0.0086

常见问题解答

我们编写了这份常见问题解答,旨在回答关于我们工作的常见问题。如果您还有其他问题,请随时联系我们!

我们的团队目标和理念是什么?

我们的目标是帮助芯片设计师更高效、更出色地完成工作,并且我们欢迎任何能够推动我们实现这一目标的方法。为了确保我们解决的是实际问题,我们与芯片设计师紧密合作,深入了解并满足他们的需求。

我们的工作有哪些影响?

据我们所知,这是我们首次在生产环境中使用深度强化学习(RL)方法来设计硬件产品。具体来说,《自然》杂志论文中描述的RL方法生成了宏单元布局,这些布局最终被冻结并用于谷歌的AI加速器芯片(TPU-v5)的流片。

我们也非常高兴地看到,多家顶尖的EDA和芯片设计公司(例如SynopsysCadenceNVIDIA等)都已宣布将在其工具和芯片设计工作中采用类似的基于RL的方法。

我们是否在开源基准上评估过我们的方法?

我们主要关注像TPU和Pixel这样的现代10纳米以下芯片,不过我们确实发表了一篇由David Pan教授及其学生Zixuan Jiang主导的MLCAD 2021论文,在该文中我们报告了在解除了宏单元固定后,使用ISPD 2015开源基准的结果。无论如何,我们的方法已经开源,社区可以自由地在任何基准上进行尝试。

我们与商业自动布局工具相比如何?

由于许可协议的限制,我们无法公开与商业自动布局工具的对比结果。不过,我们可以指出,我们的最强基线是由物理设计团队直接在商业自动布局工具的帮助下完成的设计方案,而我们的方法优于这一基线(参见我们《自然》论文中表1中的“手动”基线)。

我们如何对标准单元进行聚类?

在《自然》论文中,我们详细介绍了如何使用hMETIS对标准单元进行聚类,包括所有必要的设置。有关详细设置,请参阅我们《自然》论文中的扩展数据表3(链接:http://rdcu.be/cmedX)。在内部,谷歌会购买商业许可证,但非商业机构也可以使用免费的开源许可证。

无论如何,我们的方法同样可以在未聚类的网表上运行,因此如果您愿意,可以跳过预处理步骤。不过,我们发现聚类对我们的RL方法以及基线布局工具都有益处。我们的方法复杂度取决于宏单元的数量,而不是标准单元的数量,因此运行时间不会受到太大影响。

我们支持哪些网表格式?

我们的布局工具以开源的protocol buffer格式表示网表。您可以在此处了解更多关于该格式的信息(链接:./docs/NETLIST_FORMAT.md)。如果需要处理其他格式的网表(如LEF/DEF或Bookshelf),可以先将其转换为protocol buffer格式。请参阅我们的快速入门指南,其中提供了一个在开源RISC-V Ariane CPU上使用此格式的示例。

为什么我们声称“快速芯片设计”,而RL却比解析式求解器慢?

当我们说“快速”时,指的是我们的方法确实能帮助芯片设计师更快地完成工作,而不是指我们的算法本身运行得很快。我们的方法可以在数小时内完成人类芯片设计师需要数周甚至数月才能完成的任务。

如果一个解析式方法专注于优化布线长度并在约1分钟内得出结果,显然比数小时的RL优化要快;然而,如果该结果不符合设计规范,导致物理设计专家不得不花费数周时间在循环中使用商业EDA工具进一步迭代,那么从实际意义上看,这并不算更快。

在我们的《自然》实验中,为什么我们报告QoR指标而不是单独的布线长度?

我们的目标是开发能够帮助芯片设计师更好、更快地完成工作的方法。因此,我们在论文中的实验设计尽可能贴近真实的生产环境,并报告QoR(结果质量)指标。

使用商业EDA工具生成QoR指标可能需要长达72小时,但它们是对所有关键指标的高度准确测量,包括布线长度、水平/垂直拥塞、时序(TNS和WNS)、功耗和面积等。QoR指标最接近物理上的真实情况,也是生产芯片设计团队决定将哪些布局送入制造环节的依据。相比之下,诸如近似布线长度和拥塞程度之类的代理成本虽然可以廉价计算,且对优化过程有所帮助,但由于与QoR可能存在较大差异,因此不能用于实际决策。

此外,值得注意的是,布线长度和路由拥塞之间存在直接的权衡关系(例如,将节点彼此靠近放置会增加拥塞,但会减少布线长度),因此仅针对布线长度进行优化或评估,很难得到可制造的芯片布局。

在我们的《自然》实验中,我们是否对RL结果进行了任何后处理?

没有。在《自然》实验中,我们并未对RL结果进行任何后处理。

在我们的开源代码中,我们提供了一个可选的1至5分钟的坐标下降后处理步骤,我们发现这一步骤可以略微改善布线长度。您可以使用标志来选择是否启用此步骤,并比较有无该步骤时的性能差异。

这段代码的开源流程是怎样的?

将代码开源的过程涉及与谷歌内部的另一个团队(TF-Agents)的合作。TF-Agents首先使用我们的代码库复现了《自然》论文中的结果,随后他们重新实现了我们的方法,并用他们自己的实现再次复现了结果,最后将他们的实现开源,因为该实现不依赖于任何内部基础设施。

获得开源这段代码的批准、确保符合出口管制限制、迁移到TensorFlow 2.x版本,并移除所有对谷歌内部基础设施的依赖,整个过程相当耗时;但我们认为,为了能够与社区分享我们的方法,这一切都是值得的。

如何贡献

我们非常期待与您的合作!请参阅CONTRIBUTING,了解如何参与贡献的指南。本项目遵循TensorFlow的行为准则。参与本项目的人员均应遵守该行为准则。

原则

本项目遵循谷歌的AI原则。参与、使用或贡献本项目的人士均应遵守这些原则。

主要贡献者

我们谨向以下各位致以感谢,感谢他们为 AlphaChip 库的发布所作出的代码贡献、讨论及其他工作。

  • 塞尔吉奥·瓜达拉马
  • 夏然
  • 埃布拉欣·松戈里
  • 乔·蒋
  • 托比·博伊德
  • 阿扎莉娅·米尔霍赛尼
  • 安娜·戈尔迪
  • 穆斯塔法·亚兹甘
  • 沈王
  • 特伦斯·谭
  • 李荣俊
  • 罗杰·卡彭特
  • 阮秋
  • 埃德·奇

如何引用

如果您使用了本代码,请同时引用以下两篇文献:

@article{mirhoseini2021graph,
  title={A graph placement methodology for fast chip design},
  author={Mirhoseini*, Azalia and Goldie*, Anna and Yazgan, Mustafa and Jiang, Joe
  Wenjie and Songhori, Ebrahim and Wang, Shen and Lee, Young-Joon and Johnson,
  Eric and Pathak, Omkar and Nazi, Azade and Pak, Jiwoo and Tong, Andy and
  Srinivasa, Kavya and Hang, William and Tuncer, Emre and V. Le, Quoc and
  Laudon, James and Ho, Richard and Carpenter, Roger and Dean, Jeff},
  journal={Nature},
  volume={594},
  number={7862},
  pages={207--212},
  year={2021},
  publisher={Nature Publishing Group}
}
@misc{CircuitTraining2021,
  title = {{Circuit Training}: An open-source framework for generating chip
  floor plans with distributed deep reinforcement learning.},
  author = {Guadarrama, Sergio and Yue, Summer and Boyd, Toby and Jiang, Joe
  Wenjie and Songhori, Ebrahim and Tam, Terence, Goldie, Anna and Mirhoseini,
  Azalia},
  howpublished = {\url{https://github.com/google_research/circuit_training}},
  url = "https://github.com/google_research/circuit_training",
  year = 2021,
  note = "[Online; accessed 21-December-2021]"
}

此外,如果您使用了开源检查点,请一并引用:

@misc{AlphaChipCheckpoint2024,
  title = {A Pre-Trained Checkpoint for {AlphaChip}},
  author = {Jiang, Joe Wenjie and Songhori, Ebrahim and Mirhoseini, Azalia and
  Goldie, Anna and Guadarrama, Sergio and Yue, Summer and
  Boyd, Toby and Tam, Terence, and Wu, Guanhang and Lee, Kuang-Huei and
  Zhuang, Vincent and Yazgan, Mustafa and and Wang, Shen and Lee, Young-Joon and
  Johnson, Eric and Pathak, Omkar and Nazi, Azade and Pak, Jiwoo and
  Tong, Andy and Srinivasa, Kavya and Hang, William and Tuncer, Emre and
  V. Le, Quoc and Laudon, James and Ho, Richard and Carpenter, Roger and
  Dean, Jeff},
  howpublished = {\url{https://github.com/google-research/circuit_training/?tab=readme-ov-file#PreTrainedModelCheckpoint}},
  url = "https://github.com/google-research/circuit_training/?tab=readme-ov-file#PreTrainedModelCheckpoint",
  year = 2024,
  note = "[Online; accessed 25-September-2024]"
}

免责声明

本项目并非 Google 的官方产品。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

158.1k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|6天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架