Что это означает под 9.06 GiB reserved in total by PyTorch
.
Если я использую графический процессор меньшего размера 7.80 GiB total capacity
для того же скрипта, он говорит 6.20 GiB reserved in total by PyTorch
Как работает резервирование в Pytorch и почему зарезервировано изменение памяти в зависимости от размера графического процессора?
Чтобы устранить сообщение об ошибке, RuntimeError: CUDA out of memory. Tried to allocate 2.86 GiB (GPU 0; 10.92 GiB total capacity; 9.02 GiB already allocated; 1.29 GiB free; 9.06 GiB reserved in total by PyTorch)
Я попытался уменьшить размер пакета с 10 до 5 до 3. Я попытался удалить неиспользуемые тензоры с помощью del x_train1
. Я также пытался использовать torch.cuda.empty_cache()
. Я также использовал with torch.no_grad()
при применении предварительно обученной модели на x_train1 = bert_model(train_indices)[2]
, а также при обучении и проверке новой модели. Но никто из них не работает.
Это след:
cuda:0
x_train1 = bert_model(train_indices)[2] # Models outputs are tuples
File "/home/kosimadukwe/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in __call__
result = self.forward(*input, **kwargs)
File "/home/kosimadukwe/miniconda3/lib/python3.7/site-packages/transformers/modeling_bert.py", line 783, in forward
input_ids=input_ids, position_ids=position_ids, token_type_ids=token_type_ids, inputs_embeds=inputs_embeds
File "/home/kosimadukwe/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in __call__
result = self.forward(*input, **kwargs)
File "/home/kosimadukwe/miniconda3/lib/python3.7/site-packages/transformers/modeling_bert.py", line 177, in forward
embeddings = inputs_embeds + position_embeddings + token_type_embeddings
RuntimeError: CUDA out of memory. Tried to allocate 2.86 GiB (GPU 0; 10.92 GiB total capacity; 9.02 GiB already allocated; 1.29 GiB free; 9.06 GiB reserved in total by PyTorch)
и nvidia-smi out put
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.36 Driver Version: 440.36 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 108... Off | 00000000:3B:00.0 Off | N/A |
| 54% 79C P2 233W / 250W | 8613MiB / 11178MiB | 100% E. Process |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GTX 108... Off | 00000000:AF:00.0 Off | N/A |
| 58% 79C P2 247W / 250W | 4545MiB / 11178MiB | 0% E. Process |
+-------------------------------+----------------------+----------------------+
| 2 GeForce GTX 108... Off | 00000000:D8:00.0 Off | N/A |
| 23% 29C P0 56W / 250W | 0MiB / 11178MiB | 2% E. Process |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1025219 C /usr/pkg/bin/python3.8 8601MiB |
| 1 1024440 C /usr/pkg/bin/python3.8 4535MiB |
с
os.environ['CUDA_VISIBLE_DEVICES'] = '2'