新闻详情

新闻详情

首页 / 资讯中心 / 详情

TensorRT 扩散流水线如何启用 CUDA Graphs 提升推理性能(固定形状与静态批配置)

发布时间:2026/9/15 11:36:44来源:尧图网络
TensorRT 扩散流水线如何启用 CUDA Graphs 提升推理性能(固定形状与静态批配置)
TensorRT 扩散流水线如何启用 CUDA Graphs 提升推理性能固定形状与静态批配置【免费下载链接】TensorRTNVIDIA® TensorRT™ is an SDK for high-performance deep learning inference on NVIDIA GPUs. This repository contains the open source components of TensorRT.项目地址: https://gitcode.com/GitHub_Trending/tens/TensorRT在 TensorRT 的 demoDiffusion 演示应用demo/Diffusion中运行 Stable Diffusion 系列流水线时去噪循环要反复执行多次引擎推理每次推理都有 kernel launch 等 CPU 侧开销。demo 提供了--use-cuda-graph开关通过 CUDA Graph 把这些重复推理打包成一次图启动来降低开销。但要启用它引擎必须按固定输入形状和静态批大小构建——本文以demo_txt2img.pySD1.4 文生图为例说明如何完成这一配置、如何验证以及哪些配置会与该开关冲突。准备条件以下环境要求来自 demo/Diffusion/README.md在 TensorRT OSS 仓库release/11.0分支的demo/Diffusion目录下操作使用 NVIDIA PyTorch 容器demo 支持 CUDA 13.0文档给出的容器命令为docker run --rm -it --gpus all \ -v $PWD:/workspace \ -v $PWD/deps:/workspace/deps \ nvcr.io/nvidia/pytorch:26.03-py3 /bin/bash安装依赖SD 流水线属于 sd 家族python3 setup.py sd安装状态可用python3 -c from demo_diffusion import deps; deps.print_status()检查。demoDiffusion 在 NVIDIA H100、A100、L40、T4 和 RTX4090 GPU 上测试过下载模型权重需要 HuggingFace 的readaccess tokenexport HF_TOKENyour access token替换为你自己的 token。启用 CUDA Graphs 的完整命令核心开关是--use-cuda-graph参数定义见 dd_argparse.py。README 在 Configuration options 一节明确说明Inference performance can be improved by enabling CUDA graphs using--use-cuda-graph. Enabling CUDA graphs requires fixed input shapes, so this flag must be combined with--build-static-batchand cannot be combined with--build-dynamic-shape.即启用 CUDA Graphs 必须同时满足三个条件加上--build-static-batch用固定批大小构建 TensorRT 引擎不要加--build-dynamic-shape该参数用于构建动态图像形状的引擎输入形状固定--width/--height固定默认 512且必须是 8 的倍数--batch-size固定默认 1可选 1、2、4。一条可直接执行的完整命令python3 demo_txt2img.py a beautiful photograph of Mt. Fuji during cherry blossom \ --hf-token$HF_TOKEN \ --build-static-batch \ --use-cuda-graph如果不带--use-cuda-graph同一条命令去掉该参数保留--build-static-batch与否均可就是对照运行用于观察启用前后的差异。如何验证配置生效参数冲突会直接报错退出。在 dd_argparse.py 的process_pipeline_args中--use-cuda-graph与非静态批或动态形状组合时会抛出Using CUDA graph requires static dimensions. Enable --build-static-batch and do not specify --build-dynamic-shape所以如果你只写了--use-cuda-graph而漏掉--build-static-batch脚本会在初始化流水线前就失败——看到这个报错按提示补上--build-static-batch并去掉--build-dynamic-shape即可。warmup 行为是运行时的第二个确认点。各流水线SD、SD3、SVD、Flux、Wan 等的run方法里有这样的逻辑num_warmup_runs max(1, num_warmup_runs) if use_cuda_graph else num_warmup_runs即启用 CUDA Graphs 时 warmup 次数至少为 1--num-warmup-runs默认值为 5。warmup 阶段的正常推理会先执行一次execute_async_v3然后进入 CUDA stream capture完成cudaStreamEndCapture和cudaGraphInstantiate之后的推理直接走cudaGraphLaunch重放图实现见 engine.py 的infer方法L298-L326。运行日志中的[I] Warming up ..输出对应这一阶段。结果比对。推理产物图片与日志默认写入--output-dir指定的目录默认output。建议两次运行分别指定不同输出目录例如--output-dir output-cudagraph与--output-dir output-baseline确认生成的图片都正常产出再对照两次运行的耗时输出。配置限制与冲突与--low-vram不兼容Flux、SD3.5/Wan 相关流水线flux_pipeline.py、wan_pipeline.py、stable_video_diffusion_pipeline.py在同时启用--low-vram时会打印[W] Using low_vram, use_cuda_graph will be disabled并自动关闭 CUDA Graphs。要启用 CUDA Graphs不要加--low-vram。批大小被静态固定--build-static-batch会把引擎的推理批大小限制为构建时--batch-size指定的值可选 1、2、4之后不能再换其他批大小推理。输入形状固定--height/--width必须是 8 的倍数否则参数校验会抛出Image height and width have to be divisible by 8的错误更换分辨率等同于构建新的引擎。引擎文件按 ONNX/engine 目录缓存如果之前已用动态形状构建过引擎切换到静态批配置时建议通过--onnx-dir/--engine-dir指定新目录避免混用旧引擎。参考位置参数说明与用法总览demo/Diffusion/README.mdConfiguration options 一节参数定义、冲突校验dd_argparse.pyCUDA Graph 捕获与重放实现engine.pyEngine.infer各流水线的 warmup 与 low-vram 降级逻辑pipeline/ 下的stable_diffusion_pipeline.py、flux_pipeline.py等【免费下载链接】TensorRTNVIDIA® TensorRT™ is an SDK for high-performance deep learning inference on NVIDIA GPUs. This repository contains the open source components of TensorRT.项目地址: https://gitcode.com/GitHub_Trending/tens/TensorRT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Mastra E2B Sandbox 集成指南:为 Workspace 与 Agent 搭建安全隔离的云端代码执行环境 2026/9/15 12:33:51

Mastra E2B Sandbox 集成指南:为 Workspace 与 Agent 搭建安全隔离的云端代码执行环境

Mastra E2B Sandbox 集成指南:为 Workspace 与 Agent 搭建安全隔离的云端代码执行环境 【免费下载链接】mastra Mastra is the modern TypeScript framework for AI-powered applications and agents. 项目地址: https://gitcode.com/GitHub_Trending/ma/mastra …

阅读更多 →
如何在 Spring Boot 中整合 Lombok 简化 getter/setter 样板代码? 2026/9/15 12:33:51

如何在 Spring Boot 中整合 Lombok 简化 getter/setter 样板代码?

如何在 Spring Boot 中整合 Lombok 简化 getter/setter 样板代码? 【免费下载链接】toBeBetterJavaer 一份通俗易懂、风趣幽默的Java学习指南,内容涵盖Java基础、Java并发编程、Java虚拟机、Java企业级开发、Java面试等核心知识点。学Java,就…

阅读更多 →
Rolldown `context` 选项详解:控制输入模块顶层 `this` 的绑定值 2026/9/15 12:33:51

Rolldown `context` 选项详解:控制输入模块顶层 `this` 的绑定值

Rolldown context 选项详解:控制输入模块顶层 this 的绑定值 【免费下载链接】rolldown Fast Rust bundler for JavaScript/TypeScript with Rollup-compatible API. 项目地址: https://gitcode.com/GitHub_Trending/ro/rolldown 导读 context 是 Rolldown …

阅读更多 →
UI-TARS 坐标定位:3步校准,点错不再发生 2026/9/15 12:33:51

UI-TARS 坐标定位:3步校准,点错不再发生

UI-TARS 坐标定位:3步校准,点错不再发生 【免费下载链接】UI-TARS Pioneering Automated GUI Interaction with Native Agents 项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS UI-TARS 是字节跳动开源的多模态智能体,让模…

阅读更多 →
OpenProject 如何创建工作包之间的依赖关系? 2026/9/15 12:33:51

OpenProject 如何创建工作包之间的依赖关系?

OpenProject 如何创建工作包之间的依赖关系? 【免费下载链接】openproject OpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracki…

阅读更多 →
Matlab图像清晰度评价8大指标原理与实战 2026/9/15 12:30:51

Matlab图像清晰度评价8大指标原理与实战

简介:本资源是一套面向图像处理研究者、计算机视觉初学者及MATLAB实践者的图像清晰度评价算法工具集,聚焦于图像质量量化分析这一核心需求,覆盖医学成像、算法优化与图像复原等典型应用场景。压缩包共12个文件,含8个核心MATLAB函数…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞