Python 如何查看当前使用的 GPU
简介
在机器学习和深度学习任务中,使用图形处理单元 (GPU) 可以显着提高计算速度和效率。对于使用 Python 开发的人来说,了解如何查看当前正在使用的 GPU 至关重要,以便优化代码并获得最佳性能。本文将深入探讨 Python 中用于此目的的方法,并提供详细的示例代码。
方法
在 Python 中,有以下几种方法可以查看当前正在使用的 GPU:
1. 使用 NVIDIA-SMI 工具
NVIDIA-SMI 是 NVIDIA 提供的命令行工具,用于管理和监视 GPU。要查看当前正在使用的 GPU,请在终端或命令提示符中运行以下命令:
nvidia-smi
这将打印出有关所有可用 GPU 的信息,包括它们的利用率、内存使用情况和当前使用的进程。
2. 使用 PyTorch
PyTorch 是一个流行的机器学习库,用于深度学习。它提供了一个名为 torch.cuda.current_device()
的函数,该函数返回当前活动 GPU 设备的索引。要使用它,请运行以下代码:
“`python
import torch
gpuindex = torch.cuda.currentdevice()
“`
gpu_index
变量将包含当前正在使用的 GPU 的索引。
3. 使用 TensorFlow
TensorFlow 是另一个用于深度学习的机器学习库。它提供了一个名为 tf.config.list_physical_devices('GPU')
的函数,该函数返回可用 GPU 设备的列表。要使用它,请运行以下代码:
“`python
import tensorflow as tf
gpus = tf.config.listphysicaldevices(‘GPU’)
“`
gpus
变量将包含可用 GPU 设备的列表,每个设备都有一个相应的名称和索引。
示例代码
以下是使用上述方法查看当前正在使用的 GPU 的示例代码:
“`python
使用 NVIDIA-SMI 工具
import os
os.system(“nvidia-smi”)
使用 PyTorch
import torch
gpuindex = torch.cuda.currentdevice()
print(“GPU index:”, gpu_index)
使用 TensorFlow
import tensorflow as tf
gpus = tf.config.listphysicaldevices(‘GPU’)
for gpu in gpus:
print(“GPU name:”, gpu.name)
“`
最佳实践
在使用上述方法查看当前正在使用的 GPU 时,请考虑以下最佳实践:
- 在调用
nvidia-smi
之前确保已安装 NVIDIA 驱动程序。 - 如果有多个 GPU 可用,请使用
torch.cuda.set_device()
函数设置首选 GPU。 - 定期监视 GPU 使用情况以优化性能和避免内存泄漏。
常见问题解答
1. 如何查看 GPU 的可用内存?
- 使用
nvidia-smi
命令:nvidia-smi --query-gpu=memory.used --format=csv
- 使用 PyTorch:
torch.cuda.memory_allocated(device=gpu_index)
- 使用 TensorFlow:
tf.config.experimental.get_memory_info('GPU:0')
2. 如何确定 GPU 是否繁忙?
- 使用
nvidia-smi
命令:nvidia-smi --query-gpu=utilization.gpu --format=csv
- 使用 PyTorch:
torch.cuda.get_device_properties(device=gpu_index).total_memory
- 使用 TensorFlow:
tf.config.experimental.set_memory_growth(gpu, True)
3. 如何在 Python 中使用多个 GPU?
- 使用
torch.nn.DataParallel
和torch.nn.parallel.DistributedDataParallel
模块。 - 使用 TensorFlow 的
tf.distribute.MirroredStrategy
类。
4. 如何释放 GPU 内存?
- 使用
del
语句释放 PyTorch 张量。 - 使用
tf.keras.backend.clear_session()
函数释放 TensorFlow Tensor。 - 使用
cuda-memtest -g
命令释放 NVIDIA GPU 内存。
5. 如何比较不同 GPU 的性能?
- 使用第三方基准工具,如 CUDA-Z、GPUBenchmark 和 PassMark。
- 使用 TensorFlow 的
tf.test.gpu_device_info()
函数。
原创文章,作者:王利头,如若转载,请注明出处:https://www.wanglitou.cn/article_8415.html