Почему так много пакетов Openblas, и которые из них дают быстрые результаты?

в Ubuntu 20.04, есть много пакетов для OpenBlas.

~$ apt search openblas
p   libopenblas-base                              - Optimized BLAS (linear algebra) library (transitional)                                               
p   libopenblas-dev                               - Optimized BLAS (linear algebra) library (dev, meta)                                                  
p   libopenblas-openmp-dev                        - Optimized BLAS (linear algebra) library (dev, openmp)                                                
p   libopenblas-pthread-dev                       - Optimized BLAS (linear algebra) library (dev, pthread)                                               
p   libopenblas-serial-dev                        - Optimized BLAS (linear algebra) library (dev, serial)                                                
i A libopenblas0                                  - Optimized BLAS (linear algebra) library (meta)                                                       
p   libopenblas0-openmp                           - Optimized BLAS (linear algebra) library (shared lib, openmp)                                         
i A libopenblas0-pthread                          - Optimized BLAS (linear algebra) library (shared lib, pthread)                                        
p   libopenblas0-serial                           - Optimized BLAS (linear algebra) library (shared lib, serial)                                         
p   libopenblas64-0                               - Optimized BLAS (linear algebra) library (shared lib, 64bit, meta)                                    
p   libopenblas64-0-openmp                        - Optimized BLAS (linear algebra) library (shared lib, 64bit, openmp)                                  
p   libopenblas64-0-pthread                       - Optimized BLAS (linear algebra) library (shared lib, 64bit, pthread)                                 
p   libopenblas64-0-serial                        - Optimized BLAS (linear algebra) library (shared lib, 64bit, serial)                                  
p   libopenblas64-dev                             - Optimized BLAS (linear algebra) library (dev, 64bit, meta)                                           
p   libopenblas64-openmp-dev                      - Optimized BLAS (linear algebra) library (dev, 64bit, openmp)                                         
p   libopenblas64-pthread-dev                     - Optimized BLAS (linear algebra) library (dev, 64bit, pthread)                                        
p   libopenblas64-serial-dev                      - Optimized BLAS (linear algebra) library (dev, 64bit, serial)

Какая из этих пакетов даст бы самые быстрые результаты?

Я намерен делать числовые вычисления (в основном диагонализирующиеся матрицы) в октаве GNU. Мой компьютер имеет процессор Intel Core I3-5005U (в случае, если оптимизированный пакет должен зависеть от типа процессора, пожалуйста, упомяните, какой пакет должен быть предпочтительнее на других типах процессоров).

Я заметил, что есть по меньшей мере 10x скорость улучшения скорости, когда OpenBlas используется вместо BLAS по умолчанию.

1
задан 23 February 2021 в 06:33

1 ответ

Ответ на «Почему?» Вопрос может быть - чтобы получить универсальное решение для многих процессоров и платформ.

Технически все эти двоичные пакеты пришли из того же OpenBlas исходного пакета .

Если мы говорим о предоставленных вариантах библиотеки для UPDATE-альтернатив , то после sudo apt-get install install "* OpenBlas *" можно сосчитать 4 группы с 4 вариантами:

 $ sudo Update-альтернативы --config libopenblas 
libopenblas64.so.0-x86_64-linux-gnu libopenblas64.so-x86_64-linux-gnu
libopenblas.so.0-x86_64-linux-gnu libopenblas.so-x86_64-linux-gnu
 

После установки Pthread устанавливается на версию по умолчанию (0 отбора).

Для базового бенчмаркинга мы можем использовать наши старые MKL-TEST.SH скрипта для различных альтернатив для библиотек OpenBlas с использованием Alternalaties Update .

Ниже приведены результаты для моей I7-3537U, для третьего прогона:

библиотека ALT Scilab Julia Python 3 с Numpy R Octave
Pthread 0,31 0,76 0,31 0,39 0,31
openMP 0,24 0,75 0,22 0,31 0,22
Серийный 0,17 0,79 0,17 0,27 0,27
0,17
ATLAS / Liblapack 0,31 0,75 0,32 0,52 0,32
Лапак / liblapack 0,26 0,76 0.30 0.47 0,28
LIBMKL_RT (MKL) 0,16 0,76 0,16 0,22 0,16

Лучший способ это пробежать официальных тестов , но я не могу понять, как запустить их.

1
ответ дан 18 March 2021 в 23:32

Другие вопросы по тегам:

Похожие вопросы: