插件窝 干货文章 Apple Silicon Mac GPU使用率查看指南:如何监控我的PyTorch程序GPU性能?

Apple Silicon Mac GPU使用率查看指南:如何监控我的PyTorch程序GPU性能?

使用 GPU Metal 使用率 921    来源:    2025-03-14

在Apple Silicon Mac上,PyTorch程序可以利用Metal Performance Shaders (MPS) 后端来加速GPU计算。为了监控GPU的使用率,你可以使用以下几种方法:

1. 使用Activity Monitor

macOS自带的Activity Monitor可以查看GPU的使用情况。

  1. 打开Activity Monitor(可以通过Spotlight搜索打开)。
  2. 在顶部菜单栏中,选择Window -> GPU History
  3. 你将看到一个GPU使用率的图表,显示当前GPU的使用情况。

2. 使用Metal System Trace

Metal System Trace是Xcode中的一个工具,可以详细分析GPU的使用情况。

  1. 打开Xcode。
  2. 连接你的Apple Silicon Mac(如果是远程调试)。
  3. 选择Product -> Profile -> Metal System Trace
  4. 运行你的PyTorch程序,Metal System Trace将显示详细的GPU使用情况。

3. 使用py-metal-performance-shaders

py-metal-performance-shaders是一个Python库,可以帮助你监控GPU的使用情况。

  1. 安装py-metal-performance-shaders库:

    pip install py-metal-performance-shaders
    
  2. 在你的PyTorch代码中添加以下代码来监控GPU使用率:

    import torch
    import metal_performance_shaders as mps
    
    # 检查是否支持MPS
    if torch.backends.mps.is_available():
       device = torch.device("mps")
       print("MPS is available. Using MPS device.")
    else:
       device = torch.device("cpu")
       print("MPS is not available. Using CPU.")
    
    # 创建一个简单的张量并移动到MPS设备
    x = torch.randn(10000, 10000, device=device)
    
    # 监控GPU使用率
    mps.monitor_gpu_usage()
    

4. 使用nvidia-smi类似的工具

虽然nvidia-smi是NVIDIA GPU的工具,但你可以使用metal命令行工具来获取类似的信息。

  1. 打开终端。
  2. 运行以下命令来查看GPU的使用情况: bash metal statistics

5. 使用htoptop命令

虽然htoptop主要用于监控CPU和内存使用情况,但它们也可以显示与GPU相关的进程。

  1. 打开终端。
  2. 运行htoptop命令:

    htop
    

    top
    

    htoptop中,你可以查看与GPU相关的进程及其资源使用情况。

6. 使用psutil

psutil是一个跨平台的库,可以监控系统资源使用情况,包括GPU。

  1. 安装psutil库:

    pip install psutil
    
  2. 在你的Python代码中添加以下代码来监控GPU使用率:

    import psutil
    
    # 获取GPU使用率
    gpu_usage = psutil.virtual_memory().percent
    print(f"GPU Usage: {gpu_usage}%")
    

总结

在Apple Silicon Mac上监控PyTorch程序的GPU性能,你可以使用Activity MonitorMetal System Tracepy-metal-performance-shaders库、metal命令行工具、htop/top命令或psutil库。根据你的需求和环境选择合适的方法来监控GPU使用率。