torch.cuda.memory_stats
-
torch.cuda.memory_stats(device=None)[source] -
Возвращает словарь статистики выделения памяти CUDA для заданного устройства.
Возвращаемое значение этой функции — словарь статистики, каждое значение которого является целым неотрицательным числом.
Основные статистические показатели:
-
"allocated.{all,large_pool,small_pool}.{current,peak,allocated,freed}": количество запросов на выделение памяти, полученных менеджером памяти. -
"allocated_bytes.{all,large_pool,small_pool}.{current,peak,allocated,freed}": объём выделенной памяти. -
"segment.{all,large_pool,small_pool}.{current,peak,allocated,freed}": количество зарезервированных сегментов изcudaMalloc(). -
"reserved_bytes.{all,large_pool,small_pool}.{current,peak,allocated,freed}": объём зарезервированной памяти. -
"active.{all,large_pool,small_pool}.{current,peak,allocated,freed}": количество активных блоков памяти. -
"active_bytes.{all,large_pool,small_pool}.{current,peak,allocated,freed}": объём активной памяти. -
"inactive_split.{all,large_pool,small_pool}.{current,peak,allocated,freed}": количество неактивных, не подлежащих освобождению блоков памяти. -
"inactive_split_bytes.{all,large_pool,small_pool}.{current,peak,allocated,freed}": объём неактивной, не подлежащей освобождению памяти.
Для этих основных статистических показателей значения разбиты следующим образом.
Тип пула:
-
all: объединённая статистика по всем пулам памяти. -
large_pool: статистика для пула больших выделений (начиная с октября 2019 года, для выделений размером ≥ 1 МБ). -
small_pool: статистика для пула малых выделений (начиная с октября 2019 года, для выделений размером < 1 МБ).
Тип метрики:
-
current: текущее значение этой метрики. -
peak: максимальное значение этой метрики. -
allocated: исторический общий прирост этой метрики. -
freed: историческое общее уменьшение этой метрики.
В дополнение к основной статистике мы также предоставляем некоторые простые счётчики событий:
-
"num_alloc_retries": количество неудачных вызововcudaMalloc, которые приводят к очистке кэша и повторной попытке. -
"num_ooms": количество ошибок «недостаточно памяти».
Адаптер кэширования можно настроить с помощью переменных среды, чтобы он не разделял блоки размером больше определённого значения (см. раздел «Управление памятью» в документации по семантике CUDA). Это помогает избежать фрагментации памяти, но может привести к снижению производительности. Дополнительные выходы для помощи в настройке и оценке влияния:
-
"max_split_size": блоки размером больше этого значения не будут разделены. -
"oversize_allocations.{current,peak,allocated,freed}": количество запросов на выделение памяти больше допустимого размера, полученных менеджером памяти. -
"oversize_segments.{current,peak,allocated,freed}": количество зарезервированных сегментов изcudaMalloc(), превышающих допустимый размер.
- Parameters:
-
device (torch.device or int, optional) – выбранное устройство. Возвращает статистику для текущего устройства, заданного с помощью
current_device(), еслиdevice—None(по умолчанию). - Return type:
Примечание
Дополнительные сведения об управлении памятью GPU см. в Управлении памятью.
-
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.cuda.memory_stats.html