NVIDIA与AMD AI推理成本效率对比:生态、部署与本地验证
这次我们不聊某个具体模型,而是把 NVIDIA 和 AMD 放在同一个台面上,认真算一笔账:做 AI 推理、本地部署、批量任务时,两者之间的成本效率差距到底有多大?尤其是在最近大模型、ComfyUI、Ollama 这类工具越来越普及之后,这个问题的关注度明显比往年高。很多人看到“NVIDIA 对比 AMD 成本效率优势达 5 倍”这类结论时会有一个疑问:这个 5 倍到底是怎么算出来的?是只看显卡采购价,还是把开发时间、部署成本、调试成本都算进去了?更重要的是,这个结论放在普通开发者的本地环境里还成立吗?
这篇文章会直接拆开这个话题。我们先看成本效率优势的来源,再对比两边的生态成熟度、推理框架适配、批量任务稳定性,最后给出一套可落地的本地验证方法。你可以用这套方法在自己的机器上跑一遍,而不是只停留在别人给的结论上。如果你正在纠结下一张显卡选 NVIDIA 还是 AMD,或者手头已经有 AMD 显卡但跑 AI 工具频繁出问题,那这篇文章建议收藏备用。
1. 核心能力速览
在进入具体操作之前,先给一张对比速览表。这张表覆盖的是 AI 推理、本地大模型、图像生成、批量任务等常见场景,而不是游戏或通用计算。
| 对比维度 | NVIDIA | AMD | 说明 |
|---|---|---|---|
| 深度学习框架支持 | CUDA / cuDNN / TensorRT,支持最全 | ROCm,支持范围持续扩大,但版本兼容性要求较高 | PyTorch、TensorFlow 对 NVIDIA 的适配最成熟 |
| 推理服务工具 | Ollama、vLLM、llama.cpp 等优先支持 CUDA | 部分支持 ROCm,llama.cpp 有 ROCm 后端 | 热度高的新工具通常先出 NVIDIA 版本 |
| 大模型推理显存占用 | 依赖 CUDA 显存管理和优化库 | 可通过 ROCm 调用显存,但部分模型仍有兼容性问题 | 显存占用需以实际模型版本为准 |
| 图像生成 | ComfyUI / WebUI 原生支持 NVIDIA | ComfyUI 有 AMD 整合包,但节点兼容性可能出问题 | AMD 侧建议优先用官方整合包 |
| 批量任务稳定性 | 驱动和框架版本匹配后较稳定 | 需要更仔细地确认驱动、ROCm、PyTorch 三方版本匹配 | 版本不匹配是 AMD 批量任务卡住的主要原因 |
| 接口 API | Ollama、vLLM 等提供标准 OpenAI 兼容接口 | 同上,但依赖 ROCm 编译是否成功 | API 能力取决于推理服务,而非显卡本身 |
| 驱动安装 | CUDA 驱动 + NVIDIA 驱动,资料多 | AMD 驱动 + ROCm,安装步骤更多,依赖更敏感 | 驱动问题是两边新手都容易踩的坑 |
| 推荐使用人群 | 追求低调试成本、快速出结果 | 愿意花时间折腾、已有 AMD 显卡 | 从成本效率角度,NVIDIA 的“省心”本身就值钱 |
从这张表可以得出一个初步判断:NVIDIA 的领先不只是硬件性能,更关键的是软件生态成熟度。不过这里要强调一句,具体到不同模型、不同推理框架、不同显卡型号,两边的差距并不是固定值。所谓 5 倍优势,更多是在特定条件、特定工作负载下的测试结论,不能直接套用到所有场景。
2. 成本效率优势差异从哪里来
2.1 软件生态成熟度是核心变量
硬件只是底座,真正决定 AI 推理跑不跑得起来的是软件栈。NVIDIA 这边有 CUDA、cuDNN、TensorRT,以及围绕这些基础库建立起来的一整套工具链。PyTorch 官方预编译包默认支持 CUDA,安装后开箱即用;Ollama、vLLM、llama.cpp 这些主流推理框架,也把 CUDA 作为最重要的后端之一优先适配。这意味着你在网上搜到的大多数部署教程、踩坑记录、参数调优建议,都是基于 NVIDIA 环境写的。跟着教程走,大概率能复现。
AMD 这边的 ROCm 也在持续完善,但版本兼容性要求更严格。操作系统版本、内核版本、ROCm 版本、PyTorch 版本、显卡型号,任何一个不匹配都可能导致编译失败或者推理崩溃。这也是为什么很多人第一次在 AMD 显卡上跑 Ollama 或 ComfyUI 时,问题反而出在部署阶段而不是模型本身。
2.2 推理框架与算子库的优化深度
即使硬件算力接近,软件优化程度也会导致最终的推理效率出现明显差异。NVIDIA 的 TensorRT 可以对模型做层融合、精度校准、动态 shape 优化,在批量推理场景里提升非常明显。CUDA 生态里的算子库覆盖了大量常见模型结构,开发者不需要手动优化就能获得不错的性能。
AMD 的 ROCm 也提供了类似的库,比如 rocBLAS、MIOpen、ROCm 版的 TensorFlow 和 PyTorch,但有些算子仍然需要等待社区适配。如果某个模型用到了冷门算子,在 AMD 上可能退回到 CPU 计算,或者直接报错。这种差异在简单的文本生成模型上不太明显,但到了图像生成、视频生成这类算子密集的任务上,差距就会被放大。
2.3 成本不能只看显卡价格
“成本效率”这个词里的成本,至少要拆成三部分来看。第一是硬件采购成本,AMD 在部分价位上确实有明显优势。第二是开发与调试成本,这包括安装环境的时间、排查兼容性问题的时间、为某个算子单独写 workaround 的时间。第三是维护成本,驱动升级后环境是否需要重新适配,模型更新后是否会出现新的不兼容,这些都是长期投入。
从很多团队的实际情况来看,NVIDIA 的硬件采购成本可能更高,但部署和调试阶段省下来的时间,以及批量任务跑得更稳带来的产出效率提升,会把总成本摊薄。所谓 5 倍成本效率优势,更合理的理解是:在软件生态、开发效率、稳定性的综合作用下,单位产出对应的总成本,NVIDIA 在很多场景下会显著低于 AMD。
2.4 5 倍这个数字怎么理解
在做技术判断时,最好不要把“5 倍”当成一个绝对结论。更严谨的说法是:在某些评测里,NVIDIA 在特定推理任务上的成本效率是 AMD 的 5 倍;但换一个任务、换一个模型、换一个显卡型号,这个倍数可能会变化。看到这类结论时,先问清楚几个问题:测试用的模型是什么?显卡是什么型号?是否包含人工调试时间?批量任务规模多大?搞清楚这些,你才能判断这个结论适不适用于自己的场景。
3. 适用场景与选择建议
3.1 优先考虑 NVIDIA 的场景
如果你属于下面几类情况,选择 NVIDIA 会更省心。第一,主力任务是跑开源大模型,比如用 Ollama 跑 Qwen、Llama 系列,或者用 vLLM 部署推理服务,NVIDIA 的文档和社区解决方案最多。第二,经常使用 ComfyUI、Stable Diffusion WebUI 做图像生成,NVIDIA 对节点和自定义脚本的兼容性更好,很多工作流出问题的概率更小。第三,你要做批量任务、定时跑批、接口服务这类需要稳定运行的环境,NVIDIA 在驱动和 CUDA 版本匹配上更成熟,长时间运行的意外更少。第四,你是新手,希望照着教程一步步操作就能跑通,NVIDIA 环境能省掉大量排查时间。
3.2 可以认真考虑 AMD 的场景
AMD 也不是没有发挥空间。如果你手头已经有一张 AMD 显卡,暂时不想换硬件,而且愿意花时间研究 ROCm 的版本匹配,那么用它跑一些主流的文本生成模型是可行的。如果预算非常有限,AMD 在部分价位上能提供更大的显存容量,这对大模型推理很关键。另外,如果你的任务相对简单,比如用 llama.cpp 的 ROCm 后端跑 CPU/GPU 混合推理,不涉及太多冷门算子,AMD 也能完成任务。这种情况下,能不能跑通主要取决于你愿不愿意折腾环境。
3.3 使用边界与合规提醒
无论选择哪家显卡,都涉及模型版权、数据隐私、输出内容合规这几个问题。从开源模型仓库下载模型时,注意查看模型的许可证,区分完全开源和仅限研究使用。推理过程中,不要输入未授权获取的个人信息、敏感数据或受版权保护的素材。如果做图像生成、声音合成、数字人相关任务,肖像权、声音权的授权必须确认清楚。批量任务产生的输出结果,发布前要人工复核,不能直接把模型输出当作最终成品对外提供。合法授权是本地部署和接口服务的基本前提。
4. 本地部署环境准备
4.1 操作系统与驱动
不论是 NVIDIA 还是 AMD,Linux 环境下做 AI 推理通常比 Windows 更顺利,尤其是 AMD 的 ROCm,对 Linux 的支持更成熟。Windows 用户如果只是跑 Ollama、ComfyUI 这类封装较好的工具,也可以正常使用,但遇到问题后的排查资料相对少一些。
NVIDIA 侧需要确认显卡驱动已正确安装,并确认 CUDA 是否可用。在终端执行下面这个命令,如果能看到显卡信息,说明驱动和 CUDA 基本正常:
nvidia-smi如果提示nvidia-smi has failed because it couldn't communicate with the nvidia driver,说明驱动没有正确加载。这种情况在 Ubuntu 下很容易出现,常见原因是内核升级后驱动模块没有重新编译,或者 nouveau 开源驱动与 NVIDIA 闭源驱动冲突。排查思路是:确认内核版本、查看驱动模块加载状态、必要时重新安装匹配当前内核的驱动。
AMD 侧需要确认 ROCm 的安装状态。可以执行:
rocm-smi这个命令可以查看 AMD GPU 的状态、温度、显存占用、风扇转速等信息。如果提示命令不存在,说明 ROCm 没有安装或者没有加入 PATH。
4.2 Python 与深度学习框架
本地部署 AI 项目通常需要 Python 3.10 及以上版本,具体看项目要求。强烈建议使用虚拟环境或 Conda 环境,避免系统级 Python 被搞乱。PyTorch 的 CUDA 版本安装可以直接参考 PyTorch 官网的命令;AMD 用户则需要根据 ROCm 文档选择对应版本的 PyTorch。AMD 侧的 PyTorch 安装通常需要设置额外的环境变量和编译步骤。
这里给一个通用检查命令,用来确认 PyTorch 是否能识别 GPU:
import torch print("PyTorch version:", torch.__version__) print("CUDA available:", torch.cuda.is_available()) print("GPU count:", torch.cuda.device_count()) if torch.cuda.is_available(): print("GPU name:", torch.cuda.get_device_name(0))如果运行结果是CUDA available: False,说明 PyTorch 安装的版本不支持当前显卡,或者没有安装 GPU 版本的 PyTorch。AMD 用户可以关注 ROCm 是否被 PyTorch 检测到,检测方法以 ROCm 和 PyTorch 官方文档为准。
4.3 推理服务工具
Ollama 是目前本地跑大模型最省事的工具之一,提供命令行和 API 两种使用方式。它会自动处理模型下载、量化、显存调度等细节。ComfyUI 则是图像生成方向的热门选择,支持节点化工作流。两个工具都建议从官方渠道下载,避免来路不明的整合包引入额外风险。如果你更偏好底层控制,可以选择 llama.cpp,它支持多种硬件后端,包括 CUDA 和 ROCm,适合想精确控制推理参数的用户。
4.4 磁盘、内存与端口
大模型文件动辄几个 GB,建议预留至少 30GB 到 50GB 磁盘空间。如果跑图像生成,模型文件加输出图片也需要额外空间。内存方面,16GB 可以应付多数场景,32GB 更稳妥。端口方面,Ollama 默认使用 11434,ComfyUI 默认使用 8188,如果端口被占用可以修改配置或启动参数。
5. 安装部署与启动方式
5.1 NVIDIA 侧部署
以 Ollama 为例,在 Linux 上安装后直接启动服务:
curl -fsSL https://ollama.com/install.sh | sh ollama serve然后拉取一个模型进行测试:
ollama run qwen2.5:7b启动后确认服务监听的端口:
ss -tlnp | grep 11434NVIDIA 用户在这一步通常不会有太多问题,因为 CUDA 环境已经成熟。如果 Ollama 没有使用 GPU,可以先检查nvidia-smi的输出,确认驱动正常,再检查是否安装了 CUDA 版的依赖。Ollama 的日志里也会显示是否成功加载 GPU。
5.2 AMD 侧部署
AMD 侧建议先确认 ROCm 环境可用,再启动 Ollama。Ollama 的 ROCm 支持依赖 ROCm 的运行库,安装好之后启动命令与 NVIDIA 侧基本一样:
ollama serve拉取模型并运行:
ollama run qwen2.5:7bAMD 用户如果 Ollama 没有识别到显卡,优先检查 ROCm 版本与显卡是否在官方支持列表内。部分 AMD 显卡需要设置环境变量,比如显存分配策略、HSA 相关参数等,具体以 Ollama 和 ROCm 官方文档为准。从实际反馈看,AMD 侧出现问题的概率更高,但大多数问题都集中在安装阶段的版本匹配,而不是模型推理本身。
5.3 ComfyUI 部署
ComfyUI 的启动方式比较统一。先克隆项目,再安装依赖:
git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI pip install -r requirements.txt然后启动:
python main.py --port 8188NVIDIA 用户默认使用 CUDA。AMD 用户需要确认 PyTorch 是否编译了 ROCm 支持,部分节点可能要求额外的 ROCm 配置。最近能看到不少“ComfyUI AMD 整合包”,但对用户来说,从官方流程走更可控,遇到问题也更容易定位。有些兼容性问题不是显存不足,而是算子不兼容,比如某些节点在 AMD GPU 上完全无法运行,这种情况换整合包不一定能解决。
6. 功能测试与效果验证
6.1 GPU 设备识别测试
部署完成后的第一项测试,是确认推理框架真的在使用 GPU。跑模型之前,先用以下 Python 脚本确认环境:
import torch if torch.cuda.is_available(): device = torch.cuda.get_device_name(0) print(f"PyTorch is using GPU: {device}") else: print("PyTorch is not using GPU, check your installation")NVIDIA 用户可以在模型推理的同时打开另一个终端观察显存占用:
watch -n 1 nvidia-smiAMD 用户同样可以观察 GPU 使用情况:
watch -n 1 rocm-smi如果推理过程中 GPU 利用率没有明显提升,说明模型可能跑在 CPU 上,或者 GPU 后端没有被正确加载。
6.2 文本生成推理测试
用 Ollama 跑一个模型,输入一段稍微有点长度的文本,观察响应的速度和显存变化。
ollama run qwen2.5:7b "用一句话解释什么是注意力机制"更严谨的测试方式是用 API 调用,方便记录时间和统计结果。下面这段 Python 代码可以向 Ollama 发送请求,并记录响应时间:
import requests import time url = "http://127.0.0.1:11434/api/generate" payload = { "model": "qwen2.5:7b", "prompt": "用三句话解释什么是深度学习", "stream": False } start = time.time() response = requests.post(url, json=payload, timeout=300) elapsed = time.time() - start print("Status:", response.status_code) print("Elapsed:", f"{elapsed:.2f}s") if response.status_code == 200: data = response.json() print("Response:", data.get("response", "")[:200])判断是否成功:如果返回正常文本,并且响应时间合理,说明基础推理链路已经打通。如果返回超时、显存不足或者空响应,就要检查模型、显存和 Ollama 日志。
6.3 图像生成推理测试
ComfyUI 启动后,在浏览器访问http://127.0.0.1:8188。首次测试建议使用默认工作流,不做任何修改,用默认采样步数跑一张小尺寸图片,比如 512x512。记录生成时间和显存占用。成功后再逐步提高分辨率、增加步数、叠加 ControlNet 或 LoRA。
NVIDIA 用户的测试步骤可以按这个顺序来:默认文生图、图生图、局部重绘、批量生成。AMD 用户建议先只测默认工作流,确认没有任何 warning 和报错,再往下测其他节点。如果某个节点报错,优先确认是否与算子兼容性有关,而不是盲目调大显存或降低分辨率。
6.4 批量任务稳定性测试
批量任务是评测成本效率的重要环节。写一个简单脚本,连续发送多个推理请求,观察是否存在内存泄漏、显存逐渐占满、服务崩溃等问题。
import requests import time url = "http://127.0.0.1:11434/api/generate" total_requests = 10 success_count = 0 for i in range(total_requests): payload = { "model": "qwen2.5:7b", "prompt": f"这是第 {i + 1} 个测试请求,请返回一个简短答案", "stream": False } try: response = requests.post(url, json=payload, timeout=120) if response.status_code == 200: success_count += 1 print(f"Request {i + 1}: OK") else: print(f"Request {i + 1}: HTTP {response.status_code}") except Exception as e: print(f"Request {i + 1}: Error - {e}") time.sleep(1) print(f"Success: {success_count}/{total_requests}")如果成功率低于预期,批量任务卡住,优先看两块:一是显存是否被连续请求占满而没有及时释放,二是模型推理服务的并发处理能力是否够用。NVIDIA 和 AMD 在这类问题上表现不同,但排查方向一致。
6.5 成本效率怎么算
在自己机器上做成本效率对比时,建议用输出 tokens 数量和单位时间成本来算。记录一次推理任务消耗的时间、GPU 利用率、显存峰值、功耗,再结合显卡当前市场价格,算出单位输出结果对应的成本。这种测算方法不一定完全准确,但比直接拍脑袋说“某家比某家快 5 倍”要有说服力。
7. 接口 API 与批量任务
7.1 Ollama API 说明
Ollama 提供的 API 是一个 OpenAI 兼容接口,这种设计是为了方便开发者把本地模型接入现有工具链。文本生成接口的路径是/api/generate,Chat 接口的路径是/api/chat。
一个使用 Chat 接口的示例:
import requests url = "http://127.0.0.1:11434/api/chat" payload = { "model": "qwen2.5:7b", "messages": [ {"role": "user", "content": "写一段关于 GPU 选型的介绍"} ], "stream": False } response = requests.post(url, json=payload, timeout=300) print(response.json()["message"]["content"])7.2 批量任务设计建议
批量任务的设计不要只写一个循环发请求,要加上日志、重试和输出目录管理。下面给出一个更完整的设计框架:
import requests import time import json from pathlib import Path INPUT_FILE = "tasks.json" OUTPUT_DIR = Path("results") OUTPUT_DIR.mkdir(exist_ok=True) API_URL = "http://127.0.0.1:11434/api/generate" MODEL_NAME = "qwen2.5:7b" def load_tasks(file_path): with open(file_path, "r", encoding="utf-8") as f: return json.load(f) def run_single_task(task): payload = { "model": MODEL_NAME, "prompt": task["prompt"], "stream": False } for attempt in range(3): try: response = requests.post(API_URL, json=payload, timeout=180) if response.status_code == 200: data = response.json() return {"status": "success", "output": data.get("response", "")} except Exception as e: print(f"Attempt {attempt + 1} failed: {e}") time.sleep(5) return {"status": "failed", "output": ""} tasks = load_tasks(INPUT_FILE) for idx, task in enumerate(tasks): result = run_single_task(task) output_file = OUTPUT_DIR / f"result_{idx}.json" with open(output_file, "w", encoding="utf-8") as f: json.dump(result, f, ensure_ascii=False, indent=2) print(f"Task {idx}: {result['status']}")这个模板的关键点有三个:每次请求单独保存结果文件,避免全部结果放在内存里最后一次性写入,防止服务中断导致数据丢失;失败请求自动重试,但设置最大重试次数,避免死循环;每次请求之间保留一定间隔,避免把本地推理服务打满。
7.3 批量任务的失败重试
批量任务卡住的原因通常不是脚本逻辑,而是底层推理服务的稳定性。建议在日志里记录每个请求的开始时间、结束时间、耗时和返回码。后续排查时,只需要看日志就能知道哪个请求在哪一步出了问题。如果频繁出现连续失败,先停下来检查驱动、ROCm 和推理框架状态,不要盲目加大并发数。
8. 资源占用与性能观察
8.1 NVIDIA 侧监控
NVIDIA 用户观察资源占用最直接的方法还是nvidia-smi。在推理过程中持续运行监控命令,可以看到实时显存占用、GPU 利用率、温度、功耗:
nvidia-smi --query-gpu=name,memory.used,memory.total,utilization.gpu,temperature.gpu,power.draw --format=csv -l 1这个命令每秒刷新一次,适合做短时间性能观察。跑完一轮推理任务后,把输出记录下来,可以对比不同分辨率、步数、batch size 下的显存和耗时差异。
8.2 AMD 侧监控
AMD 用户使用rocm-smi查看 GPU 状态:
rocm-smi --showuse --showtemp --showmemuse --showpower如果rocm-smi的输出中看不到显卡,说明 ROCm 环境有问题,需要检查驱动加载情况和 ROCm 版本。
8.3 关键指标怎么看
观察性能时不要只看显存占用。GPU 利用率更重要:如果显存占满但 GPU 利用率很低,说明模型跑在 CPU 上,或者推理框架没有真正调用 GPU 算力。功耗和温度则反映了硬件是否长期处于高负载状态。批量任务场景下,稳定性往往比单次速度更重要。连续跑几十个任务,偶尔卡一次,比每次都快但中途崩溃更省心。这也是成本效率的一个重要观察维度。
9. 常见问题与排查方法
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| nvidia-smi 报无法与驱动通信 | 驱动未加载或内核升级后驱动不匹配 | 查看内核版本、检查驱动模块状态 | 重新安装匹配当前内核的 NVIDIA 驱动 |
| Ollama 启动后没有识别 GPU | PiTorch 或 Ollama 缺少 CUDA/ROCm 后端 | 查看启动日志、确认 GPU 驱动正常 | 按官方文档重新安装对应后端 |
| AMD 显卡跑 ComfyUI 节点报错 | ROCm 版本与节点算子不兼容 | 查看完整报错信息,确认是否和特定算子有关 | 尝试更新 ROCm 或更换节点实现 |
| 推理时显存被占满,服务中断 | batch size 太大或模型过大 | 观察显存占用曲线 | 降低 batch size,启用量化,释放显存 |
| 端口被占用导致服务启动失败 | 其他进程占用默认端口 | 检查端口监听状态 | 修改启动参数更换端口 |
| API 请求超时 | 模型加载耗时过长或任务排队 | 查看服务端日志 | 增加超时时间,减少并发请求 |
| 批量任务中途卡死 | 显存碎片化或推理服务崩溃 | 记录中途日志,定位卡住的请求 | 重启服务,增加重试机制 |
| 驱动安装失败,提示错误代码 | 系统环境或旧驱动残留 | 查看安装日志 | 卸载旧驱动,清理残留后再装 |
AMD 用户额外注意一点:驱动安装失败是常见问题,安装前务必确认系统版本、内核版本在 ROCm 官方支持范围内。很多时候问题不是出在 AMD 硬件上,而是环境与 ROCm 版本的匹配度不够。另外,Windows 下 AMD 显卡运行 AI 工具的体验通常不如 Linux,有条件的话建议用 Linux 环境做测试。
10. 最佳实践与使用建议
第一次部署时,先用最小配置跑通,不要一上来就上复杂工作流。模型、输入素材、输出结果分开目录管理,方便定位问题和清理磁盘。批量任务统一写成脚本,加日志、重试、结果分文件保存。接口服务不要默认监听公网,尤其是 Ollama 这类没有内置鉴权的服务,建议只绑定本机地址,或者用反向代理加权限验证。
涉及人脸、声音、版权素材的任务,一定要先确认授权。本地模型生成的图像和文本,发布或商用前必须做人工复核,不能完全信任模型输出。模型文件尽量从官方渠道或可信镜像下载,第三方整合包要谨慎,避免引入脚本风险。
对于想在 AMD 平台上做 AI 推理的开发者,我的建议是先花一个晚上把 ROCm 环境装好,用rocm-smi确认 GPU 可见,再跑一个最简单的文本模型。如果这个流程能走通,后面的问题基本可控。如果连基础环境都装不稳,就要认真评估“折腾时间”是否值得,这可能才是你在 AMD 和 NVIDIA 之间做选择时最重要的成本项。
从实际体验来看,玩本地大模型、AI 绘图、批量推理,NVIDIA 的“省心”确实是看得见的优势。AMD 则在特定硬件价位上有自己的价值,但需要你有足够耐心去解决软件层的问题。5 倍成本效率优势这个话题,与其被别人一句话定义,不如用文中的验证流程在自己的机器上跑一遍。先拿一张小显卡、一个小模型、一组固定参数,测出最基础的推理耗时和显存占用,再逐步放大到批量任务。这套真实数据,才是你做硬件选型时最可靠的依据。
