79 lines
2.1 KiB
Python
79 lines
2.1 KiB
Python
"""
|
|
RTX 3050 TensorRT vs PyTorch 推理性能对比测试
|
|
|
|
测试目标:
|
|
- 对比 TensorRT 和 PyTorch 推理方式的性能差异
|
|
- 评估最大同时接入摄像头路数
|
|
- 测试单路与整体系统的最大稳定帧率
|
|
- 生成详细的可视化分析报告
|
|
|
|
测试环境:
|
|
- GPU: RTX 3050 (8GB)
|
|
- 模型: YOLOv8n
|
|
- 分辨率: 320x320, 480x480
|
|
- 精度: FP16, FP32
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
import json
|
|
import time
|
|
from pathlib import Path
|
|
from datetime import datetime
|
|
|
|
# 添加当前目录到路径
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
def main():
|
|
print("=" * 80)
|
|
print("RTX 3050 TensorRT vs PyTorch 推理性能对比测试")
|
|
print("=" * 80)
|
|
|
|
# 检查环境
|
|
print("\n🔍 检查测试环境...")
|
|
check_environment()
|
|
|
|
# 运行对比测试
|
|
print("\n🚀 开始对比测试...")
|
|
run_comparison_tests()
|
|
|
|
print("\n✅ 对比测试完成!")
|
|
|
|
def check_environment():
|
|
"""检查测试环境"""
|
|
try:
|
|
import torch
|
|
print(f"✅ PyTorch: {torch.__version__}")
|
|
if torch.cuda.is_available():
|
|
print(f"✅ CUDA: {torch.version.cuda}")
|
|
print(f"✅ GPU: {torch.cuda.get_device_name(0)}")
|
|
print(f"✅ 显存: {torch.cuda.get_device_properties(0).total_memory // 1024**3}GB")
|
|
else:
|
|
print("❌ CUDA 不可用")
|
|
except ImportError:
|
|
print("❌ PyTorch 未安装")
|
|
|
|
try:
|
|
import tensorrt
|
|
print(f"✅ TensorRT: {tensorrt.__version__}")
|
|
except (ImportError, FileNotFoundError):
|
|
print("⚠️ TensorRT: 不可用,将使用 Ultralytics 优化模式")
|
|
|
|
try:
|
|
import ultralytics
|
|
print(f"✅ Ultralytics: {ultralytics.__version__}")
|
|
except ImportError:
|
|
print("❌ Ultralytics 未安装")
|
|
|
|
def run_comparison_tests():
|
|
"""运行对比测试"""
|
|
from benchmark.comparison_runner import ComparisonRunner
|
|
|
|
MODEL_PATH = "C:/Users/16337/PycharmProjects/Security_project/yolov8n.pt"
|
|
OUTPUT_DIR = "./comparison_results"
|
|
|
|
runner = ComparisonRunner(MODEL_PATH, OUTPUT_DIR)
|
|
runner.run_full_comparison()
|
|
|
|
if __name__ == "__main__":
|
|
main() |