MultimodalFlow
← 返回博客

LocateAnything-3B 实测:RTX 3090 vs Jetson AGX Thor

locateanythingnvidiajetson thorrtx 3090benchmark边缘ai视觉语言模型目标检测

NVIDIA 的 LocateAnything-3B 是一个 30 亿参数的视觉语言模型,通过自然语言提示完成目标检测、短语定位、文字检测和 GUI 指向任务。与传统检测模型不同,它接受文字描述并返回边界框坐标,无需针对特定类别训练。

我在手头两台设备上分别运行了测试:RTX 3090 工作站和 Jetson AGX Thor 边缘设备。同一个模型,同一套代码,数据如实呈现。


硬件与软件环境

RTX 3090Jetson AGX Thor
GPUGeForce RTX 3090NVIDIA Thor(集成)
显存 / 内存24 GB GDDR6X128 GB 统一内存
CUDA12.413.0
PyTorch2.6.0+cu1242.12.0+cu130
Transformers4.57.14.57.1
模型精度bfloat16bfloat16
模型位置本地 NVMe本地 NVMe

两台机器均从本地存储加载模型,推理数据中不含网络延迟。


LocateAnything-3B 能做什么

模型接受图像和自然语言查询,返回结构化的边界框坐标。支持的任务类型:

  • 目标检测"Locate all instances matching: person</c>car</c>bicycle"
  • 短语定位"Locate a single instance: red handbag on the left side"
  • 文字检测"Detect all text in box format"
  • 指向(Pointing)"Point to: the submit button"
  • GUI 定位 — 适合屏幕交互和 UI 自动化场景

输出格式为结构化 token 序列,如 <ref>标签</ref><box><x1><y1><x2><y2></box>,坐标归一化到 0–1000 范围。模型支持三种生成模式:fast(多 token 预测)、slow(标准逐 token)和 hybrid(自适应)。


测试结果

所有测试使用 640×480 合成测试图像。每个任务在完成一次预热推理(消除 JIT 编译开销)后计时。吞吐量测试对同一单类别检测查询运行 10 次。

模型加载时间

RTX 3090Jetson AGX Thor
加载时间8.1 s20.4 s
加载后显存占用7,406 MB7,406 MB
显存峰值7,938 MB7,938 MB

Thor 的加载时间慢 2.5 倍,主要原因是从存储读取 checkpoint shard 的内存带宽较低。显存占用完全相同——Thor 的统一内存架构中不存在独立显存分配,7.4 GB 直接从共享的 128 GB 内存池中划出。

任务推理延迟(单次运行,hybrid 模式)

任务RTX 3090Jetson AGX Thor倍率
检测(2个类别)4,150 ms5,118 ms1.2×
短语定位(单个)298 ms642 ms2.1×
文字检测299 ms643 ms2.1×
指向300 ms626 ms2.1×

两类别检测任务远慢于单结果任务——模型需要生成更多 token。定位和指向类查询输出短小,在两台设备上均快速收敛,也最清晰地反映了设备性能差距。

生成模式对比(检测任务)

模式RTX 3090Jetson AGX Thor
Hybrid4,150 ms5,118 ms
Fast(多 token 预测)2,020 ms2,694 ms
Slow(逐 token)966 ms1,399 ms

Slow 模式(标准逐 token)在检测任务上最快,因为多 token 预测的开销只在更长序列时才能摊薄。在生产部署中,针对固定查询类型测试三种模式是值得的。

吞吐量(10次运行,单类别检测,hybrid 模式)

RTX 3090Jetson AGX Thor
平均延迟301 ms674 ms
吞吐量3.32 fps1.48 fps
稳定性(标准差)~3 ms~120 ms

3090 极其稳定,10 次运行全部落在 297–307 ms 之间。Thor 表现出更大的方差(596–1004 ms),可能与热管理和统一内存带宽被系统其他进程共享有关。


关键发现

1. Thor 全精度 bf16 运行,无需压缩

模型以完整 bfloat16 精度在 Thor 上加载并运行,无需量化、剪枝或任何模型改动。内存余量充足——7.4 GB 仅占 Thor 128 GB 统一内存的 6%,完全可以同时运行感知、LLM 推理等其他任务。

2. 3090 吞吐量约是 Thor 的 2.2 倍

对于不需要实时速度的批量检测流程,Thor 的 1.48 fps 完全可用。674 ms/帧的速度意味着每小时可处理约 5,300 张图像——适合质量检测、数据集标注或无人值守的文档分析流水线。

3. 生成模式选择比换设备更有效

在 3090 上,从 hybrid 切换到 slow 模式可将检测延迟从 4,150 ms 降到 966 ms——单靠模式选择就提速 4.3 倍,远超设备差距本身。在 Thor 上同样如此(5,118 ms → 1,399 ms,3.7 倍)。做硬件优化之前,应先完成任务级模式调优。

4. Thor 是非实时视觉定位的可行部署平台

以 1.48 fps,Thor 能胜任帧率在 1–2 fps 或允许批处理的检测和定位任务。在未量化的情况下,它不适合用于实时视频目标定位。

5. 输出结果完全一致

两台设备在所有任务类型上产出了相同的边界框坐标。模型的检测质量在 Thor 的 ARM+CUDA 软件栈上没有任何退化。


预热行为

首次推理延迟与稳定状态有显著差异:

首次推理(预热)稳定状态
RTX 30906,760 ms300 ms
Jetson AGX Thor4,696 ms640 ms

有趣的是,Thor 的预热时间反而更短(4.7s vs 3090 的 6.8s),尽管其稳定态推理更慢。3090 的预热包含更复杂的 CUDA 内核编译过程。生产中建议保持模型常驻内存并保温,避免重复预热开销。


部署场景建议

场景推荐硬件备注
实时视频(≥10 fps)RTX 3090 或更强Thor 需量化才能达到
批量检测(1–3 fps)两者均可Thor 成本效益更高
边缘部署、无云端Jetson AGX Thor全精度,数据不出设备
摄像头侧定位Jetson AGX Thor本地推理,数据不上传
交互式演示RTX 3090响应时间低于 300ms
多任务并行流水线Thor(128 GB 共享)定位 + LLM 同时运行

环境说明

LocateAnything-3B 需要 Python 3.10+、torch、transformers ≥4.51(Qwen3 支持)、peft 和 lmdb。在 Jetson(aarch64)上,decord 没有预编译包——可用 stub 包满足 import 检查,因为定位任务不涉及视频加载功能。

测试环境中两台设备均未启用 magi_attention(NVIDIA 自定义注意力内核),均回退到 PyTorch SDPA。启用 magi_attention 可能进一步降低两台设备的延迟。


汇总对比

指标RTX 3090Jetson AGX Thor
模型加载8.1s20.4s
显存占用7.4 GB7.4 GB / 128 GB
单次查询(hybrid)~300 ms~640 ms
吞吐量3.32 fps1.48 fps
最佳检测模式延迟Slow: 966msSlow: 1,399ms
能否实时处理勉强可以不行(仅批处理)
是否需要量化实时场景需要
峰值功耗~350W~60W

LocateAnything-3B 在工作站 GPU 和边缘 AI 设备上均可无修改直接运行。3090 提供约 2.2 倍的吞吐量优势,但 Thor 在功耗(~60W vs ~350W)、统一内存架构和边缘部署场景下的综合优势,使其成为检测和定位流水线中不需要实时响应速度时的有力选择。