home.social

#mkl — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #mkl, aggregated by home.social.

  1. Sometimes it makes sense to act smart rather than brute-force.

    For example, when Intel makes another #MKL release and you get version like "2026.0.0", and you need to figure out the remaining "-n" suffix for the .deb packages. And you really don't want to start a Debian container to figure that out.

    Well, you could just keep brute-forcing until you find the right number. Or you can figure out that the index URL is apt.repos.intel.com/oneapi/dis and find out that the correct number is 908…

    Thanks to @thesamesam for finding the spec. My search-engine-fu would only come up with completely useless guides to newbies. Even after adding the f-word.

    The spec's at wiki.debian.org/DebianReposito.

    #Gentoo

  2. Sometimes it makes sense to act smart rather than brute-force.

    For example, when Intel makes another #MKL release and you get version like "2026.0.0", and you need to figure out the remaining "-n" suffix for the .deb packages. And you really don't want to start a Debian container to figure that out.

    Well, you could just keep brute-forcing until you find the right number. Or you can figure out that the index URL is apt.repos.intel.com/oneapi/dis and find out that the correct number is 908…

    Thanks to @thesamesam for finding the spec. My search-engine-fu would only come up with completely useless guides to newbies. Even after adding the f-word.

    The spec's at wiki.debian.org/DebianReposito.

    #Gentoo

  3. Sometimes it makes sense to act smart rather than brute-force.

    For example, when Intel makes another #MKL release and you get version like "2026.0.0", and you need to figure out the remaining "-n" suffix for the .deb packages. And you really don't want to start a Debian container to figure that out.

    Well, you could just keep brute-forcing until you find the right number. Or you can figure out that the index URL is apt.repos.intel.com/oneapi/dis and find out that the correct number is 908…

    Thanks to @thesamesam for finding the spec. My search-engine-fu would only come up with completely useless guides to newbies. Even after adding the f-word.

    The spec's at wiki.debian.org/DebianReposito.

    #Gentoo

  4. Sometimes it makes sense to act smart rather than brute-force.

    For example, when Intel makes another #MKL release and you get version like "2026.0.0", and you need to figure out the remaining "-n" suffix for the .deb packages. And you really don't want to start a Debian container to figure that out.

    Well, you could just keep brute-forcing until you find the right number. Or you can figure out that the index URL is apt.repos.intel.com/oneapi/dis and find out that the correct number is 908…

    Thanks to @thesamesam for finding the spec. My search-engine-fu would only come up with completely useless guides to newbies. Even after adding the f-word.

    The spec's at wiki.debian.org/DebianReposito.

    #Gentoo

  5. Sometimes it makes sense to act smart rather than brute-force.

    For example, when Intel makes another #MKL release and you get version like "2026.0.0", and you need to figure out the remaining "-n" suffix for the .deb packages. And you really don't want to start a Debian container to figure that out.

    Well, you could just keep brute-forcing until you find the right number. Or you can figure out that the index URL is apt.repos.intel.com/oneapi/dis and find out that the correct number is 908…

    Thanks to @thesamesam for finding the spec. My search-engine-fu would only come up with completely useless guides to newbies. Even after adding the f-word.

    The spec's at wiki.debian.org/DebianReposito.

    #Gentoo

  6. 1. Zdobądź trochę wiedzy o paczkach #BLAS / #LAPACK w ramach bejmopracy.
    2. Odkryj, że paczki #MKL w #Gentoo są mocno nieaktualne i ciut zepsute. Przejmij je, zaktualizuj, ulepsz.
    3. Zainteresuj się #FlexiBLAS. Zacznij eksperymentować. Wrzuć paczkę do Gentoo.
    4. Odkryj, że mechanizm dynamicznego przełączania BLAS / LAPACK niezbyt dobrze działa. Zaproponuj migrację do FlexiBLAS i przygotuj próbne zmiany.
    5. Zauważ niespójności we wsparciu ILP64. Zaproponuj poprawki.
    6. Odkryj, że wszystkie paczki BLAS / LAPACK w Gentoo są praktycznie bez opiekuna.

    No więc wygląda na to, że jestem nowym opiekunem całego kompletu. Pracuję nad poprawkamj dla ILP64, a następnie będę musiał zaktualizować łatki dla migracji do FlexiBLAS.

  7. 1. Zdobądź trochę wiedzy o paczkach #BLAS / #LAPACK w ramach bejmopracy.
    2. Odkryj, że paczki #MKL w #Gentoo są mocno nieaktualne i ciut zepsute. Przejmij je, zaktualizuj, ulepsz.
    3. Zainteresuj się #FlexiBLAS. Zacznij eksperymentować. Wrzuć paczkę do Gentoo.
    4. Odkryj, że mechanizm dynamicznego przełączania BLAS / LAPACK niezbyt dobrze działa. Zaproponuj migrację do FlexiBLAS i przygotuj próbne zmiany.
    5. Zauważ niespójności we wsparciu ILP64. Zaproponuj poprawki.
    6. Odkryj, że wszystkie paczki BLAS / LAPACK w Gentoo są praktycznie bez opiekuna.

    No więc wygląda na to, że jestem nowym opiekunem całego kompletu. Pracuję nad poprawkamj dla ILP64, a następnie będę musiał zaktualizować łatki dla migracji do FlexiBLAS.

  8. 1. Zdobądź trochę wiedzy o paczkach #BLAS / #LAPACK w ramach bejmopracy.
    2. Odkryj, że paczki #MKL w #Gentoo są mocno nieaktualne i ciut zepsute. Przejmij je, zaktualizuj, ulepsz.
    3. Zainteresuj się #FlexiBLAS. Zacznij eksperymentować. Wrzuć paczkę do Gentoo.
    4. Odkryj, że mechanizm dynamicznego przełączania BLAS / LAPACK niezbyt dobrze działa. Zaproponuj migrację do FlexiBLAS i przygotuj próbne zmiany.
    5. Zauważ niespójności we wsparciu ILP64. Zaproponuj poprawki.
    6. Odkryj, że wszystkie paczki BLAS / LAPACK w Gentoo są praktycznie bez opiekuna.

    No więc wygląda na to, że jestem nowym opiekunem całego kompletu. Pracuję nad poprawkamj dla ILP64, a następnie będę musiał zaktualizować łatki dla migracji do FlexiBLAS.

  9. 1. Zdobądź trochę wiedzy o paczkach #BLAS / #LAPACK w ramach bejmopracy.
    2. Odkryj, że paczki #MKL w #Gentoo są mocno nieaktualne i ciut zepsute. Przejmij je, zaktualizuj, ulepsz.
    3. Zainteresuj się #FlexiBLAS. Zacznij eksperymentować. Wrzuć paczkę do Gentoo.
    4. Odkryj, że mechanizm dynamicznego przełączania BLAS / LAPACK niezbyt dobrze działa. Zaproponuj migrację do FlexiBLAS i przygotuj próbne zmiany.
    5. Zauważ niespójności we wsparciu ILP64. Zaproponuj poprawki.
    6. Odkryj, że wszystkie paczki BLAS / LAPACK w Gentoo są praktycznie bez opiekuna.

    No więc wygląda na to, że jestem nowym opiekunem całego kompletu. Pracuję nad poprawkamj dla ILP64, a następnie będę musiał zaktualizować łatki dla migracji do FlexiBLAS.

  10. 1. Zdobądź trochę wiedzy o paczkach #BLAS / #LAPACK w ramach bejmopracy.
    2. Odkryj, że paczki #MKL w #Gentoo są mocno nieaktualne i ciut zepsute. Przejmij je, zaktualizuj, ulepsz.
    3. Zainteresuj się #FlexiBLAS. Zacznij eksperymentować. Wrzuć paczkę do Gentoo.
    4. Odkryj, że mechanizm dynamicznego przełączania BLAS / LAPACK niezbyt dobrze działa. Zaproponuj migrację do FlexiBLAS i przygotuj próbne zmiany.
    5. Zauważ niespójności we wsparciu ILP64. Zaproponuj poprawki.
    6. Odkryj, że wszystkie paczki BLAS / LAPACK w Gentoo są praktycznie bez opiekuna.

    No więc wygląda na to, że jestem nowym opiekunem całego kompletu. Pracuję nad poprawkamj dla ILP64, a następnie będę musiał zaktualizować łatki dla migracji do FlexiBLAS.

  11. 1. Learn a bit about #BLAS / #LAPACK packaging for dayjob.
    2. Learn that #MKL in #Gentoo is quite outdated. Take it over, bump it and improve the packaging.
    3. Get curious about #FlexiBLAS. Start playing with it. Package it for #Gentoo.
    4. Learn that runtime BLAS / LAPACK switching is quite broken. Come up with a FlexiBLAS transition plan and a proof-of-concept.
    5. Notice inconsistency in ILP64 support flags. Propose unifying the behavior.
    6. Learn that BLAS / LAPACK packages in Gentoo are pretty much unmaintained.

    Well, looks like I'm the new maintainer of the whole stack, I'm working on consistent ILP64 support now, and then I'll have to rebase the FlexiBLAS transition bits.

  12. 1. Learn a bit about #BLAS / #LAPACK packaging for dayjob.
    2. Learn that #MKL in #Gentoo is quite outdated. Take it over, bump it and improve the packaging.
    3. Get curious about #FlexiBLAS. Start playing with it. Package it for #Gentoo.
    4. Learn that runtime BLAS / LAPACK switching is quite broken. Come up with a FlexiBLAS transition plan and a proof-of-concept.
    5. Notice inconsistency in ILP64 support flags. Propose unifying the behavior.
    6. Learn that BLAS / LAPACK packages in Gentoo are pretty much unmaintained.

    Well, looks like I'm the new maintainer of the whole stack, I'm working on consistent ILP64 support now, and then I'll have to rebase the FlexiBLAS transition bits.

  13. 1. Learn a bit about #BLAS / #LAPACK packaging for dayjob.
    2. Learn that #MKL in #Gentoo is quite outdated. Take it over, bump it and improve the packaging.
    3. Get curious about #FlexiBLAS. Start playing with it. Package it for #Gentoo.
    4. Learn that runtime BLAS / LAPACK switching is quite broken. Come up with a FlexiBLAS transition plan and a proof-of-concept.
    5. Notice inconsistency in ILP64 support flags. Propose unifying the behavior.
    6. Learn that BLAS / LAPACK packages in Gentoo are pretty much unmaintained.

    Well, looks like I'm the new maintainer of the whole stack, I'm working on consistent ILP64 support now, and then I'll have to rebase the FlexiBLAS transition bits.

  14. 1. Learn a bit about #BLAS / #LAPACK packaging for dayjob.
    2. Learn that #MKL in #Gentoo is quite outdated. Take it over, bump it and improve the packaging.
    3. Get curious about #FlexiBLAS. Start playing with it. Package it for #Gentoo.
    4. Learn that runtime BLAS / LAPACK switching is quite broken. Come up with a FlexiBLAS transition plan and a proof-of-concept.
    5. Notice inconsistency in ILP64 support flags. Propose unifying the behavior.
    6. Learn that BLAS / LAPACK packages in Gentoo are pretty much unmaintained.

    Well, looks like I'm the new maintainer of the whole stack, I'm working on consistent ILP64 support now, and then I'll have to rebase the FlexiBLAS transition bits.

  15. 1. Learn a bit about #BLAS / #LAPACK packaging for dayjob.
    2. Learn that #MKL in #Gentoo is quite outdated. Take it over, bump it and improve the packaging.
    3. Get curious about #FlexiBLAS. Start playing with it. Package it for #Gentoo.
    4. Learn that runtime BLAS / LAPACK switching is quite broken. Come up with a FlexiBLAS transition plan and a proof-of-concept.
    5. Notice inconsistency in ILP64 support flags. Propose unifying the behavior.
    6. Learn that BLAS / LAPACK packages in Gentoo are pretty much unmaintained.

    Well, looks like I'm the new maintainer of the whole stack, I'm working on consistent ILP64 support now, and then I'll have to rebase the FlexiBLAS transition bits.

  16. Powiedzmy, że potrzebujesz pobrać wersję biblioteki Intel #MKL.

    Nie możesz do tego używać plików pkg-config, bo nie każda kombinacja dystrybucji z wersją mkl instaluje te pliki. Na dodatek, nie pokazując nikogo palcami, jedna dystrybucja instaluje pliki pkg-config z "debian" w polu wersji.

    Jest stała INTEL_MKL_VERSION, którą można zgarnąć preprocesorem C. Tyle że semantyka tej stałej zależy… od wersji. Jeżeli mkl wydawane jest jako "<major>.<update>.<patch>", to wersje przed 2025.0.0 konstruowały tę stałą z połączenia <major> + <minor> + <update> (gdzie <minor> zdaje się zawsze być zerem, a <patch> nie jest uwzględniane), a te późniejsze jako bardziej logiczne <major> + <update> + <patch>.

    Fakt, da się coś z tym zrobić. Najpierw mielisz <major>, a następnie resztę, stosując odrębny algorytm w zależności, czy jest >= 2025, czy nie. Dla wersji sprzed 2025 dostajesz wersję uciętą do drugiego komponentu. Działa, ale nadal "zabawna" przypadłość.

  17. Powiedzmy, że potrzebujesz pobrać wersję biblioteki Intel #MKL.

    Nie możesz do tego używać plików pkg-config, bo nie każda kombinacja dystrybucji z wersją mkl instaluje te pliki. Na dodatek, nie pokazując nikogo palcami, jedna dystrybucja instaluje pliki pkg-config z "debian" w polu wersji.

    Jest stała INTEL_MKL_VERSION, którą można zgarnąć preprocesorem C. Tyle że semantyka tej stałej zależy… od wersji. Jeżeli mkl wydawane jest jako "<major>.<update>.<patch>", to wersje przed 2025.0.0 konstruowały tę stałą z połączenia <major> + <minor> + <update> (gdzie <minor> zdaje się zawsze być zerem, a <patch> nie jest uwzględniane), a te późniejsze jako bardziej logiczne <major> + <update> + <patch>.

    Fakt, da się coś z tym zrobić. Najpierw mielisz <major>, a następnie resztę, stosując odrębny algorytm w zależności, czy jest >= 2025, czy nie. Dla wersji sprzed 2025 dostajesz wersję uciętą do drugiego komponentu. Działa, ale nadal "zabawna" przypadłość.

  18. Powiedzmy, że potrzebujesz pobrać wersję biblioteki Intel #MKL.

    Nie możesz do tego używać plików pkg-config, bo nie każda kombinacja dystrybucji z wersją mkl instaluje te pliki. Na dodatek, nie pokazując nikogo palcami, jedna dystrybucja instaluje pliki pkg-config z "debian" w polu wersji.

    Jest stała INTEL_MKL_VERSION, którą można zgarnąć preprocesorem C. Tyle że semantyka tej stałej zależy… od wersji. Jeżeli mkl wydawane jest jako "<major>.<update>.<patch>", to wersje przed 2025.0.0 konstruowały tę stałą z połączenia <major> + <minor> + <update> (gdzie <minor> zdaje się zawsze być zerem, a <patch> nie jest uwzględniane), a te późniejsze jako bardziej logiczne <major> + <update> + <patch>.

    Fakt, da się coś z tym zrobić. Najpierw mielisz <major>, a następnie resztę, stosując odrębny algorytm w zależności, czy jest >= 2025, czy nie. Dla wersji sprzed 2025 dostajesz wersję uciętą do drugiego komponentu. Działa, ale nadal "zabawna" przypadłość.

  19. Powiedzmy, że potrzebujesz pobrać wersję biblioteki Intel #MKL.

    Nie możesz do tego używać plików pkg-config, bo nie każda kombinacja dystrybucji z wersją mkl instaluje te pliki. Na dodatek, nie pokazując nikogo palcami, jedna dystrybucja instaluje pliki pkg-config z "debian" w polu wersji.

    Jest stała INTEL_MKL_VERSION, którą można zgarnąć preprocesorem C. Tyle że semantyka tej stałej zależy… od wersji. Jeżeli mkl wydawane jest jako "<major>.<update>.<patch>", to wersje przed 2025.0.0 konstruowały tę stałą z połączenia <major> + <minor> + <update> (gdzie <minor> zdaje się zawsze być zerem, a <patch> nie jest uwzględniane), a te późniejsze jako bardziej logiczne <major> + <update> + <patch>.

    Fakt, da się coś z tym zrobić. Najpierw mielisz <major>, a następnie resztę, stosując odrębny algorytm w zależności, czy jest >= 2025, czy nie. Dla wersji sprzed 2025 dostajesz wersję uciętą do drugiego komponentu. Działa, ale nadal "zabawna" przypadłość.

  20. Powiedzmy, że potrzebujesz pobrać wersję biblioteki Intel #MKL.

    Nie możesz do tego używać plików pkg-config, bo nie każda kombinacja dystrybucji z wersją mkl instaluje te pliki. Na dodatek, nie pokazując nikogo palcami, jedna dystrybucja instaluje pliki pkg-config z "debian" w polu wersji.

    Jest stała INTEL_MKL_VERSION, którą można zgarnąć preprocesorem C. Tyle że semantyka tej stałej zależy… od wersji. Jeżeli mkl wydawane jest jako "<major>.<update>.<patch>", to wersje przed 2025.0.0 konstruowały tę stałą z połączenia <major> + <minor> + <update> (gdzie <minor> zdaje się zawsze być zerem, a <patch> nie jest uwzględniane), a te późniejsze jako bardziej logiczne <major> + <update> + <patch>.

    Fakt, da się coś z tym zrobić. Najpierw mielisz <major>, a następnie resztę, stosując odrębny algorytm w zależności, czy jest >= 2025, czy nie. Dla wersji sprzed 2025 dostajesz wersję uciętą do drugiego komponentu. Działa, ale nadal "zabawna" przypadłość.

  21. So you need to get the version of Intel #MKL.

    You can't really take it out of the pkg-config files, because not every distro + mkl version combo supplies these files. On top of that, without pointing fingers, certain distribution installs pkg-config files with "debian" in the version field.

    Well, there's INTEL_MKL_VERSION you can get via the C preprocessor, right? Except that its semantics depend… on mkl version. Given that mkl is released as "<major>.<update>.<patch>", versions prior to 2025.0.0 constructed the version number from <major> + <minor> + <update> (where <minor> seems to be always 0, and <patch> was not included), and 2025.0.0 forward use the more logical <major> + <update> + <patch>.

    Well, yeah, it's kinda doable. You parse the major first, and parse the rest depending on whether it's >= 2025 or not. For versions prior to 2025, you get it truncated to update. It works, but still kinda funny.

    #WTF

  22. So you need to get the version of Intel #MKL.

    You can't really take it out of the pkg-config files, because not every distro + mkl version combo supplies these files. On top of that, without pointing fingers, certain distribution installs pkg-config files with "debian" in the version field.

    Well, there's INTEL_MKL_VERSION you can get via the C preprocessor, right? Except that its semantics depend… on mkl version. Given that mkl is released as "<major>.<update>.<patch>", versions prior to 2025.0.0 constructed the version number from <major> + <minor> + <update> (where <minor> seems to be always 0, and <patch> was not included), and 2025.0.0 forward use the more logical <major> + <update> + <patch>.

    Well, yeah, it's kinda doable. You parse the major first, and parse the rest depending on whether it's >= 2025 or not. For versions prior to 2025, you get it truncated to update. It works, but still kinda funny.

    #WTF

  23. So you need to get the version of Intel #MKL.

    You can't really take it out of the pkg-config files, because not every distro + mkl version combo supplies these files. On top of that, without pointing fingers, certain distribution installs pkg-config files with "debian" in the version field.

    Well, there's INTEL_MKL_VERSION you can get via the C preprocessor, right? Except that its semantics depend… on mkl version. Given that mkl is released as "<major>.<update>.<patch>", versions prior to 2025.0.0 constructed the version number from <major> + <minor> + <update> (where <minor> seems to be always 0, and <patch> was not included), and 2025.0.0 forward use the more logical <major> + <update> + <patch>.

    Well, yeah, it's kinda doable. You parse the major first, and parse the rest depending on whether it's >= 2025 or not. For versions prior to 2025, you get it truncated to update. It works, but still kinda funny.

    #WTF

  24. So you need to get the version of Intel #MKL.

    You can't really take it out of the pkg-config files, because not every distro + mkl version combo supplies these files. On top of that, without pointing fingers, certain distribution installs pkg-config files with "debian" in the version field.

    Well, there's INTEL_MKL_VERSION you can get via the C preprocessor, right? Except that its semantics depend… on mkl version. Given that mkl is released as "<major>.<update>.<patch>", versions prior to 2025.0.0 constructed the version number from <major> + <minor> + <update> (where <minor> seems to be always 0, and <patch> was not included), and 2025.0.0 forward use the more logical <major> + <update> + <patch>.

    Well, yeah, it's kinda doable. You parse the major first, and parse the rest depending on whether it's >= 2025 or not. For versions prior to 2025, you get it truncated to update. It works, but still kinda funny.

    #WTF

  25. So you need to get the version of Intel #MKL.

    You can't really take it out of the pkg-config files, because not every distro + mkl version combo supplies these files. On top of that, without pointing fingers, certain distribution installs pkg-config files with "debian" in the version field.

    Well, there's INTEL_MKL_VERSION you can get via the C preprocessor, right? Except that its semantics depend… on mkl version. Given that mkl is released as "<major>.<update>.<patch>", versions prior to 2025.0.0 constructed the version number from <major> + <minor> + <update> (where <minor> seems to be always 0, and <patch> was not included), and 2025.0.0 forward use the more logical <major> + <update> + <patch>.

    Well, yeah, it's kinda doable. You parse the major first, and parse the rest depending on whether it's >= 2025 or not. For versions prior to 2025, you get it truncated to update. It works, but still kinda funny.

    #WTF

  26. Question for the #rstats crowd. Do you disable hyperthreads when you run analyses in R with a multithreaded version of #blas e.g. #openblas #mkl etc ?

  27. Question for the #rstats crowd. Do you disable hyperthreads when you run analyses in R with a multithreaded version of #blas e.g. #openblas #mkl etc ?

  28. Question for the #rstats crowd. Do you disable hyperthreads when you run analyses in R with a multithreaded version of #blas e.g. #openblas #mkl etc ?

  29. Question for the #rstats crowd. Do you disable hyperthreads when you run analyses in R with a multithreaded version of #blas e.g. #openblas #mkl etc ?

  30. Question for the #rstats crowd. Do you disable hyperthreads when you run analyses in R with a multithreaded version of #blas e.g. #openblas #mkl etc ?

  31. @hannorein
    No, I don’t expect a huge difference in per-core performance either, though I haven’t compared benchmarks yet. Niagara's Skylake CPUs already supported #AXV512 (they even waited a bit for Skylake to be released) which gave a good #performance boost over AVX2. But core-density is the new MHz. 😉
    Though you may want to recompile your code if you’re currently directly linking to #MKL since Trillium has AMD CPUs. BLIS is faster on those.
    #HPC @zyrxvo

  32. @hannorein
    No, I don’t expect a huge difference in per-core performance either, though I haven’t compared benchmarks yet. Niagara's Skylake CPUs already supported #AXV512 (they even waited a bit for Skylake to be released) which gave a good #performance boost over AVX2. But core-density is the new MHz. 😉
    Though you may want to recompile your code if you’re currently directly linking to #MKL since Trillium has AMD CPUs. BLIS is faster on those.
    #HPC @zyrxvo

  33. @hannorein
    No, I don’t expect a huge difference in per-core performance either, though I haven’t compared benchmarks yet. Niagara's Skylake CPUs already supported #AXV512 (they even waited a bit for Skylake to be released) which gave a good #performance boost over AVX2. But core-density is the new MHz. 😉
    Though you may want to recompile your code if you’re currently directly linking to #MKL since Trillium has AMD CPUs. BLIS is faster on those.
    #HPC @zyrxvo

  34. @hannorein
    No, I don’t expect a huge difference in per-core performance either, though I haven’t compared benchmarks yet. Niagara's Skylake CPUs already supported #AXV512 (they even waited a bit for Skylake to be released) which gave a good #performance boost over AVX2. But core-density is the new MHz. 😉
    Though you may want to recompile your code if you’re currently directly linking to #MKL since Trillium has AMD CPUs. BLIS is faster on those.
    #HPC @zyrxvo

  35. @hannorein
    No, I don’t expect a huge difference in per-core performance either, though I haven’t compared benchmarks yet. Niagara's Skylake CPUs already supported #AXV512 (they even waited a bit for Skylake to be released) which gave a good #performance boost over AVX2. But core-density is the new MHz. 😉
    Though you may want to recompile your code if you’re currently directly linking to #MKL since Trillium has AMD CPUs. BLIS is faster on those.
    #HPC @zyrxvo

  36. Первый взгляд на производительность CPU реализации floating-point GEMM на языке Mojo

    Сравниваем производительность реализаций floating-point GEMM из OpenBLAS, Eigen и MKl с реализацией на новом языке программирования Mojo.

    habr.com/ru/articles/783138/

    #mojo #gemm #modular #openblas #eigen #mkl