用途:检测系统是否具备可用的兼容 GPU、验证其可正常工作,并诊断常见 GPU 计算失败原因。适用于调用 gpuDevice 或 gpuArray 报错、需要设置或选择多 GPU 系统中的某块 GPU、以及在任何 GPU 加速工作流前做前置检查。不适用于编写或优化 GPU 代码、计算过程中监控显存与利用率(应直接使用 gpuDevice 属性或 NVIDIA 工具),也不适用于通过并行池把工作分配到多块 GPU。
主要能力与约定:使用 MATLAB 原生 API 做检测与属性查询,nvidia-smi 仅用于 MATLAB 无法提供的信息。可用性判断优先用 canUseGPU 而非 gpuDeviceCount == 0 或 isempty(gpuDeviceTable),因为 canUseGPU 同时验证许可与工具箱状态。若建议更新驱动,需按用户所用 MATLAB 版本查阅 GPU Computing Requirements 文档中的驱动选择策略。
使用方式:先运行 canUseGPU,返回 true 则进入列出设备步骤。若为 false,运行 validateGPU("all") 诊断;若输出包含 requires a newer graphics driver,并不代表存在更新驱动,也不代表 GPU 不受支持或已停产,应引导用户到对应版本的 GPU Computing Requirements 页面核实后再下结论,其他失败参照故障排查表。选设备前先运行 gpuDeviceTable 列出所有 GPU 及索引(不分配显存),再用 d = gpuDevice(N) 选择并用 properties(d) 查看属性。Windows 上可检查 d.DriverModel 与 d.KernelExecutionTimeout:若为 WDDM,GPU 与显示共享,长时间内核可能被系统看门狗终止,低显存时可能不稳定;TCC 或 MCDM 可避免,但仅限未连接显示器的部分专业与数据中心 GPU。若无法切换且出现内核超时,可建议增大 Windows 注册表中的 TDR 超时、关闭其他 GPU 加速应用或把计算拆成小块。可选建议用户运行 File Exchange 上的 gpuBench 基准测试(非 MATLAB 自带)。
限制与故障排查要点:canUseGPU 为 false 且无报错多为未授权 PCT,可用 license('test','Distrib_Computing_Toolbox') 检查;validateGPU 找不到说明未安装 PCT 或版本早于 R2024b(可用 ver('parallel') 判断)。平台或驱动检查失败时不保证有新驱动。设备不可用时,若提示 prohibited 多为仅图形 vGPU 配置(后缀 B),需改为支持计算的 Q 或 C 配置并上报管理员;若提示 exclusive 说明设备被其他进程占用。设备数为 0 时,容器环境需确认 GPU 透传配置。驱动更新等文档细节该资料未提供完整内容,需查阅官方文档。