Search
Write a publication
Pull to refresh
1
0

User

Send message
Сложность алгоритма O(m*n*k), рекурсивные алгоритмы не используются. Только кэш-ориентированное разбиение с упаковкой удобной для хранения промежуточных результатов в SIMD регистрах процессора, prefetch. Было бы интересно узнать о каких еще стандартах еще идет речь? В случае с gemm все просто, но в планах trsm и LU, и там уже больше возможностей для маневра, и хотелось бы знать требованиям, если такие есть.

Работает достаточно хорошо, с разным блочным разбиением, транспонированием. Планируется добавить BLAS и CBLAS API и прогнать набор тестов от Netlib с нормальными и пониженными размерами блоков. В 2017 году планируется заменить OpenBLAS в Julia.

Буду рад более детальному обсуждению тестов в новом issue в https://github.com/libmir или по почте ilyayaroshenko на gmail. Знаком с BLIS, работой коллег из вашего университета.
Планируется поддержка OpenCL и CUDE в Mir GLAS.
OpenBLAS написан на ассемблере и Си. Иммеет Fortran ABI и Level 1 скопированный у Netlib.
Intel MKL и Accelerate предоставлены только бинарными файлами. Для Eigen указаны ключи для cmake (в статье и переводе: `cmake -DCMAKE_BUILD_TYPE=Release -DEIGEN_TEST_AVX=ON -DEIGEN_TEST_FMA=ON `), clang стандартный. OpenBLAS вообще по сути на ассемблере написан. Чем собирается Mir доступно на Github проекта, ему тоже явно никаких ключей, кроме `-mcpu=native` не пересылается.
Везде использовались специализированные.
Да, есть CSR и COO. Обращения пока нет. Это первый анонс результатов работы над Mir GLAS. Размер 2К*2К достаточен для тестов. Это не очевидно, но вытекает из логики кэширования, если она с ошибками, то проблемы начинаются на размерах 900x900.
Intel MKL и Accelerate предоставлены только бинарными файлами. Для Eigen указаны ключи для cmake (в статье и переводе: `cmake -DCMAKE_BUILD_TYPE=Release -DEIGEN_TEST_AVX=ON -DEIGEN_TEST_FMA=ON `), clang стандартный. OpenBLAS вообще по сути на ассемблере написан. Чем собирается Mir доступно на Github проекта, ему тоже явно никаких ключей, кроме `-mcpu=native` не пересылается.
1. Mir пока только однопоточный.
2. Результаты для больших размеров такие же как и для 2000*2000. Размеры не игрушечные, а достаточные. Мне было бы очень интересно узнать время умножения матриц 10К*10К вашей любимой BLAS библиотекой из используемых в данной статье :-)

Information

Rating
Does not participate
Registered
Activity