Spec-Zone.ru › PyTorch 1

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:

Dict[str, Any]

Примечание

Дополнительные сведения об управлении памятью 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API