# HyerInfer **Repository Path**: roger-jin/HyerInfer ## Basic Information - **Project Name**: HyerInfer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-20 - **Last Updated**: 2025-02-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Tensorrt三件套 - Builder负责全局配置 - NetworkDefinition定义网络结构 - BuilderConfig设置优化参数 特别说明explicitBatchFlag的使用:这个标志位启用了显式批处理维度,为后续动态形状支持打下基础. ## 日志 继承ILogger接口后,我们可以将TensorRT的内部日志分级输出到控制台。这在排查模型解析错误时非常关键,比如当遇到不支持的算子时,错误信息会通过Severity::kERROR级别抛出. ## Build Engine [ONNX文件] → 解析网络结构 → 优化计算图 → 构建推理引擎 → 序列化存储 1. 当builder.buildEngineWithConfig被调用时,TensorRT会执行多阶段优化: 2. 首先进行常量折叠消除冗余计算,然后选择最优核函数实现,最后执行精度校准——整个过程可能需要数分钟。 3. 生成的引擎文件已经包含优化后的计算图和参数数据. ## Engine Infer [输入数据] → 主机→设备拷贝 → 执行推理核函数 → 设备→主机拷贝 → [输出结果] 特别注意enqueueV2方法的使用:这是TensorRT推荐的异步执行接口,相比同步执行的execute方法,它能更好地与CUDA流配合实现并发。 ## 总结 - 重用序列化引擎避免重复构建; - 使用多CUDA流实现并行推理; - 合理设置maxWorkspaceSize——我们的示例设置为1GB,对于ResNet类模型足够,但大语言模型可能需要调整到20GB以上。