Spec-Zone.ru › NumPy 2.0

Глобальное состояние

В NumPy есть несколько параметров, которые влияют на глобальное поведение, изменяясь во время импорта, компиляции или выполнения. Большинство из них связаны с производительностью или отладкой и не будут представлять интереса для подавляющего большинства пользователей.

Параметры, связанные с производительностью

Количество потоков, используемых для линейной алгебры

Сам NumPy обычно преднамеренно ограничен одним потоком во время вызовов функций, однако он поддерживает одновременное выполнение нескольких потоков Python. Обратите внимание, что для эффективной линейной алгебры NumPy использует бэкэнд BLAS, такой как OpenBLAS или MKL, которые могут использовать несколько потоков, которые могут контролироваться переменными окружения, такими как OMP_NUM_THREADS, в зависимости от используемого бэкэнда. Один из способов управления количеством потоков — пакет threadpoolctl

madvise hugepage в Linux

При работе с очень большими массивами в современных ядрах Linux можно значительно повысить скорость, если используется прозрачный hugepage. Текущую политику системы для прозрачных hugepage можно увидеть так:

cat /sys/kernel/mm/transparent_hugepage/enabled

Если она установлена в madvise, NumPy обычно будет использовать hugepage для повышения производительности. Это поведение можно изменить, установив переменную окружения:

NUMPY_MADVISE_HUGEPAGE=0

или установив её в 1 для постоянного включения. При отсутствии настройки, по умолчанию используется madvise для ядер 4.6 и новее. Предполагается, что такие ядра получают значительный прирост скорости с поддержкой hugepage. Этот флаг проверяется во время импорта.

Выбор функций SIMD

Установка NPY_DISABLE_CPU_FEATURES приведет к исключению функций simd во время выполнения. См. Динамическое распределение SIMD.

Параметры, связанные с отладкой

Выводить предупреждение при отсутствии политики выделения памяти при освобождении данных

Некоторые пользователи могут передать владение указателем на данные ndarray путём установки флага OWNDATA. Если они делают это без установки (вручную) политики выделения памяти, по умолчанию будет вызываться free. Если NUMPY_WARN_IF_NO_MEM_POLICY установлено в "1", будет выведено RuntimeWarning. Лучший альтернативный способ — использовать PyCapsule с функцией освобождения и установить ndarray.base.

Изменено в версии 1.25.2: Эта переменная проверяется только при первом импорте.

© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/global_state.html

Spec-Zone.ru

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