【Backend Flow工程实践 07】从 Project Library 看 EDA 工具如何管理工艺库与标准单元库
作者:Darren H. Chen
方向:EDA 工具工程 / Backend Flow / 后端实现流程 / 工程自动化 / 验证基础设施
demo:LAY-BE-07_project_library
标签:Backend FlowEDAAPRProject LibraryLEFLiberty标准单元库工艺库后端实现
后端实现流程不能只依靠网表来理解一个数字设计。
一份 Verilog 门级网表可能会告诉工具:名为 U1 的 instance 使用了名为 INVX1 的 cell,并且 U1/Y 驱动了某条 net。可是它不会告诉工具:INVX1 的 pin 在哪里,cell 有多宽,是否能够放进标准单元 row,哪些 metal layer 可以用于 routing,从 A 到 Y 的 delay arc 长什么样,这个 cell 是否可以用于 hold fixing,或者它是否拥有最终 stream-out 所需的 layout view。
这些语义来自 technology 和 library context。
本文讨论 Project Library 在后端 EDA 工具中的工程作用。Project Library 不只是一个包含 .lef、.lib、.gds、.tf 或 rule file 的目录。它是工具侧的基础设施,用来把外部 technology file 和 library file 转换为内部一致的模型,并供 design import、linking、floorplanning、placement、clock tree construction、routing、timing analysis、power analysis、physical verification handoff 以及 final export 使用。
本文不聚焦某个厂商的具体命令,而是聚焦底层架构和方法论:
外部 technology 和 library 文件
↓
Project Library 构建
↓
Technology / physical / timing / power / layout 多视图
↓
Design database linking
↓
Backend implementation 各阶段
一旦这一层薄弱,后面每个阶段的可信度都会下降。反过来,如果这一层组织得好,很多后续失败就更容易解释、复现和修复。
1. 为什么只有 Netlist 不够?
门级网表描述的是一个逻辑 instance graph。
例如:
INVX1 U1 (.A(a), .Y(n1));
NAND2X1 U2 (.A(n1), .B(b), .Y(n2));
DFFQX1 U3 (.D(n2), .CK(clk), .Q(q));
这会告诉工具:
U1 是 INVX1 的一个 instance。
U2 是 NAND2X1 的一个 instance。
U3 是 DFFQX1 的一个 instance。
这些 instance 通过 net 连接在一起。
但这只是逻辑骨架。后端实现还需要更多信息。
对于 INVX1,工具需要知道:
| 问题 | 需要的模型 |
|---|---|
| 这个 cell 多大? | physical abstract view |
| 它能否放进 row? | site 与 row 兼容性 |
pin A 和 Y 在哪里? |
abstract view 中的 pin geometry |
| 这些 pin 使用哪些 metal layer? | LEF layer 和 pin shape |
从 A 到 Y 的 delay 是什么? |
Liberty timing arc |
| output transition model 是什么? | Liberty lookup table |
| input capacitance 是多少? | Liberty pin capacitance |
| leakage power 是多少? | Liberty power data |
| 它能否被优化器使用? | library attribute 和 flow rule |
| 它是否有最终 layout view? | GDS/OASIS 或等价 layout database |
没有这些模型,instance 只是一个符号引用。它有名字,但还没有物理、时序、功耗和制造语义。
Project Library 就是为这些 instance 提供语义的层。
2. Project Library 是工具侧知识库
可以把 Project Library 理解为后端工具的知识库。
它回答的问题包括:
这个项目面向哪个 technology?
有哪些 routing layer?
有哪些 cut layer?
manufacturing grid 是什么?
有哪些 standard-cell site?
有哪些 cell master 可用?
哪些 cell 同时有 timing view 和 physical view?
哪些 cell 可以用于 placement?
哪些 cell 可以用于 clock tree construction?
哪些 cell 可以用于 hold fixing?
有哪些 macro abstract 可用?
哪些 layout cell 可用于 final export?
应该使用哪些 RC 或 parasitic model?
有哪些 antenna、EM 或 route rule?
这远远不只是 file loading。EDA 工具必须解析外部文件、归一化数据、检查一致性、绑定多个 view、缓存内部表示,并让这些信息能够被后续阶段查询。
因此,一个实际可用的 Project Library 通常有两种身份:
- 文件级身份:foundry、IP vendor、standard-cell vendor 或内部 methodology team 提供的外部文件。
- 数据库级身份:工具读取、转换、索引和验证这些文件之后创建出来的内部模型。
工程问题不只是“把文件收集齐”。真正的工程问题是:确认工具已经基于这些文件构建出一致的内部上下文。
3. 高层架构
下面的图展示了基本架构。
关键点在于:Project Library 位于外部文件格式和实时 design database 之间。
Design database 并不是直接依赖 raw file 进行推理,而是依赖这些文件生成的内部 library context 进行推理。
4. Project Library 中的主要模型类型
Project Library 通常管理多类模型。每类模型提供不同层面的语义。
| 模型类型 | 典型来源 | 主要信息 | 使用阶段 |
|---|---|---|---|
| Technology model | technology file、LEF technology section | unit、grid、layer、via、routing direction、rule primitive | floorplan、route、DRC precheck、export |
| Site and row model | LEF、technology setup | standard-cell site、row height、symmetry、orientation | floorplan、placement legalization |
| Standard-cell abstract | LEF | cell boundary、pin、obstruction、class、symmetry | placement、routing、pin access |
| Macro abstract | LEF | macro boundary、pin、blockage、internal obstruction | floorplan、top-level routing |
| Timing and power model | Liberty | timing arc、constraint、power、capacitance、function | link、timing analysis、optimization |
| Layout view | GDS/OASIS | 最终版图几何 | stream-out、signoff handoff |
| RC model | TLU+、tech RC、extraction model | layer resistance/capacitance、coupling model | timing、extraction、route analysis |
| Antenna model | rule file 或 technology setup | antenna constraint 和 ratio | routing、antenna repair |
| EM/IR model | technology/rule file | current limit、voltage-drop 假设 | power network analysis |
| Route rule / NDR model | route rule setup | width、spacing、via preference | clock routing、critical net、special net |
薄弱的 Project Library 会把这些模型看成互不相关的文件;成熟的 Project Library 会把它们看成同一个 technology 和 cell universe 的多个协调 view。
5. File View 与 Internal View
一个常见误区是:以为文件成功加载,就代表模型已经准备好。
实际上,file loading 只是第一步。工具还需要把文件级内容转换成内部对象。
5.1 LEF 示例
一个 LEF cell abstract 可能包含:
MACRO INVX1
CLASS CORE ;
ORIGIN 0 0 ;
SIZE 1.0 BY 2.0 ;
PIN A ...
PIN Y ...
OBS ...
END INVX1
加载之后,工具可能创建如下内部对象:
lib cell master: INVX1
cell width: 1.0
cell height: 2.0
site compatibility
pin A physical shapes
pin Y physical shapes
routing obstruction list
placement class
symmetry rules
5.2 Liberty 示例
一个 Liberty cell 可能包含:
cell (INVX1) {
area : ...;
pin (A) { direction : input; capacitance : ...; }
pin (Y) { direction : output; function : "!A"; timing() { ... } }
}
加载之后,工具可能创建:
timing cell: INVX1
input pin: A
output pin: Y
logic function: Y = !A
input capacitance table
delay arc A -> Y
transition model
leakage data
power model
usage attributes
5.3 Technology 示例
一个 technology model 可能描述:
unit
manufacturing grid
routing layer
cut layer
via definition
minimum width
minimum spacing
preferred direction
加载之后,工具可能构建:
technology database
layer table
routing resource table
cut/via rule table
track-grid basis
geometry legality rules
export layer mapping basis
重要的是:
外部文件是文件语法。
Project Library 对象是工具语义。
Backend flow 依赖的是后者,而不只是前者。
6. 多视图一致性
一个标准单元通常有多个 view。
这些 view 往往来自不同文件,有时甚至来自不同团队或 vendor。Project Library 必须把它们绑定在一起。
这种绑定通常基于名称和结构化属性:
cell name
pin name
pin direction
cell class
site compatibility
power/ground pins
layout cell name
corner name
voltage domain
process condition
如果绑定失败,设计仍然可能部分加载,但后续行为会变得不可预测。
例如:
| 不一致问题 | 可能的下游症状 |
|---|---|
| cell 存在于 Liberty,但不存在于 LEF | timing 可能可用,但 placement 无法放置 |
| cell 存在于 LEF,但不存在于 Liberty | physical view 存在,但 timing analysis 无法建模 |
| pin 存在于 Liberty,但不存在于 LEF | timing arc 存在,但 routing 无法访问物理 pin |
| LEF pin shape 缺失或 layer 错误 | route connection 或 pin access 失败 |
| cell height 与 site row 不匹配 | placement legalization 失败 |
| GDS cell name 与 LEF cell name 不一致 | stream-out 或 signoff mismatch |
| Liberty corner set 不完整 | scenario setup 或 timing coverage 问题 |
| power pin 在不同 view 中不一致 | power routing 或 LVS mismatch 风险 |
因此,Project Library 必须被视为一致性系统,而不是单纯的文件导入步骤。
7. Technology Context 必须先建立
Technology context 是后端实现世界的最底层。
在工具能够理解 cell、row、track、pin、route 或 spacing 之前,它必须先知道 technology universe:
coordinate unit
manufacturing grid
routing layer
cut layer
layer direction
minimum width rule
minimum spacing rule
via definition
site definition
track-grid assumption
一个简化的 technology stack 可以这样表示:
+--------------------------------------------------+
| M6 : routing layer, horizontal, wide/global use |
+--------------------------------------------------+
| V5 : cut layer |
+--------------------------------------------------+
| M5 : routing layer, vertical |
+--------------------------------------------------+
| V4 : cut layer |
+--------------------------------------------------+
| M4 : routing layer, horizontal |
+--------------------------------------------------+
| V3 : cut layer |
+--------------------------------------------------+
| M3 : routing layer, vertical |
+--------------------------------------------------+
| V2 : cut layer |
+--------------------------------------------------+
| M2 : routing layer, horizontal |
+--------------------------------------------------+
| V1 : cut layer |
+--------------------------------------------------+
| M1 : local routing / pin access layer |
+--------------------------------------------------+
如果这一层错误,后续阶段会以看似不相关的方式失败。
例如:
| Technology context 问题 | 后续症状 |
|---|---|
| database unit 错误 | layout dimension 缩放错误 |
| manufacturing grid 错误 | off-grid shape、export 问题 |
| routing layer 缺失 | route 无法使用预期资源 |
| cut layer 缺失 | via insertion 失败 |
| preferred direction 错误 | routing congestion 或非标准拓扑 |
| spacing rule 不完整 | 早期 physical check violation 数量巨大 |
| site definition 错误 | row generation 或 legalization 失败 |
这就是为什么 Project Library 构建应该从 technology model 开始,而不是从 netlist 开始。
8. LEF 是 Physical Abstract Contract
LEF 常被描述为 physical abstract format。在后端实现中,它更像是 library generation 与 physical implementation 之间的合同。
对于标准单元,LEF 告诉后端工具:
cell boundary 在哪里
它属于哪个 site
cell 的 width 和 height 是多少
每个 pin 位于哪里
每个 pin 使用哪些 layer
哪些内部区域被 block
cell 是 CORE、BLOCK、PAD,还是其他 class
对于 macro,LEF 告诉工具:
macro size
macro pin
routing blockage
placement boundary
obstruction geometry
macro 周围或上方允许使用哪些 routing layer
下面的简化图展示了 LEF 如何抽象一个标准单元。
+-------------------------------+
| INVX1 LEF |
| |
| M1 pin A M1 pin Y |
| +---+ +---+ |
| | A | | Y | |
| +---+ +---+ |
| |
| OBS: internal metal shapes |
| |
+-------------------------------+
| boundary / site-compatible box |
+-------------------------------+
Placement 使用 boundary 和 site 信息;routing 使用 pin shape 和 obstruction;pin access analysis 同时依赖 pin geometry 和局部 routing rule;export 与 physical verification handoff 依赖一致的命名和几何假设。
如果 LEF 不完整,flow 可能在 library loading 之后很久才失败。因此,LEF 检查应该成为 Project Library verification 的一部分。
9. Liberty 是 Timing、Power 和 Logical Semantics
Liberty 常被称为 timing library,但后端实现对它的使用范围更广。
一个 Liberty view 可以提供:
cell area
pin direction
logic function
timing arc
setup / hold constraint
minimum pulse width constraint
input capacitance
output drive behavior
transition table
internal power
switching power
leakage power
clock pin attribute
operating condition
usage restriction
对于 placement 和 optimization,timing model 不只是报告参考。它会影响很多决策,例如:
哪个 cell 可以替换另一个 cell
哪个 buffer 适合某条 net
哪个 inverter 或 buffer size 可以降低 delay
哪些 cell 适合 hold fixing
哪些 clock-related cell 被允许使用
哪些 cell 应该避免使用
对于 timing analysis,Liberty 定义 timing graph 的语义:
如果 Liberty 缺失或不一致,设计可能仍然有物理表示,但 timing closure 会变得不可靠。
10. Library Context 与 Design Linking
Project Library 和 design database 是不同层。
Project Library:
定义有哪些 cell master,以及这些 cell master 的含义。
Design Database:
定义当前设计中有哪些 instance,以及它们如何连接。
二者的关系可以表示为:
在 linking 之前,instance 只是一个引用:
U123 : INVX1
在 linking 之后,工具可以解析:
U123 使用 master cell INVX1。
INVX1 有 LEF abstract。
INVX1 有 Liberty timing arc。
INVX1 有 pin geometry。
INVX1 与 standard-cell row 兼容。
INVX1 被 flow rule 允许或限制。
这就是为什么 link failure 往往是 library failure,而不一定是 netlist failure。
常见 link 症状包括:
unresolved cell master
missing macro abstract
missing timing view
pin mismatch
black-box reference
library corner mismatch
missing physical view
一个好的 library report 可以减少猜测到底哪个文件有问题的时间。
11. Project Library 状态机
Project Library 有自己的生命周期。它不是一条 load 命令就完成的事情。
这个状态机说明了一个方法论要点:
在 design linking 变得可信之前,library 应该先通过 verification gate。
flow 不应该在不检查内部 library context 是否一致的情况下,直接从 file loading 跳到 design linking。
12. Library Verification 方法论
实际可用的 Project Library verification 方法应该检查多个维度。
12.1 文件存在性与可访问性
第一类检查很简单,但非常关键:
预期文件是否存在?
文件是否可读?
路径是否以一致方式解析?
压缩文件是否被正确处理?
重复文件是否是有意的?
这类检查可以在工具进入更昂贵的阶段之前,提前发现大量环境和路径问题。
12.2 Technology Layer 检查
检查预期的 technology object 是否存在:
routing layer
cut layer
layer direction
layer order
site definition
via definition
track/grid assumption
最小报告可以包含:
| 检查项 | 期望结果 |
|---|---|
| Routing layers exist | PASS |
| Cut layers exist | PASS |
| Standard-cell site exists | PASS |
| Manufacturing grid defined | PASS |
| Layer order consistent | PASS |
12.3 LEF 与 Liberty 的 Cell 匹配
这是最重要的检查之一。
对于每个设计使用或 flow 允许的 cell:
是否有 physical abstract?
是否有 timing view?
pin name 是否匹配?
power/ground pin 是否匹配?
cell class 是否合理?
一个有用的 matching table 可以这样写:
| Cell | LEF view | Liberty view | Pin match | Status |
|---|---|---|---|---|
| INVX1 | yes | yes | yes | PASS |
| NAND2X1 | yes | yes | yes | PASS |
| DFFQX1 | yes | yes | yes | PASS |
| FILL1 | yes | no | n/a | ACCEPTED_PHYSICAL_ONLY |
| MACRO_A | yes | optional | check needed | WARN |
并不是每个 cell 都必须拥有所有 view。filler、tap cell、end cap、decap、tie cell 和 physical-only cell 可能有特殊策略。重点不是强行用一条规则覆盖所有 cell,而是把策略显式化。
12.4 Pin 级一致性
Pin mismatch 是后期发现时成本最高的问题之一。
典型检查包括:
Liberty 中有 pin,但 LEF 中缺失
LEF 中有 pin,但 Liberty 中缺失
pin direction mismatch
clock pin 未识别
power/ground pin mismatch
pin shape 缺失
pin layer 不可 routable
一个简单报告可以包含:
| Cell | Pin | Liberty direction | LEF shape | Status |
|---|---|---|---|---|
| INVX1 | A | input | exists | PASS |
| INVX1 | Y | output | exists | PASS |
| DFFQX1 | CK | input/clock | exists | PASS |
| MACRO_A | VDD | pg_pin | exists | PASS |
12.5 Site 与 Row 兼容性
标准单元必须能够放进 row。一个 cell abstract 可以成功加载,但如果 site 信息不一致,仍然可能在 placement 阶段失败。
检查内容包括:
cell height 是否匹配 site height
cell width 是否对齐 site grid
symmetry 是否支持 row orientation
technology context 中是否存在 row site
physical-only cell 是否与 row rule 兼容
这会直接影响 placement legalization。
12.6 Optional View 策略
有些 view 对 signoff 是必需的,但对早期探索不是必需的。flow 不应该把所有 missing file 都当成同一种问题。
| View | Early demo | Implementation flow | Signoff handoff |
|---|---|---|---|
| LEF | required | required | required |
| Liberty | timing 相关场景 required | required | required |
| GDS/OASIS | optional | 通常 export 需要 | required |
| RC model | minimal demo 中 optional | 真实 timing 需要 | required |
| antenna rules | minimal demo 中 optional | recommended | clean handoff 需要 |
| EM/IR rules | optional | project-dependent | power integrity closure 需要 |
这类策略应该写清楚,而不是隐藏在个人经验中。
13. Project Library 报告体系
Project Library 阶段应该生成报告。这些报告不是装饰,而是证明 library context 已经构建出来的工程证据。
推荐报告包括:
reports/technology_layer_summary.rpt
reports/loaded_libraries.rpt
reports/library_cell_summary.rpt
reports/lef_liberty_match.rpt
reports/pin_mismatch.rpt
reports/site_summary.rpt
reports/library_verification.rpt
reports/library_context_status.rpt
每个报告回答不同工程问题。
| Report | 主要问题 |
|---|---|
technology_layer_summary.rpt |
当前有哪些 technology layer 和 site 可用? |
loaded_libraries.rpt |
加载了哪些 library,来源路径是什么? |
library_cell_summary.rpt |
有哪些 cell master 可用? |
lef_liberty_match.rpt |
哪些 cell 的 physical view 和 timing view 匹配? |
pin_mismatch.rpt |
pin name 和 direction 是否一致? |
site_summary.rpt |
placement site 是否存在且可用? |
library_verification.rpt |
library 是否通过 flow gate? |
library_context_status.rpt |
Project Library 是否准备好进入 design link? |
当下一阶段失败时,这些报告尤其有用。如果 design linking 失败,第一个问题应该是:
Project Library 是否通过了 library verification gate?
14. Demo 07 设计
LAY-BE-07_project_library 的目标是在真正关注 design import 与 linking 之前,先验证最小 Project Library context。
这个 demo 应该保持独立和小规模。它不需要完整芯片,只需要足够的数据来证明 library layer 可以被构建和查询。
推荐目录结构如下:
LAY-BE-07_project_library/
├── README.md
├── config/
│ └── env.csh
├── data/
│ ├── tech/
│ │ └── demo.tech
│ ├── lef/
│ │ └── demo_stdcell.lef
│ ├── liberty/
│ │ └── demo_stdcell.lib
│ └── netlist/
│ └── demo_top.v
├── scripts/
│ ├── run_demo.csh
│ └── clean.csh
├── tcl/
│ ├── run_demo.tcl
│ ├── load_library_context.tcl
│ ├── verify_library_context.tcl
│ └── report_library_context.tcl
├── logs/
├── reports/
└── tmp/
这个 demo 应该强调:
technology context loading
LEF abstract loading
Liberty timing/power loading
basic library query
LEF/Liberty consistency check
library summary report
library verification result
它不应该试图证明整个 backend flow。它的任务更窄:
工具能否基于最小 public/demo data 构建出一致的 Project Library context?
15. Demo 07 预期输入与输出
15.1 输入
| Input | Purpose |
|---|---|
data/tech/demo.tech |
最小 technology context 或 technology note |
data/lef/demo_stdcell.lef |
标准单元 physical abstract |
data/liberty/demo_stdcell.lib |
标准单元 timing 与 power model |
data/netlist/demo_top.v |
可选小设计,仅用于名称一致性检查 |
tcl/run_demo.tcl |
工具侧 Tcl 主入口 |
config/env.csh |
运行环境变量 |
15.2 输出
| Output | Purpose |
|---|---|
logs/LAY-BE-07_project_library.log |
主运行日志 |
logs/LAY-BE-07_project_library.cmd.log |
命令轨迹 |
logs/LAY-BE-07_project_library.sum.log |
摘要日志 |
reports/library_verification.rpt |
主要 pass/fail 报告 |
reports/loaded_libraries.rpt |
已加载 library 清单 |
reports/technology_layer_summary.rpt |
technology 与 layer 摘要 |
reports/lef_liberty_match.rpt |
physical/timing view 匹配报告 |
reports/site_summary.rpt |
site 与 row 相关摘要 |
一个好的 demo report 不应该只说文件存在,而应该说明 library context 是否已经准备好进入下一阶段。
16. 常见失败模式
Project Library 问题经常在后续 import、placement、routing 或 timing 阶段才表现出来。下面的表格可以帮助把症状映射回 library 层。
| 症状 | 可能的 library-layer 原因 |
|---|---|
| link 阶段出现 unresolved standard cell | netlist cell 在 library 中找不到 |
| placement 无法 legalize cell | site/row/cell height 不匹配 |
| router 无法连接某个 pin | LEF pin shape 缺失或非法 |
| timing report 缺少路径 | timing arc 或 constraint 缺失 |
| cell 不能被 optimization 使用 | cell usage attribute 问题或 timing view 缺失 |
| macro routing 失败 | macro obstruction 或 pin abstract 问题 |
| exported layout 与 signoff 不匹配 | LEF/GDS 命名或 boundary 不匹配 |
| power routing 没有连接 cell | power/ground pin 命名不一致 |
| 早期 physical check violation 数量很大 | technology 或 rule context 不完整 |
方法论上应该自底向上 debug:
technology context
↓
LEF physical abstract
↓
Liberty timing/power view
↓
multi-view consistency
↓
design link
↓
implementation stage
当 library foundation 还没有验证时,不要一开始就修改 placement 或 routing 选项。
17. Project Library 作为 Stage Gate
成熟的 backend flow 应该把 Project Library 阶段视为一个 gate。
这个 gate 不能模糊,应该有显式标准。
示例 gate criteria:
required files are readable
technology context is loaded
at least one valid standard-cell site exists
required standard cells have physical views
required standard cells have timing views
required pins match across physical and timing views
library summary reports are generated
no blocking library errors are present
对于最小 demo,criteria 可以较小;对于真实项目,criteria 应该更严格。
18. 工程检查清单
从 Project Library 进入 design import 之前,建议检查以下事项。
| 类别 | 检查项 |
|---|---|
| File control | technology 和 library path 是否全部显式? |
| Version control | library release version 是否记录? |
| Technology | routing layer、cut layer、grid 和 site 是否定义? |
| LEF | standard-cell 和 macro abstract 是否加载? |
| Liberty | required cell 的 timing 和 power view 是否加载? |
| Cell matching | LEF 和 Liberty 的 cell name 是否匹配? |
| Pin matching | pin name 和 direction 是否匹配? |
| Site compatibility | cell 是否能放进合法 row? |
| Special cells | tap、filler、end cap、tie、decap 和 clock cell 是否分类? |
| Reports | library reports 是否生成并归档? |
| Gate | link 前 library context 是否已被接受? |
这个 checklist 比看到 import command 执行完成更重要。
19. 工程要点
Project Library 是后端实现的基础。
它把:
files 转换为 context,
names 转换为 objects,
models 转换为 constraints,
library release 转换为 flow-ready engineering assets。
后端 EDA 工具只有先理解一个设计所处的 technology 和 library universe,才能理解这个设计本身。
最重要的结论包括:
- 只有 netlist 不足以支撑后端实现。
- LEF、Liberty、technology rules、RC models 和 layout views 是同一个 implementation universe 的不同 view。
- Project Library construction 是语义转换步骤,而不仅是文件加载步骤。
- 多视图一致性对 link、placement、timing、routing 和 export 至关重要。
- 在 design linking 变得可信之前,应该先进行 library verification。
- library report 是工程证据,应该随 run 一起归档。
- 如果把 Project Library 阶段作为正式 gate,很多后续阶段失败会更容易解释。
20. 结语
在后端 EDA 工具理解芯片设计之前,它必须先理解这个设计所处的工艺世界。
Project Library 正是这个工艺世界进入工具内部工程上下文的入口。
可靠的 backend flow 不应该从 placement 或 routing 开始,而应该从确认 library foundation 正确、可见、可验证开始。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)