产品NVIDIA Technical Blog·原文 2026年9月10日本站收录 2026年9月11日

NVIDIA发布BioNeMo推理运行时教程,公布Boltz-2折叠吞吐量提升 2.90 倍

英伟达技术博客介绍BioIR的端到端结构预测流程,支持串行与Ray两种执行后端;在 8 张H100上的 1000 个人类二聚体基准中,其残基归一化折叠吞吐量为开源实现的 2.90 倍,开源版有 29 个目标因显存不足失败。

AI解读:这条新闻的核心受众不是普通读者,而是跑蛋白质结构预测的研究者和工程团队。BioNeMo推理运行时(BioIR)解决的是“把整个工作清单快速跑完”,不是把单次预测做得更准;它通过优化计算内核、对合适的模块启用CUDA Graphs,以及在每张GPU上放一个完整模型副本并用Ray调度互相独立的输入来提高吞吐。

最值得看的是它的能力边界。Ray只把不同输入分给不同GPU,不会把一次模型前向计算拆到多张卡上;端到端处理器支持配体结构预测,但不支持配体亲和力预测;蛋白质链需要A3M格式的MSA,且BioIR不运行HHsearch或HMMsearch,模板需要自己提供。如果你的输入不满足这些条件,加速无从谈起。

数字方面,官方在 8xH100上对 1000 个人类二聚体目标做匹配基准,BioIR加速的Boltz-2每分配GPU小时完成 58.5K个成功折叠残基,开源torch编译版是 20.2K,提升 2.90 倍,后者有 29 个目标显存不足。博客还按 8 卡H100节点的额定功耗外推到 100 万个目标,估算BioIR需 11 兆瓦时、开源版 35 兆瓦时,但这是仅含折叠、未计数据中心开销的估算,不是实测能耗。

对真正要用的人来说,官方给出的落地信号很直接:先用串行处理器验证一个输入跑通,再换Ray副本;副本数受engine_stage.compute × num_gpus不超过可见GPU数的约束,且当前教程不覆盖多节点部署。吞吐量依赖输入分布、各阶段负载、存储和调度,官方也说必须自己测。换言之,速度提升有条件、有前提,不能把 2.90 倍当成所有模型和硬件上的通用数字。

英伟达发布技术博客,介绍BioNeMo推理运行时(BioIR)如何加速受支持的生物分子结构预测模型。该运行时保留PyTorch工作流,使用优化内核,并在适用场景下通过CUDA Graphs加速模型执行;对于大批相互独立的输入,可在单节点内用Ray在每张GPU上运行一个完整模型副本以提高整体吞吐量。

两种使用方式与前置条件

博客称BioIR有两种用法:端到端处理器将InputRequest依次经过解析、分词、特征生成、GPU推理和PDB或mmCIF写出;直接PyTorch集成则可以构造受支持的模型(torch.nn.Module),或在自定义代码中复用选定模块。

前置条件包括:Python 3.12或更高版本;兼容的NVIDIA GPU和驱动,以及BioIR wheel或受支持的开发环境;已暂存的模型检查点和所需化学元数据。每条蛋白质链需要A3M格式的MSA;对于包含多条非相同蛋白链的输入,接受配对或非配对MSA。用于Ray吞吐扩展时,需要同一节点上多张可见GPU,且独立记录数多于副本数。wheel内含预编译CUBIN,因此运行时不需要nvcc、CUDA源码、CMake或CUDA工具包。

串行验证与Ray扩展

博客以Boltz-2为例演示端到端流程,model_source设为 "boltz-2"。教程建议先用串行后端对单个输入按顺序跑完整流程以检查配置,再使用Ray后端并发处理独立输入。

Ray的默认副本布局配置会把一个完整模型副本放在当前节点每张可见GPU上,并按torch.cuda.device_count() 设置CPU各阶段规模。教程也给出显式控制四张GPU的配置示例。容量规则是engine_stage.compute × engine_stage.num_gpus ≤ 可见GPU数;四副本示例为单节点配置,假设有四张可见GPU,教程不覆盖多节点部署。实际吞吐取决于输入分布、阶段平衡、存储、调度和失败情况,官方要求自行测量。

五阶段流水线与三层优化的区别

Ray端到端处理器按依赖顺序消费输入的五个阶段为:解析器 → 分词器 → 特征生成器 → 折叠引擎 → 写出器。每个阶段用对应的 *StageConfig配置;enabled字段不是公开的跳过控制。各阶段暴露compute,相关阶段还暴露num_cpus、memory和batch_size;Ray引擎另有max_concurrent_batches、accelerator_type和num_gpus。

博客强调BioIR的优化分三层:内核选择(受支持的操作根据模型配置、GPU、数据类型和张量形状,选用BioIR自定义、cuEquivariance或PyTorch回退实现);模块优化(在受支持处,通过独立的optimize() 机制为兼容模块启用CUDA Graph捕获);流水线扩展(Ray执行器把完整模型副本放到GPU上,在它们之间分发独立输入)。内核和模块优化降低单个副本内的模型前向时间,Ray通过让CPU阶段与GPU折叠重叠、并让完整模型副本运行在不同GPU上提高工作清单吞吐,但不会把单次模型前向拆到多张GPU。Ray扩展仅适用于处理器路径。

基准数据与适用范围

博客称早期基准测试估计了模型前向加速,测量使用 1 次预热(丢弃)和 1 次测量调用,覆盖 17 个输入、长度 29 至 1734 个残基。这些结果量化的是单个模型副本内的加速,不测量解析、特征生成、输出写出、Ray调度、多GPU吞吐或完整工作清单的墙钟时间。

在AFDB案例研究中,官方用 1000 个人类二聚体目标(合并序列长度低于 2800 个残基)在 8xH100 GPU上做匹配基准,比较BioIR加速的Boltz-2与torch编译的开源Boltz-2实现。两者使用相同目标、暂存MSA、推理配方和GPU配置;流程为每个目标 3 次recycle、200 个采样步骤、5 个扩散样本。

结果:BioIR完成全部 1000 个目标,每分配GPU小时交付 58.5K个成功折叠残基,公开实现为 20.2K,残基归一化吞吐量提升 2.90 倍;开源实现在 29 个目标上显存不足。博客称这些吞吐指标和其他结果仅针对该配置,不应推广到所有BioIR支持的模型、数据集或硬件。

外推能耗与免责声明

博客还从 1000 目标基准线性外推到 100 万个可比目标,使用 8xH100 80GB HBM3节点的额定功耗等效值:按 8 卡TDP等效,BioIR估计需要 11 兆瓦时,公开实现为 35 兆瓦时;按整节点最大功耗等效,分别为 21 兆瓦时和 64 兆瓦时。官方说明这些是仅含折叠的IT设备估算,不是实测能耗,且不含PUE等数据中心开销。

该受控比较对每个实现使用相同输入和MSA测量折叠吞吐,不包含MSA生成、预处理CPU分配、存储、数据传输、重试和工程开销。博客建议将端到端流水线性能指标与模型前向指标分开报告,包括每小时完成的结构数、GPU和CPU利用率、峰值GPU显存、完成率、失败和重试。

故障排查与获取方式

博客列出的常见问题包括:只有一张GPU活跃(确认Ray、REPLICA、多于一个副本、多张可见GPU和足够独立记录);处理器构造抛出ValueError(检查compute × num_gpus是否超过可见GPU数);蛋白质输入失败(检查所需的非配对A3M和worker可见路径);GPU等待(在增加副本前检查CPU阶段、CPU预留、排队和Ray对象存储容量);推理后记录等待(检查写出器并发和目的地吞吐);Ray无法放置actor(检查CPU、GPU、内存和accelerator_type标签);单条记录中止任务(fail-fast默认抛出FoldingPredictionError,仅在有意让行级继续时设置should_continue_on_error=True,之后检查 __inference_error__)。

BioIR代码地址为http://github.com/NVIDIA-BioNeMo/BioNeMo-Inference-Runtime。博客还提到可查看NVIDIA BioNeMo Agent Toolkit(BAT),最新加速数据可查阅API参考和支持矩阵。

信息来源