BLAS (базовые подпрограммы линейной алгебры) предоставляют многие другие языки программирования, такие как Matlab, которые я использую, с быстрыми процедурами, чтобы делать такие вещи, как матричное умножение.Как BLAS включает оптимизацию умножения матричной цепочки
Однако при умножении нескольких матриц существует оптимальный порядок «скобки» матриц. Взятые из wikipedia article:
Например, предположим, что А представляет собой 10 × 30 матрица, В представляет собой 30 × 5 матрицы, а С представляет собой 5 × 60 матрица. Затем
(АВ) С = (10 × 30 × 5) + (10 × 5 × 60) = 1500 + 3000 = 4500 операций
А (ВС) = (30 × 5 × 60) + (10 × 30 × 60) = 9000 + 18000 = 27000 операций.
В статье обсуждаются способы решения оптимального порядка этого умножения. Мой вопрос заключается в том, какие из этих процедур оптимизации используются в BLAS? Если нет, могу ли я получить более высокую скорость, если я четко определяю порядок умножения матриц в таких программах, как Matlab, с соответствующим использованием скобок?