| # NeuroScan AI 性能基准测试 |
|
|
| ## 🔬 性能基准测试报告 |
|
|
| > 测试时间: 2026-01-28 17:16:29 |
|
|
| ### 测试环境 |
|
|
| | 组件 | 配置 | |
| |------|------| |
| | **CPU** | Intel(R) Xeon(R) Platinum 8350C CPU @ 2.60GHz | |
| | **CPU核心** | 64 物理核 / 128 逻辑核 | |
| | **内存** | 2014 GB | |
| | **GPU** | NVIDIA A800-SXM4-80GB | |
| | **GPU显存** | 80 GB | |
| | **Python** | 3.11.11 | |
| | **PyTorch** | 2.8.0+cu129 | |
| | **CUDA** | 12.9 | |
| | **MONAI** | 1.5.2 | |
| | **SimpleITK** | 2.4.1 | |
|
|
| ### 测试数据 |
|
|
| | 属性 | 值 | |
| |------|------| |
| | **数据集** | Learn2Reg Lung CT | |
| | **样本数量** | 20 对 (吸气/呼气配对) | |
| | **输入尺寸** | 192 × 192 × 208 体素 | |
| | **体素间距** | 1.0 × 1.0 × 1.0 mm | |
| | **数据类型** | float32 | |
| | **单卷大小** | 58.5 MB | |
| | **单卷体素数** | 7,667,712 | |
|
|
| --- |
|
|
| ## CPU 并发基准测试 |
|
|
| ### 测试任务: 配准 + 变化检测流程 |
|
|
| 1. **数据加载**: NIfTI 格式加载 |
| 2. **刚性配准**: 6DOF 仿射变换 (SimpleITK) |
| 3. **非刚性配准**: B-spline 形变场 (SimpleITK) |
| 4. **变化检测**: 体素级差异计算 |
|
|
| ### 测试结果 |
|
|
| | 并发数 | 总耗时 | 吞吐量 | CPU峰值 | CPU均值 | 内存峰值 | 内存增量 | 并行效率 | |
| |--------|--------|--------|---------|---------|----------|----------|----------| |
| | 1 | 7.38s | 8.1/min | 10.3% | 1.9% | 39.1 GB | +1.0 GB | 100% | |
| | 2 | 7.68s | 15.6/min | 38.8% | 5.4% | 40.0 GB | +2.0 GB | 192% | |
| | 3 | 8.44s | 21.3/min | 39.2% | 7.4% | 40.8 GB | +3.0 GB | 262% | |
| | 4 | 9.07s | 26.5/min | 42.6% | 9.5% | 41.8 GB | +4.0 GB | 325% | |
| | 5 | 9.60s | 31.2/min | 42.0% | 11.3% | 42.5 GB | +5.0 GB | 384% | |
|
|
| ### 单任务耗时分解 |
|
|
| | 阶段 | 耗时 | 占比 | 说明 | |
| |------|------|------|------| |
| | 数据加载 | 0.08s | 1% | NIfTI 读取 + 预处理 | |
| | 刚性配准 | 1.10s | 15% | 6DOF 仿射变换优化 | |
| | 非刚性配准 | 6.20s | 84% | B-spline 形变场优化 | |
| | 变化检测 | 0.02s | <1% | NumPy 差异计算 | |
| | **总计** | **7.40s** | **100%** | - | |
|
|
| ### CPU 利用率分析 |
|
|
| ``` |
| 并发数: 1 ▓░░░░░░░░░░░░░░░░░░░ 10.3% |
| 并发数: 2 ▓▓▓▓▓▓▓░░░░░░░░░░░░░ 38.8% |
| 并发数: 3 ▓▓▓▓▓▓▓░░░░░░░░░░░░░ 39.2% |
| 并发数: 4 ▓▓▓▓▓▓▓▓░░░░░░░░░░░░ 42.6% |
| 并发数: 5 ▓▓▓▓▓▓▓▓░░░░░░░░░░░░ 42.0% |
| ``` |
|
|
| > 📊 **结论**: CPU 利用率在 5 并发时仅达到 42%,说明还有很大的并发扩展空间。 |
|
|
| --- |
|
|
| ## GPU 并发基准测试 |
|
|
| ### 测试任务: MONAI 器官分割 |
|
|
| - **模型**: TotalSegmentator (104 类器官) |
| - **推理方式**: Sliding Window (滑动窗口) |
| - **窗口大小**: 96 × 96 × 96 |
| - **重叠率**: 50% |
|
|
| ### 测试结果 |
|
|
| | 并发数 | 总耗时 | GPU显存峰值 | GPU利用率峰值 | CPU峰值 | 内存峰值 | |
| |--------|--------|-------------|---------------|---------|----------| |
| | 1 | 8.19s | **9.0 GB** | 100% | 37.5% | 42.1 GB | |
| | 2 | 8.50s | **15.0 GB** | 100% | 5.8% | 43.2 GB | |
|
|
| ### 单任务耗时分解 |
|
|
| | 阶段 | 耗时 | 占比 | 说明 | |
| |------|------|------|------| |
| | 数据加载 | 0.11s | 1% | NIfTI → Tensor | |
| | 模型推理 | 8.08s | 99% | Sliding Window | |
| | **总计** | **8.19s** | **100%** | - | |
| | **GPU显存** | **7.32 GB** | - | PyTorch allocated | |
| | **GPU显存 (系统)** | **9.0 GB** | - | nvidia-smi 报告 | |
|
|
| ### GPU 显存分析 |
|
|
| ``` |
| 单任务: ▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░░░░░░░ 9.0 GB / 80 GB (11%) |
| 双任务: ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░ 15.0 GB / 80 GB (19%) |
| ``` |
|
|
| > 📊 **结论**: 单任务分割需要约 **9 GB** GPU显存,双任务需要约 **15 GB**。RTX 3060 (12GB) 可运行单任务,RTX 4090 (24GB) 可运行 2 并发。 |
|
|
| --- |
|
|
| ## 资源需求总结 |
|
|
| ### 最小配置估算 |
|
|
| 基于测试数据,各场景的最小资源需求: |
|
|
| | 场景 | CPU | 内存 | GPU显存 | 备注 | |
| |------|-----|------|---------|------| |
| | 仅配准 (单任务) | 2 核 | 2 GB | 无需 | CPU密集型 | |
| | 仅配准 (5并发) | 8 核 | 6 GB | 无需 | 线性扩展 | |
| | 分割 (单任务) | 4 核 | 4 GB | **9 GB** | GPU密集型 | |
| | 分割 (双任务) | 4 核 | 6 GB | **15 GB** | 显存瓶颈 | |
| | 完整流程 | 8 核 | 8 GB | **12 GB** | 配准+分割+LLM | |
|
|
| ### 推荐配置方案 |
|
|
| | 部署场景 | CPU | 内存 | GPU | 预估并发能力 | 参考月费 | |
| |----------|-----|------|-----|--------------|----------| |
| | **最低配置** | 4核 | 8 GB | 无 | 1 任务 (仅配准) | ~¥100 | |
| | **推荐配置** | 8核 | 16 GB | RTX 3060 12GB | 2-3 任务 | ~¥800 | |
| | **专业配置** | 16核 | 32 GB | RTX 4090 24GB | 5+ 任务 | ~¥2000 | |
| | **服务器配置** | 32核+ | 64 GB+ | A100 40GB+ | 10+ 任务 | ~¥8000 | |
|
|
| --- |
|
|
| ## 运行基准测试 |
|
|
| ```bash |
| # 运行完整基准测试 |
| python scripts/benchmark.py |
| |
| # 运行快速压力测试 |
| python scripts/stress_test.py |
| ``` |
|
|
| --- |
|
|
| ## 附录: 测试脚本 |
|
|
| - `scripts/benchmark.py` - 完整基准测试,生成详细报告 |
| - `scripts/stress_test.py` - 快速压力测试,显示资源峰值 |
|
|
| --- |
|
|
| *报告生成时间: 2026-01-28 17:16:29* |
|
|