DepthAnything / Depth-Anything-V2

[NeurIPS 2024] Depth Anything V2. A More Capable Foundation Model for Monocular Depth Estimation
https://depth-anything-v2.github.io
Apache License 2.0
3.8k stars 323 forks source link

cuda out of memory #103

Open xuan-cloud opened 3 months ago

xuan-cloud commented 3 months ago

当我在运行时,显示cuda out of memory。如何指定batchsize和指定使用哪块GPU?但生成深度图时只测试一张,为什么也会cuda out of memory?

Edric-star commented 3 months ago

两个问题,一是你用的是哪个模型做测试的,二是你的GPU显存是多少呢。跑的时候nvdia-smi监控一下看看

xuan-cloud commented 3 months ago

两个问题,一是你用的是哪个模型做测试的,二是你的GPU显存是多少呢。跑的时候nvdia-smi监控一下看看

用的vitl模型,GPU是24G的。有两块GPU,如何在程序里指定使用哪一块呢?

Edric-star commented 3 months ago

两个问题,一是你用的是哪个模型做测试的,二是你的GPU显存是多少呢。跑的时候nvdia-smi监控一下看看

用的vitl模型,GPU是24G的。有两块GPU,如何在程序里指定使用哪一块呢?

你这个推理不用特定指定 我再确认一下,你是做微调训练(train文件)还是只是做推理(run文件)呢,做推理的话默认都是bs为1,理论上不会有影响

xuan-cloud commented 3 months ago

两个问题,一是你用的是哪个模型做测试的,二是你的GPU显存是多少呢。跑的时候nvdia-smi监控一下看看

用的vitl模型,GPU是24G的。有两块GPU,如何在程序里指定使用哪一块呢?

你这个推理不用特定指定 我再确认一下,你是做微调训练(train文件)还是只是做推理(run文件)呢,做推理的话默认都是bs为1,理论上不会有影响

我是做推理。就是只用于生成深度图。只运行run.py。之前一直没有出现cuda out of memory的状况。但前几日其他人在显卡上同时跑程序,有出现过cuda out of memory。

Edric-star commented 3 months ago

那这样挺正常的 本来vitl做单张推理也需要占几G的显存吧 然后大概率是别人占的也不少 所以超出了

两个问题,一是你用的是哪个模型做测试的,二是你的GPU显存是多少呢。跑的时候nvdia-smi监控一下看看

用的vitl模型,GPU是24G的。有两块GPU,如何在程序里指定使用哪一块呢?

你这个推理不用特定指定 我再确认一下,你是做微调训练(train文件)还是只是做推理(run文件)呢,做推理的话默认都是bs为1,理论上不会有影响

我是做推理。就是只用于生成深度图。只运行run.py。之前一直没有出现cuda out of memory的状况。但前几日其他人在显卡上同时跑程序,有出现过cuda out of memory。

xuan-cloud commented 3 months ago

那这样挺正常的 本来vitl做单张推理也需要占几G的显存吧 然后大概率是别人占的也不少 所以超出了

两个问题,一是你用的是哪个模型做测试的,二是你的GPU显存是多少呢。跑的时候nvdia-smi监控一下看看

用的vitl模型,GPU是24G的。有两块GPU,如何在程序里指定使用哪一块呢?

你这个推理不用特定指定 我再确认一下,你是做微调训练(train文件)还是只是做推理(run文件)呢,做推理的话默认都是bs为1,理论上不会有影响

我是做推理。就是只用于生成深度图。只运行run.py。之前一直没有出现cuda out of memory的状况。但前几日其他人在显卡上同时跑程序,有出现过cuda out of memory。

那是否可以指定推理的时候用哪张GPU呢?另一张显卡是空闲的。

Edric-star commented 3 months ago

那这样挺正常的 本来vitl做单张推理也需要占几G的显存吧 然后大概率是别人占的也不少 所以超出了

两个问题,一是你用的是哪个模型做测试的,二是你的GPU显存是多少呢。跑的时候nvdia-smi监控一下看看

用的vitl模型,GPU是24G的。有两块GPU,如何在程序里指定使用哪一块呢?

你这个推理不用特定指定 我再确认一下,你是做微调训练(train文件)还是只是做推理(run文件)呢,做推理的话默认都是bs为1,理论上不会有影响

我是做推理。就是只用于生成深度图。只运行run.py。之前一直没有出现cuda out of memory的状况。但前几日其他人在显卡上同时跑程序,有出现过cuda out of memory。

那是否可以指定推理的时候用哪张GPU呢?另一张显卡是空闲的。

可以的,你命令行运行的时候加上下面的语句,显卡编号为你空闲的卡,你如果两个卡的话大概率是1卡空闲吧 CUDA_VISIBLE_DEVICES=0 python run.py

xuan-cloud commented 3 months ago

那这样挺正常的 本来vitl做单张推理也需要占几G的显存吧 然后大概率是别人占的也不少 所以超出了

两个问题,一是你用的是哪个模型做测试的,二是你的GPU显存是多少呢。跑的时候nvdia-smi监控一下看看

用的vitl模型,GPU是24G的。有两块GPU,如何在程序里指定使用哪一块呢?

你这个推理不用特定指定 我再确认一下,你是做微调训练(train文件)还是只是做推理(run文件)呢,做推理的话默认都是bs为1,理论上不会有影响

我是做推理。就是只用于生成深度图。只运行run.py。之前一直没有出现cuda out of memory的状况。但前几日其他人在显卡上同时跑程序,有出现过cuda out of memory。

那是否可以指定推理的时候用哪张GPU呢?另一张显卡是空闲的。

可以的,你命令行运行的时候加上下面的语句,显卡编号为你空闲的卡,你如果两个卡的话大概率是1卡空闲吧 CUDA_VISIBLE_DEVICES=0 python run.py

好的!非常感谢您的帮助!(^▽^)