Методы OpenBLAS
OpenBLAS — это высокопроизводительная библиотека линейной алгебры с открытым исходным кодом, реализующая BLAS (Basic Linear Algebra Subprograms) и некоторые функции LAPACK. OpenBLAS нацелен на повышение производительности вычислений, особенно в операциях с матрицами и векторными вычислениями, которые важны в научных и инженерных задачах, таких как машинное обучение, численные методы и симуляции.
Основные особенности OpenBLAS:
- Поддержка многопоточности: OpenBLAS может эффективно использовать несколько процессорных ядер для параллельных вычислений, что значительно ускоряет выполнение операций на многопроцессорных системах.
- Оптимизация под архитектуры процессоров: OpenBLAS включает оптимизированные сборки для различных процессоров, таких как Intel, AMD, ARM и других. Библиотека автоматически определяет характеристики процессора и выбирает наиболее подходящие реализации функций.
- Поддержка широкого спектра операций BLAS: OpenBLAS реализует основные функции BLAS, такие как операции с векторами (например, векторное сложение и скалярное произведение), матрицами (умножение) и векторно-матричные операции.
- Совместимость с LAPACK: Библиотека поддерживает ряд функций LAPACK (Linear Algebra PACKage), которые нужны для более сложных операций линейной алгебры, таких как решения систем линейных уравнений, вычисление собственных значений матриц и другие.
- Высокая производительность: По сравнению с другими библиотеками BLAS, OpenBLAS часто показывает лучшие результаты благодаря ручной оптимизации под конкретные процессорные архитектуры.
Применение
OpenBLAS широко используется в приложениях, связанных с численными вычислениями, таких как:
- Обучение нейронных сетей и другие задачи машинного обучения.
- Научные вычисления, например, моделирование физических процессов.
- Обработка больших объемов данных и их анализ.
Библиотека интегрирована во многие популярные научные программные пакеты, такие как NumPy, SciPy и TensorFlow, которые зависят от высокопроизводительных операций линейной алгебры для эффективной работы.
OpenBLAS — отличный выбор для тех, кто ищет решение с открытым исходным кодом для высокопроизводительных вычислений, особенно при работе с большими матрицами и векторами.
Функция |
Действие |
---|---|
Singular Value Decomposition, "divide and conquer" алгоритм. Данный алгоритм считается наиболее быстрым среди других алгоритмов SVD (lapack-функция GESDD). |
|
Singular Value Decomposition, QR алгоритм. Данный алгоритм считается классическим алгоритмом SVD (lapack-функция GESVD). |
|
Singular Value Decomposition, алгоритм QR with pivoting (lapack-функция GESVDQ). |
|
Singular Value Decomposition, алгоритм bisection (lapack-функция GESVDX). |
|
Singular Value Decomposition, алгоритм Jacobi high level (lapack-функция GEJSV). |
|
Singular Value Decomposition, алгоритм Jacobi low level (lapack-функция GESVJ). В некоторых случаях вычисляет малые сингулярные значения и их сингулярные векторы гораздо более точно, чем другие подпрограммы SVD. |
|
Singular Value Decomposition, алгоритм divide and conquer для бидиагональной матрицы (lapack-функция BDSDC). |
|
Singular Value Decomposition, алгоритм bisection для бидиагональных матриц (lapack-функция BDSVDX). |
|
Вычисление собственных значений и собственных векторов обычной квадратной матрицы классическим алгоритмом (lapack-функция GEEV). |
|
Вычисление обобщённых собственных значений и собственных векторов для пары обычных квадратных матриц (lapack-функция GGEV). |
|
Вычисление собственных значений и собственных векторов обычной квадратной матрицы в режиме эксперта (Expert mode), то есть с возможностью влиять на алгоритм расчёта и возможностью получить сопутствующие расчётные данные (lapack-функция GEEVX). |
|
Вычисление собственных значений, верхнетреугольной матрицы в форме Шура и матрицы векторов Шура (lapack-функция GEES). Смотри Разложение Шура. |
|
Вычисление собственных значений и собственных векторов симметричной или эрмитовой (комплексно-сопряжённой) матрицы при помощи алгоритма "divide and conquere" (lapack-функции SYEVD, HEEVD). |
|
Вычисление собственных значений и собственных векторов симметричной или эрмитовой (комплексно-сопряжённой) матрицы при помощи классического алгоритма QR (lapack-функции SYEV, HEEV). |
|
Вычисление собственных значений и собственных векторов симметричной или эрмитовой (комплексно-сопряжённой) матрицы при помощи алгоритма Multiple Relatively Robust Representations, MRRR (lapack-функции SYEVR, HEEVR). |
|
Вычисление собственных значений и собственных векторов симметричной или эрмитовой (комплексно-сопряжённой) матрицы при помощи алгоритма bisection (lapack-функции SYEVX, HEEVX). |
|
Функция-метод расчёта относительных вкладов спектральных компонент по собственным значениям. |
|
Функция-метод расчёта реконструированных и прогнозируемых данных с использованием спектральных компонент входного временного ряда. |
|
Функция-метод расчёта реконструированных компоненент входного временного ряда и их вклады. |
|
Функция-метод расчёта реконструированного временного ряда с использованиеми первых component_count компонент. |