Python指定使用gpu

本文介绍了如何在命令行中指定GPU运行Python脚本,包括使用CUDA_VISIBLE_DEVICES环境变量、在脚本内设置以及多GPU和多进程运行的方法。同时提供了查看GPU状态的命令,帮助优化实验环境资源利用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

命令行指定显卡GPU运行python脚本

在大型机构分配的服务器集群中,需要使用GPU的程序默认都会在第一张卡上进行,如果第一张卡倍别人占用或者显存不够的情况下,程序就会报错说没有显存容量,所以能够合理地利用GPU资源能帮助你更快更好地跑出实验效果。因此,这里特地总结了一些指定GPU运行python程序的教程供大家学习。

1、指定使用GPU0运行脚本(默认是第一张显卡, 0代表第一张显卡的id,其他的以此类推)

第一种方式:

CUDA_VISIBLE_DEVICES=0 python ***.py

第二种方式:在python脚本文件中添加如下内容进行指定:

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

如果在脚本文件中已经写明了第二种方式,则不支持第一种方式的指定。

2、指定使用多张显卡运行脚本

在GPU的id为0和1的两张显卡上运行***.py程序:

CUDA_VISIBLE_DEVICES=0,1 python ***.py

3、在单张显卡的情况下开启多个进程运行脚本

命令行程序如下:(其中NUM_GPUS_YOU_HAVE代表运行的进程数)

说明:程序会根据卡的容量分配成两个程序,不一定在两张卡,有时候一张卡的容量够则会在该张卡上开启新的进程。

python -m torch.distributed.launch --nproc_per_node=NUM_GPUS_YOU_HAVE ***.py

5、查看GPU状态

1、单次查看

nvidia-smi

2、隔一秒查看GPU状态:

watch -n 1 nvidia-smi
### Python中配置和使用GPU加速 #### TensorFlow GPU加速配置与使用 为了在Python中通过TensorFlow利用GPU进行计算,安装支持GPU的版本至关重要。确保环境中已正确安装CUDA Toolkit以及cuDNN库,这些是运行基于GPU操作的基础环境依赖项[^1]。 对于Windows用户来说,在命令提示符下执行`pip install tensorflow-gpu==指定版本号`来获取特定版本的支持GPU版TensorFlow;而对于Linux或macOS,则可能需要额外考虑驱动程序兼容性和其他系统级配置因素。一旦完成软件包安装,可以通过下面这段简单的测试代码验证是否成功启用了GPU: ```python import tensorflow as tf # 检查是否有可用的GPU设备 print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU'))) ``` 如果输出显示存在一个或多个GPU,则说明已经准备好开始编写能够自动调度到GPU上的模型训练脚本了。 #### PyTorch GPU加速配置与使用 同样地,在采用PyTorch框架时也需要先确认具备相应的硬件条件和支持文件。通常情况下,默认安装方式即包含了对主流显卡型号的良好适配能力。要使自定义神经网络能够在GPU上高效运作,只需简单调整数据加载部分并将张量移动至目标设备即可实现无缝切换: ```python import torch device = 'cuda' if torch.cuda.is_available() else 'cpu' tensor_example = torch.tensor([1., 2.], device=device) if torch.cuda.device_count() > 0: print(f"Using {torch.cuda.get_device_name(0)} for computations.") else: print("No CUDA devices found, falling back to CPU.") ``` 上述代码片段展示了如何检测当前系统的GPU状态,并据此决定后续处理逻辑的方向。 #### 使用Numba进行通用GPU编程 除了专门面向机器学习任务优化过的深度学习平台外,还有像Numba这样的工具可以帮助开发者更灵活地探索异构计算资源的应用场景。它允许使用者仅需添加少量装饰器就能让原本普通的数值运算函数瞬间获得显著的速度提升。特别是当涉及到大量重复性的矩阵变换或其他密集型算术表达式求解场合时尤为适用[^2]。 这里给出一段基本的例子用于展示怎样快速启用Numba来进行GPU加速: ```python from numba import cuda import numpy as np @cuda.jit def add_kernel(x, y, z): idx = cuda.grid(1) if idx < x.size: z[idx] = x[idx] + y[idx] n = 1000000 x = np.arange(n).astype(np.float32) y = 2 * x z = np.empty_like(x) threadsperblock = 256 blockspergrid = (n + threadsperblock - 1) // threadsperblock add_kernel[blockspergrid, threadsperblock](x, y, z) ``` 此段代码实现了两个向量相加的操作,并将其分配给GPU核心并行执行,从而大大缩短了整体耗时时长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IRevers

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值