英伟达显卡的使用

Nvidia 1080 Ti跑程序


终于有了1080ti来跑程序了,终于不用等好久才能调一次参数了。
回归正题,使用nvidia显卡的时候要注意一些什么呢?

查看NVIDIA显卡使用情况

在这里主要查看的就是显存的使用情况,因为显卡内存常常会不足,这里就要时刻注意千万不要超出显存。

这里既然已经使用了cuda运行程序了,就默认nvidia的驱动都已经装好了。那么就能直接运行nvidia的一些命令了。

zgy@nlp-han:~$ nvidia-smi

然后显示如下图:
nvidia显卡使用情况

那么还有一个问题,如何动态的查看呢?

zgy@nlp-han:~$ watch -n 10 nvidia-smi

使用watch命令就能每10秒查看一次显卡使用情况了

查看cuda的版本

cuda 版本
cat /usr/local/cuda/version.txt

cudnn 版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

### 无NVIDIA显卡环境下的YOLOv5部署 在没有NVIDIA显卡的情况下,可以利用CPU来运行YOLOv5进行推理或训练。尽管性能会受到显著影响,但仍可以通过调整配置文件和依赖项实现这一目标。 #### 修改PyTorch的设备设置 默认情况下,YOLOv5会在可用时优先使用GPU进行计算。为了强制使用CPU,需修改代码中的设备指定部分。具体来说,在`train.py`或`detect.py`脚本中,将设备参数改为`cpu`: ```python device = 'cpu' ``` 此操作确保所有张量运算都在CPU上执行[^3]。 #### 安装必要的依赖项 即使不使用GPU,仍需安装完整的PyTorch库以支持YOLOv5的功能需求。根据引用[^4],推荐使用的PyTorch版本为2.3.1。可通过以下命令安装仅含CPU支持的PyTorch版本: ```bash pip install torch==2.3.1+cpu torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu ``` 上述命令专门针对CPU环境优化了安装包的选择。 #### 调整批量大小和其他超参数 由于CPU的并行处理能力远低于GPU,因此建议降低批量大小(batch size),以减少内存占用并提高效率。可以在`data/hyps/hyp.scratch-low.yaml`或其他相关配置文件中调整这些参数。例如,将批量大小设为较小值如2或4。 #### 性能预期 需要注意的是,即便成功完成了以上步骤,在纯CPU环境中运行深度学习模型通常非常缓慢。对于复杂的图像检测任务,每秒处理帧数(FPS)可能会降到不可接受的程度。如果条件允许,考虑租用云端服务提供商(如AWS、Google Cloud等)提供的临时GPU实例作为补充解决方案[^2]。 ### 示例代码片段 以下是经过适当修改后的YOLOv5推理入口函数的一部分,展示了如何切换至CPU模式: ```python import torch from models.common import DetectMultiBackend from utils.general import check_img_size, non_max_suppression, scale_boxes from utils.torch_utils import select_device weights = './yolov5s.pt' # 权重路径 imgsz = (640, 640) # 输入图片尺寸 conf_thres = 0.25 # 置信度阈值 iou_thres = 0.45 # IOU 阈值 # 强制选择 CPU 设备 device = select_device('cpu') model = DetectMultiBackend(weights, device=device) stride, names, pt = model.stride, model.names, model.pt imgsz = check_img_size(imgsz, s=stride) def run(source='image.jpg'): from PIL import Image img = Image.open(source).convert("RGB") im = letterbox(np.array(img), new_shape=imgsz)[0] im = im.transpose((2, 0, 1))[::-1] im = np.ascontiguousarray(im) im = torch.from_numpy(im).to(device) im = im.half() if model.fp16 else im.float() im /= 255 pred = model(im.unsqueeze(0)) pred = non_max_suppression(pred, conf_thres, iou_thres) for det in pred: if len(det): gn = torch.tensor(img.shape)[[1, 0, 1, 0]] xyxy = scale_boxes(im.shape[1:], det[:, :4], img.size).round() print("Inference completed on CPU.") run() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值