Spec-Zone.ru › PyTorch 2

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().

Менеджер кэширования можно настроить через переменные среды для округления выделений памяти, чтобы уменьшить фрагментацию. Иногда накладные расходы от округления могут быть выше, чем преимущества от уменьшения фрагментации. Следующая статистика может использоваться для проверки, не добавляет ли округление слишком много накладных расходов:

  • "requested_bytes.{all,large_pool,small_pool}.{current,peak,allocated,freed}": память, запрошенная кодом клиента. Сравните это значение с allocated_bytes, чтобы проверить, не добавляет ли округление выделений слишком много накладных расходов.
Parameters

device (torch.device или int, необязательно) – выбранное устройство. Возвращает статистику для текущего устройства, заданного current_device(), если device равно None (по умолчанию).

Return type

Dict[str, Any]

Примечание

См. Управление памятью для получения более подробной информации об управлении памятью GPU.

Примечание

При использовании backend:cudaMallocAsync некоторые статистики не имеют смысла и всегда сообщаются как ноль.

© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.cuda.memory_stats.html

Spec-Zone.ru

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