From e4793b01f3eab379c6139c2c9c5362fdf17ed9a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mos=C3=A8=20Giordano?= Date: Fri, 26 Jan 2024 00:17:43 +0000 Subject: [PATCH 1/2] [OpenBLAS_jll] Update to new build with BFloat16 kernels The new build also includes patches to * improve multithreading * fix builds of BFloat16 kernels on AVX512BF16 --- deps/checksums/openblas | 184 +++++++++--------- deps/openblas.mk | 19 +- deps/patches/neoverse-generic-kernels.patch | 19 -- deps/patches/openblas-avx512bf-kernels.patch | 107 ++++++++++ deps/patches/openblas-darwin-sve.patch | 34 ++++ .../openblas-gemv-multithreading.patch | 22 +++ deps/patches/openblas-ofast-power.patch | 28 ++- stdlib/OpenBLAS_jll/Project.toml | 2 +- 8 files changed, 292 insertions(+), 123 deletions(-) delete mode 100644 deps/patches/neoverse-generic-kernels.patch create mode 100644 deps/patches/openblas-avx512bf-kernels.patch create mode 100644 deps/patches/openblas-darwin-sve.patch create mode 100644 deps/patches/openblas-gemv-multithreading.patch diff --git a/deps/checksums/openblas b/deps/checksums/openblas index d4671bff2c6f2..34eca34c4ec2c 100644 --- a/deps/checksums/openblas +++ b/deps/checksums/openblas @@ -1,94 +1,94 @@ -OpenBLAS.v0.3.26+1.aarch64-apple-darwin-libgfortran5.tar.gz/md5/547a98e1757f61f572a414becc563466 -OpenBLAS.v0.3.26+1.aarch64-apple-darwin-libgfortran5.tar.gz/sha512/7645415bfb9b7bc21f3008aea2a508d727c81dbcf016eea4a86dbdd7cf20af66739fc059b1de10bbfc6d08d1de56ca4e36f1aaa765ab4ee8a30bccfd1824c5bd -OpenBLAS.v0.3.26+1.aarch64-linux-gnu-libgfortran3.tar.gz/md5/e809969126585f1c1ba64d13d881bb42 -OpenBLAS.v0.3.26+1.aarch64-linux-gnu-libgfortran3.tar.gz/sha512/d8d32f1ca319c51a5c34984785790ea1dce1b87913ae7546341e31be49a4c682fddca4e075a3f66875a239952611675872e57a5ca1ca1c5e01320cc176d83ab4 -OpenBLAS.v0.3.26+1.aarch64-linux-gnu-libgfortran4.tar.gz/md5/b464e001789eb4fa2d4e380c0eea3917 -OpenBLAS.v0.3.26+1.aarch64-linux-gnu-libgfortran4.tar.gz/sha512/b9b0eb0a58f2684deb2769513c9536091f53eebb7c9b9c9248a84e39c1b9b5d314c08bb95a490e66e94b3848ea29d989ec943b07535be4ad48692006ca688d9c -OpenBLAS.v0.3.26+1.aarch64-linux-gnu-libgfortran5.tar.gz/md5/650898300d9ead8e3baf3a6b66a931b8 -OpenBLAS.v0.3.26+1.aarch64-linux-gnu-libgfortran5.tar.gz/sha512/033a558868fb20872c37257a4b440a121136e3c22d8df9cbed19b66ef859948215f0edd3cba8767bc66869102ff9fd6f6661e7b3a307819cf8e89077052b5451 -OpenBLAS.v0.3.26+1.aarch64-linux-musl-libgfortran3.tar.gz/md5/d5b139d340e28436cb446a6157f64419 -OpenBLAS.v0.3.26+1.aarch64-linux-musl-libgfortran3.tar.gz/sha512/1e4bc19174c8481889eb3cca6380a11ee6013066198e268bc718440b3f5b017915a3f446a1d75c53c4230bace1569ba54e14366b6af47da9bf49e52f6efb631a -OpenBLAS.v0.3.26+1.aarch64-linux-musl-libgfortran4.tar.gz/md5/d106ae8404d19375caa0cf153f5c58e1 -OpenBLAS.v0.3.26+1.aarch64-linux-musl-libgfortran4.tar.gz/sha512/e06c765c2da299cbabd558546bd9d4e5f83b567c455ec59d59a3c53c7e36fca1ac51bbb87c59267e31c7b3028c406e1266c0f081232d04bb1b71aa7eba80cd31 -OpenBLAS.v0.3.26+1.aarch64-linux-musl-libgfortran5.tar.gz/md5/35348019d6532f9632ec5f42c9e63fbe -OpenBLAS.v0.3.26+1.aarch64-linux-musl-libgfortran5.tar.gz/sha512/3bcbd0a5ee955ce8617f00de6440675cf3bc89adca6d7eaed46f9087c9a77f701737bc019993a488eef0cec7712323287c418a632fee66e38e756d5b550cf3a0 -OpenBLAS.v0.3.26+1.armv6l-linux-gnueabihf-libgfortran3.tar.gz/md5/df45b3895e2effb12aeab4517721571e -OpenBLAS.v0.3.26+1.armv6l-linux-gnueabihf-libgfortran3.tar.gz/sha512/e5be7b0e7f2733aa462c36057fcf728f8c87150a6ef856e2039e6a0811a6806ff3ee196febdb3173243b6be9a6da9c6d3a4c55592f19c9aa08dba94715bc3d4b -OpenBLAS.v0.3.26+1.armv6l-linux-gnueabihf-libgfortran4.tar.gz/md5/b10b159a1e41843bc6de576f42bfcf47 -OpenBLAS.v0.3.26+1.armv6l-linux-gnueabihf-libgfortran4.tar.gz/sha512/0e831086f4a80d52f3ade88ab9760a4edf3c636e5ca729347f0a173c1f671c6c2cfc732d68e26fa21556257936b9827a7a4230aa222a825a354a2ad1d60e20b5 -OpenBLAS.v0.3.26+1.armv6l-linux-gnueabihf-libgfortran5.tar.gz/md5/2aa72a7dfcc19d414a6f8f81de482e69 -OpenBLAS.v0.3.26+1.armv6l-linux-gnueabihf-libgfortran5.tar.gz/sha512/d31d2e3129b173b844917006a2fcdd9c08ecb5cba62c431c30651e4088dd2d25cf00ee5fb0f6b403c6ff599ddff59e895bf0669f124839f753b213e2bae4579a -OpenBLAS.v0.3.26+1.armv6l-linux-musleabihf-libgfortran3.tar.gz/md5/ea1476eb36613ec5885cc969f2d8face -OpenBLAS.v0.3.26+1.armv6l-linux-musleabihf-libgfortran3.tar.gz/sha512/10be657bd3f6d579b1b6eb979e42d871d77211bdd2338a8d9de9a2a54f5c6bde45d6a2fbeff1c7a1d965d8553cb248087d93b3745fb0af1fda5af2a8a2d65074 -OpenBLAS.v0.3.26+1.armv6l-linux-musleabihf-libgfortran4.tar.gz/md5/68017857ebd4fab5564763451b693dcf -OpenBLAS.v0.3.26+1.armv6l-linux-musleabihf-libgfortran4.tar.gz/sha512/9907e1a60f73b7184c2917713a286660fc9b500122cc546ad3849e65de7f36106d51d0fabb00f7168ff6f63bb7fdfc9898a155c017a37ec0e8faf7aeeef05108 -OpenBLAS.v0.3.26+1.armv6l-linux-musleabihf-libgfortran5.tar.gz/md5/f531cec3c06a0513d68571b118dc20b6 -OpenBLAS.v0.3.26+1.armv6l-linux-musleabihf-libgfortran5.tar.gz/sha512/41ae9860625323686adf0b2d0cb4a9df59d99a8df2fe0f4a01a0b9ce0aea06017d9132191d883eba62893e43189667a7dc13caf89dced5666ce5d4346be656ce -OpenBLAS.v0.3.26+1.armv7l-linux-gnueabihf-libgfortran3.tar.gz/md5/df45b3895e2effb12aeab4517721571e -OpenBLAS.v0.3.26+1.armv7l-linux-gnueabihf-libgfortran3.tar.gz/sha512/e5be7b0e7f2733aa462c36057fcf728f8c87150a6ef856e2039e6a0811a6806ff3ee196febdb3173243b6be9a6da9c6d3a4c55592f19c9aa08dba94715bc3d4b -OpenBLAS.v0.3.26+1.armv7l-linux-gnueabihf-libgfortran4.tar.gz/md5/b10b159a1e41843bc6de576f42bfcf47 -OpenBLAS.v0.3.26+1.armv7l-linux-gnueabihf-libgfortran4.tar.gz/sha512/0e831086f4a80d52f3ade88ab9760a4edf3c636e5ca729347f0a173c1f671c6c2cfc732d68e26fa21556257936b9827a7a4230aa222a825a354a2ad1d60e20b5 -OpenBLAS.v0.3.26+1.armv7l-linux-gnueabihf-libgfortran5.tar.gz/md5/2aa72a7dfcc19d414a6f8f81de482e69 -OpenBLAS.v0.3.26+1.armv7l-linux-gnueabihf-libgfortran5.tar.gz/sha512/d31d2e3129b173b844917006a2fcdd9c08ecb5cba62c431c30651e4088dd2d25cf00ee5fb0f6b403c6ff599ddff59e895bf0669f124839f753b213e2bae4579a -OpenBLAS.v0.3.26+1.armv7l-linux-musleabihf-libgfortran3.tar.gz/md5/ea1476eb36613ec5885cc969f2d8face -OpenBLAS.v0.3.26+1.armv7l-linux-musleabihf-libgfortran3.tar.gz/sha512/10be657bd3f6d579b1b6eb979e42d871d77211bdd2338a8d9de9a2a54f5c6bde45d6a2fbeff1c7a1d965d8553cb248087d93b3745fb0af1fda5af2a8a2d65074 -OpenBLAS.v0.3.26+1.armv7l-linux-musleabihf-libgfortran4.tar.gz/md5/68017857ebd4fab5564763451b693dcf -OpenBLAS.v0.3.26+1.armv7l-linux-musleabihf-libgfortran4.tar.gz/sha512/9907e1a60f73b7184c2917713a286660fc9b500122cc546ad3849e65de7f36106d51d0fabb00f7168ff6f63bb7fdfc9898a155c017a37ec0e8faf7aeeef05108 -OpenBLAS.v0.3.26+1.armv7l-linux-musleabihf-libgfortran5.tar.gz/md5/f531cec3c06a0513d68571b118dc20b6 -OpenBLAS.v0.3.26+1.armv7l-linux-musleabihf-libgfortran5.tar.gz/sha512/41ae9860625323686adf0b2d0cb4a9df59d99a8df2fe0f4a01a0b9ce0aea06017d9132191d883eba62893e43189667a7dc13caf89dced5666ce5d4346be656ce -OpenBLAS.v0.3.26+1.i686-linux-gnu-libgfortran3.tar.gz/md5/686269fba3e296013ccb33d4befff265 -OpenBLAS.v0.3.26+1.i686-linux-gnu-libgfortran3.tar.gz/sha512/b1894c97de594def1f0b37d4d702d56d9ddd6a2897a29bb33b1579c222a7d89409658efcc07c8aa9673ca95821e5ed1b97dd41d8bcf3b2edee065ea92761218f -OpenBLAS.v0.3.26+1.i686-linux-gnu-libgfortran4.tar.gz/md5/c36ad067917ac7a6e7d1399cb6f58525 -OpenBLAS.v0.3.26+1.i686-linux-gnu-libgfortran4.tar.gz/sha512/782b8cbb7b7655b1cf22e6a9bd10aec38f6624525076c74b66804796b3879fd722182705ca6043e16b13fd2a9bef1a2354dfbc8ef12db65dc94aa6864733dce1 -OpenBLAS.v0.3.26+1.i686-linux-gnu-libgfortran5.tar.gz/md5/814c2bcb8e25eda7559849867aec9c80 -OpenBLAS.v0.3.26+1.i686-linux-gnu-libgfortran5.tar.gz/sha512/a9407e78f37953558ea48b4c395bcd1382b9c869043fd445a38a1f1db13551a0fe99dec5d503701ef86ac75e1f1ef46e2cd8912486cdf382ebe38efd9996baa1 -OpenBLAS.v0.3.26+1.i686-linux-musl-libgfortran3.tar.gz/md5/d795cd8b35e6d40975db704af83b4720 -OpenBLAS.v0.3.26+1.i686-linux-musl-libgfortran3.tar.gz/sha512/8fae3a4501b0ef0203c9b79c2b98b5372393d88e647fc7516532fa425998e6117e7d011ac3c28d41f0c52c9dcc06c2d2817490a275863d920fcab87f48c5886e -OpenBLAS.v0.3.26+1.i686-linux-musl-libgfortran4.tar.gz/md5/7491d844661f1c54f0a57adab6f2bb5b -OpenBLAS.v0.3.26+1.i686-linux-musl-libgfortran4.tar.gz/sha512/d541151270fc5c2d9562a366c48c0aa8b7383f00714fe5ea9cb94f321e13b988e4a5f9ef3e37b0ae924dd0a1049cca5c0ec16f7207b54074ee33e99991fcb35d -OpenBLAS.v0.3.26+1.i686-linux-musl-libgfortran5.tar.gz/md5/d780f3734c2503931354b5bb385156b6 -OpenBLAS.v0.3.26+1.i686-linux-musl-libgfortran5.tar.gz/sha512/44f5c4a9c6f7b7b13761d0ba997c3c5582b17ec6455c7dc06f3984533e99f2b66f26371747648f3997b200f917fa413e8b07634da1c7cb4736f653cb38170aee -OpenBLAS.v0.3.26+1.i686-w64-mingw32-libgfortran3.tar.gz/md5/c8bda88720dfe9415a93ee639ab8061e -OpenBLAS.v0.3.26+1.i686-w64-mingw32-libgfortran3.tar.gz/sha512/2b9396f92c0883811c5dcf13ac10781ba0a46ce7bb6c839ec83e9e7bc75b9d805d8cb6d74e52502bf9210a02bc066cd1a11235bc754b62e103e9d9912b8dc39d -OpenBLAS.v0.3.26+1.i686-w64-mingw32-libgfortran4.tar.gz/md5/d92cea9c2931480cd80f2e6845ef0fa2 -OpenBLAS.v0.3.26+1.i686-w64-mingw32-libgfortran4.tar.gz/sha512/8870c89a3f43efd3c681b36e8bf6ec8876e30c29256c6c5ab2021ea4318d898fa2a231dae285f60760d7559e6bb730814e3e9ed88f1509afa5d1d9c0e7c78a05 -OpenBLAS.v0.3.26+1.i686-w64-mingw32-libgfortran5.tar.gz/md5/ddecd7f5bf7b621e76bbd7f10d860f9d -OpenBLAS.v0.3.26+1.i686-w64-mingw32-libgfortran5.tar.gz/sha512/8755d2931d8c8ec48fd52050071edaed8d5f401110a9ccef4019ba4c25434a55c443e8d35e8e84cb6bb109161a5a40861970c99c2452bc2a1c51f5937c7f68ea -OpenBLAS.v0.3.26+1.powerpc64le-linux-gnu-libgfortran3.tar.gz/md5/6da004043ff90a8497765210f5edac2a -OpenBLAS.v0.3.26+1.powerpc64le-linux-gnu-libgfortran3.tar.gz/sha512/bac7e378474769c7f2b4c8acbb960b29ee47f9f49aec95239543451583e83420990a4eb03dd994ebec7f60e95f6cc95668977cf4ad9414ecfedb93fe2d85e338 -OpenBLAS.v0.3.26+1.powerpc64le-linux-gnu-libgfortran4.tar.gz/md5/3bb442a6331324913d13bda804dabafb -OpenBLAS.v0.3.26+1.powerpc64le-linux-gnu-libgfortran4.tar.gz/sha512/5a865ea29ae2647e2639b614a5373a5675542cdcab380405f800dca1987b5628a302841e7546f89ad64a8cb87371c2e82dee603a8f732b6bc17e1f0635eda5f1 -OpenBLAS.v0.3.26+1.powerpc64le-linux-gnu-libgfortran5.tar.gz/md5/a27d102271dd18fdcc3f8fcc722285d6 -OpenBLAS.v0.3.26+1.powerpc64le-linux-gnu-libgfortran5.tar.gz/sha512/37f92d7e6549bbfd7c67287d28dc366f2943f8063629e1e09afd1e4e82191bee4aa0201add0c99d9945304eedaacfad6b88d1fc8c6b00c05f73de78ca70c3e40 -OpenBLAS.v0.3.26+1.x86_64-apple-darwin-libgfortran3.tar.gz/md5/aada145cdbd5990a5191b5161e8caa57 -OpenBLAS.v0.3.26+1.x86_64-apple-darwin-libgfortran3.tar.gz/sha512/e4146f26459d9264c45dd0ca0394ab264ec0154709aabe5cb4d821c341ed937a467ba7e0a82e4bfc0f5b9142921f21d2a732914d8aa94eece67cf29e8e0f3618 -OpenBLAS.v0.3.26+1.x86_64-apple-darwin-libgfortran4.tar.gz/md5/79d25889603731cd9b67bd90171f6785 -OpenBLAS.v0.3.26+1.x86_64-apple-darwin-libgfortran4.tar.gz/sha512/ffbafdded8420891e403c42922c5189981b42cf9a1b0a229d7caf75b23afcb1bf0bad07bdeeb40f47db3f0226dc15cfb5e35dc1d7350d65bbfce8895dd1703ab -OpenBLAS.v0.3.26+1.x86_64-apple-darwin-libgfortran5.tar.gz/md5/4eb2c9142dcaf9482066d659d8f01420 -OpenBLAS.v0.3.26+1.x86_64-apple-darwin-libgfortran5.tar.gz/sha512/4ab556be0a45c177770085d79a09b2374eb88d447bc4fe73e3ee9ab298b1ff62b7442576439dbe5c05ee18121e971b26e58c2cdc6470136c320b59c0d6db5c9e -OpenBLAS.v0.3.26+1.x86_64-linux-gnu-libgfortran3.tar.gz/md5/f470ceb90d452684f1f8bab0430255f3 -OpenBLAS.v0.3.26+1.x86_64-linux-gnu-libgfortran3.tar.gz/sha512/5b7a8f70173cf593d8340fa4dfe25d885b71ee28491cd88d29ae0d3e161ee97828e7373fdeb0fc4f3843b6d4b7ed1dd5f818cf4fbd85f1b965ade69496c0b032 -OpenBLAS.v0.3.26+1.x86_64-linux-gnu-libgfortran4.tar.gz/md5/21937c57336aeee6d1281838091f2ded -OpenBLAS.v0.3.26+1.x86_64-linux-gnu-libgfortran4.tar.gz/sha512/31ea2e95ea67bd068fbc5dec70ed37cbf675a38465612928da63ec727358eba140c407a4d24781eddb61e2a78c21aa5fcbd509e53d2f79133f20348f12a26c3b -OpenBLAS.v0.3.26+1.x86_64-linux-gnu-libgfortran5.tar.gz/md5/12bea9681837bd876dca337d5dff0310 -OpenBLAS.v0.3.26+1.x86_64-linux-gnu-libgfortran5.tar.gz/sha512/fe60a87f77b94fa0601ce626ad564b3185b818f0cf0e1ffe71ed7ac9e3ed381f785e0e40ade48137a3982f26a25937a0281d8af0ee90525d8b83aa0c7d6c246b -OpenBLAS.v0.3.26+1.x86_64-linux-musl-libgfortran3.tar.gz/md5/a027d4b3cdf3d1696ff9fbcee92cd11c -OpenBLAS.v0.3.26+1.x86_64-linux-musl-libgfortran3.tar.gz/sha512/2114cab81354e4ce1b7952da4c949d7bb936e6c03f7c74db64c19de564417c1ede8aa7392454d22a80846b624d98278c96c3892a7eade1dc7d2d6492cf995993 -OpenBLAS.v0.3.26+1.x86_64-linux-musl-libgfortran4.tar.gz/md5/24c27c66ba984ce08e29c8db8e4f0623 -OpenBLAS.v0.3.26+1.x86_64-linux-musl-libgfortran4.tar.gz/sha512/9c64e74d4b2cecb67cb919a801572bda4709c7a7cff016637256689f3e25e15964c681e44df70e7e843dd51cc21c1418c63620c292ba85b2fefc996f2edf6ee2 -OpenBLAS.v0.3.26+1.x86_64-linux-musl-libgfortran5.tar.gz/md5/0815934674727f808723ca59c2c4def1 -OpenBLAS.v0.3.26+1.x86_64-linux-musl-libgfortran5.tar.gz/sha512/15036bfd5ca5d8770a7fdce63790756475d1f94ad301b4985b38445d9660bb0591fc4bd96280e07cbf9da52d0be1fda97a3629e0956bee84e501f19ca85472ac -OpenBLAS.v0.3.26+1.x86_64-unknown-freebsd-libgfortran3.tar.gz/md5/246fa31cdf14e93eb04c9fc4c96845a1 -OpenBLAS.v0.3.26+1.x86_64-unknown-freebsd-libgfortran3.tar.gz/sha512/a1eff9bc326976fec67461e5391342fee74ef91c2d3d3b7bde387daf76f2c721d522fd3e78094218c5bfcfd02d1c96288d14c83668acccd92144960e4aea67d2 -OpenBLAS.v0.3.26+1.x86_64-unknown-freebsd-libgfortran4.tar.gz/md5/06b953ed17b40e8713cc5b3d6e1e825c -OpenBLAS.v0.3.26+1.x86_64-unknown-freebsd-libgfortran4.tar.gz/sha512/185705657be22c6681133d7fe05d9e890e87b1637d0194c7b39a2194cadbf3a55aa2e252696355fc399db4477e1aeff32062a0fcf2b45925e6f9c64d8f12ce4e -OpenBLAS.v0.3.26+1.x86_64-unknown-freebsd-libgfortran5.tar.gz/md5/9e2362434fdc10a570f231c65d31c936 -OpenBLAS.v0.3.26+1.x86_64-unknown-freebsd-libgfortran5.tar.gz/sha512/c2913cdab07096d1c6e1beaca7dedbfccc9ca91f0f32f76d476b37684fc0dcd55e4ace96cba668106564011c15f29f6703fdf76d0a7b1c757f1eaa3289891039 -OpenBLAS.v0.3.26+1.x86_64-w64-mingw32-libgfortran3.tar.gz/md5/9be5f51d9676a008483437079797f4c7 -OpenBLAS.v0.3.26+1.x86_64-w64-mingw32-libgfortran3.tar.gz/sha512/ac9c93541b246563994725573ebdc816b9341389b6f101160575ae25c3e01d3289146d86b54bcaf19f15b035afaf0346c50419601fd7f64a4cafe7754dda5afe -OpenBLAS.v0.3.26+1.x86_64-w64-mingw32-libgfortran4.tar.gz/md5/cbb1711388ee92693459e9de5275510f -OpenBLAS.v0.3.26+1.x86_64-w64-mingw32-libgfortran4.tar.gz/sha512/4c0344c43a41f4042787999a1b9b1c8d897dfa42b1af2aaf2f58284efe835cc273cc99703d87212f1433b19764ace01955b89ee1c4e2c928a6025cb1d17b6464 -OpenBLAS.v0.3.26+1.x86_64-w64-mingw32-libgfortran5.tar.gz/md5/d4a7332e9a7a490a8da7fcbaeb290043 -OpenBLAS.v0.3.26+1.x86_64-w64-mingw32-libgfortran5.tar.gz/sha512/ebe4f1d619925638a5628a0ab47ebf219a7f7302cb52f409912a3aa4f614097a5595cc97060b1417aaa059d817d6a3607f8a0a563466ac6d9f82770a9ff1d87b +OpenBLAS.v0.3.26+2.aarch64-apple-darwin-libgfortran5.tar.gz/md5/62b6e0f8591668113a4985d88f386a16 +OpenBLAS.v0.3.26+2.aarch64-apple-darwin-libgfortran5.tar.gz/sha512/fa5a15d853701818604c48bd152b599438eeeb1da67db552beb21b284027c313a9c7d8779b7236831a5f2631912baf881b0d2165aa77cb7ffec975a5c113a631 +OpenBLAS.v0.3.26+2.aarch64-linux-gnu-libgfortran3.tar.gz/md5/bc83bc702eb292c4491229cd6142fe06 +OpenBLAS.v0.3.26+2.aarch64-linux-gnu-libgfortran3.tar.gz/sha512/d4e872be87cc450e1547e51ba15540f5f0082a874788c6ba414cab839147e69f7f37b2c4080a79bdcd411efec829e3510b83df8a9c319a3b132a117614d205cc +OpenBLAS.v0.3.26+2.aarch64-linux-gnu-libgfortran4.tar.gz/md5/436ae51ef0b2f7a053ed8fb19fd55fd1 +OpenBLAS.v0.3.26+2.aarch64-linux-gnu-libgfortran4.tar.gz/sha512/686c9c04a11d2f8a4879876ae34c410ad9e5cb0fddecd44aea9d642e662af9766a07bf4846405685835968253f2cda004a7d7ca1a0a04b2799984489294ed4c5 +OpenBLAS.v0.3.26+2.aarch64-linux-gnu-libgfortran5.tar.gz/md5/fa57f3598b2c24ec3111c60f84bb6ed9 +OpenBLAS.v0.3.26+2.aarch64-linux-gnu-libgfortran5.tar.gz/sha512/d6111ab03a8940892e8023af548de52da7b8c3c76ad2cfcf98a78cadf11b95ef4c39830dedc5a3c6a20e8d95c64fb24a4ed655971ea83ba11f69ff7a3ba34292 +OpenBLAS.v0.3.26+2.aarch64-linux-musl-libgfortran3.tar.gz/md5/184444acaf2f975b4bf5168a32577863 +OpenBLAS.v0.3.26+2.aarch64-linux-musl-libgfortran3.tar.gz/sha512/419da1e017208596e89482ac42005ed2adebfc917419cf900fad3b45ec40f7da46acffc3e6461f46862e3c4642588cd629f6dde151fd02edd6642c8d98d77ea6 +OpenBLAS.v0.3.26+2.aarch64-linux-musl-libgfortran4.tar.gz/md5/2aef4330a9995541bae287a3c2583ea6 +OpenBLAS.v0.3.26+2.aarch64-linux-musl-libgfortran4.tar.gz/sha512/caf7ae4ec0c4fddfe522409d1a5c3be5a376620baa9ddce63f62e4856cea4b1ab2818ef54f3fb5ffbcc4ae73247459d0de2ac7b93eba4bcc1ca744f4fe69695e +OpenBLAS.v0.3.26+2.aarch64-linux-musl-libgfortran5.tar.gz/md5/308471abda2c5eba60976d227f6d1c1e +OpenBLAS.v0.3.26+2.aarch64-linux-musl-libgfortran5.tar.gz/sha512/225242f309d343994176664f590471ec2e56254ebec877d97291c1334517993510422954774749d23da4c52f32a41e06aaba072bf2e3cbb3b2a8dac6c01dba8c +OpenBLAS.v0.3.26+2.armv6l-linux-gnueabihf-libgfortran3.tar.gz/md5/69618373222d15ede34de1f913a93dac +OpenBLAS.v0.3.26+2.armv6l-linux-gnueabihf-libgfortran3.tar.gz/sha512/585fa3233d6c88c7ee5571da4dce7b83c53643937a0077d816c24c556b471926c808bcbd46c9ddddafbe24567f91039525b3a260505854e62e9b9b09acaede54 +OpenBLAS.v0.3.26+2.armv6l-linux-gnueabihf-libgfortran4.tar.gz/md5/874b639fcce8fb077d1a9cdecc916a6c +OpenBLAS.v0.3.26+2.armv6l-linux-gnueabihf-libgfortran4.tar.gz/sha512/0a065ccd197822b028da36e157aed19fbe440d7eedc94fe1955cd8980423d477bdb73db7e0f99a6ea683701a2c8fc649e3967a781694a7219d82915d1c22767c +OpenBLAS.v0.3.26+2.armv6l-linux-gnueabihf-libgfortran5.tar.gz/md5/03683c3d2310870905bc386c5fc89eb5 +OpenBLAS.v0.3.26+2.armv6l-linux-gnueabihf-libgfortran5.tar.gz/sha512/2e0f4ae61623cf094cb8396522dfb6e2a7cf7de23a4dd25fb3fb2f0a414fd0b8d6397ce1c74d3a88296fe4fe76d1a61e1df87b2814bf87852564c097aa1f45e2 +OpenBLAS.v0.3.26+2.armv6l-linux-musleabihf-libgfortran3.tar.gz/md5/9c9dbe9afb8fc5d1f2fae971e1dfce1d +OpenBLAS.v0.3.26+2.armv6l-linux-musleabihf-libgfortran3.tar.gz/sha512/e592f91a2c0a303a059a9694565555247b76ab20ecfcf9c9f7235e0b67b458d530b35e9a2263f3c37b7ecc884c02124fac134f6061788348475fe1d546e07f1e +OpenBLAS.v0.3.26+2.armv6l-linux-musleabihf-libgfortran4.tar.gz/md5/ede329cb3e37e7c9008fec5273e38ce2 +OpenBLAS.v0.3.26+2.armv6l-linux-musleabihf-libgfortran4.tar.gz/sha512/bbb081f217c977e77d77c2091918aeff99855dbe99f4396059954e057edf41c63e926769afc3a2360eb87cef5612a2c0de519852182dba51d9306be10c4508fe +OpenBLAS.v0.3.26+2.armv6l-linux-musleabihf-libgfortran5.tar.gz/md5/c884cc9c752857a6a020891040c1bbd4 +OpenBLAS.v0.3.26+2.armv6l-linux-musleabihf-libgfortran5.tar.gz/sha512/67e671c05964b2a1456b9bddfe300cf29f88f4712cbe0c11cae01955abb31e70d9ad9a31175d2e29e4c5dd02d22febcafac8abe47d78dc179aa1e40776c51883 +OpenBLAS.v0.3.26+2.armv7l-linux-gnueabihf-libgfortran3.tar.gz/md5/69618373222d15ede34de1f913a93dac +OpenBLAS.v0.3.26+2.armv7l-linux-gnueabihf-libgfortran3.tar.gz/sha512/585fa3233d6c88c7ee5571da4dce7b83c53643937a0077d816c24c556b471926c808bcbd46c9ddddafbe24567f91039525b3a260505854e62e9b9b09acaede54 +OpenBLAS.v0.3.26+2.armv7l-linux-gnueabihf-libgfortran4.tar.gz/md5/874b639fcce8fb077d1a9cdecc916a6c +OpenBLAS.v0.3.26+2.armv7l-linux-gnueabihf-libgfortran4.tar.gz/sha512/0a065ccd197822b028da36e157aed19fbe440d7eedc94fe1955cd8980423d477bdb73db7e0f99a6ea683701a2c8fc649e3967a781694a7219d82915d1c22767c +OpenBLAS.v0.3.26+2.armv7l-linux-gnueabihf-libgfortran5.tar.gz/md5/03683c3d2310870905bc386c5fc89eb5 +OpenBLAS.v0.3.26+2.armv7l-linux-gnueabihf-libgfortran5.tar.gz/sha512/2e0f4ae61623cf094cb8396522dfb6e2a7cf7de23a4dd25fb3fb2f0a414fd0b8d6397ce1c74d3a88296fe4fe76d1a61e1df87b2814bf87852564c097aa1f45e2 +OpenBLAS.v0.3.26+2.armv7l-linux-musleabihf-libgfortran3.tar.gz/md5/9c9dbe9afb8fc5d1f2fae971e1dfce1d +OpenBLAS.v0.3.26+2.armv7l-linux-musleabihf-libgfortran3.tar.gz/sha512/e592f91a2c0a303a059a9694565555247b76ab20ecfcf9c9f7235e0b67b458d530b35e9a2263f3c37b7ecc884c02124fac134f6061788348475fe1d546e07f1e +OpenBLAS.v0.3.26+2.armv7l-linux-musleabihf-libgfortran4.tar.gz/md5/ede329cb3e37e7c9008fec5273e38ce2 +OpenBLAS.v0.3.26+2.armv7l-linux-musleabihf-libgfortran4.tar.gz/sha512/bbb081f217c977e77d77c2091918aeff99855dbe99f4396059954e057edf41c63e926769afc3a2360eb87cef5612a2c0de519852182dba51d9306be10c4508fe +OpenBLAS.v0.3.26+2.armv7l-linux-musleabihf-libgfortran5.tar.gz/md5/c884cc9c752857a6a020891040c1bbd4 +OpenBLAS.v0.3.26+2.armv7l-linux-musleabihf-libgfortran5.tar.gz/sha512/67e671c05964b2a1456b9bddfe300cf29f88f4712cbe0c11cae01955abb31e70d9ad9a31175d2e29e4c5dd02d22febcafac8abe47d78dc179aa1e40776c51883 +OpenBLAS.v0.3.26+2.i686-linux-gnu-libgfortran3.tar.gz/md5/030e3714c2544175861a411fc2520dc2 +OpenBLAS.v0.3.26+2.i686-linux-gnu-libgfortran3.tar.gz/sha512/5ea2318d786b423770e77cd820fef4bd995da7f6aaea70f73f55eb9210508e89f61fb0c6a728421c6fd3859ab11774f3111979c53a6c48ddf7a528a04295c4ba +OpenBLAS.v0.3.26+2.i686-linux-gnu-libgfortran4.tar.gz/md5/ef935e9cf567efa381de917a0cf66fbc +OpenBLAS.v0.3.26+2.i686-linux-gnu-libgfortran4.tar.gz/sha512/81a463ca756d4d363fd32f735d32d7b6e8c6f325401e943a8210fcf258ecd25507beac17b9b24ecddef0eb8521a58fdfcf6633794724f86e6977b162e099c70e +OpenBLAS.v0.3.26+2.i686-linux-gnu-libgfortran5.tar.gz/md5/ce1a4b1dc5e3c001b5c12f9cd81cb3fb +OpenBLAS.v0.3.26+2.i686-linux-gnu-libgfortran5.tar.gz/sha512/8f82012c0e9f955be2ab87551742a334f865cbdec95f0a62103c5127d6176838653884a6790234c5548940cec63e73ce95095bfcfaf241dc445020ab449c6687 +OpenBLAS.v0.3.26+2.i686-linux-musl-libgfortran3.tar.gz/md5/acfe348c1c1f33376469dd9106603222 +OpenBLAS.v0.3.26+2.i686-linux-musl-libgfortran3.tar.gz/sha512/2048723ce88ef28b2b7fa42cc73eccae8b663466a496709931ccecf06b4f4a9455fdfa3b5bd05bba4d847d3c0489251ecc3a34e7e3fb49bcdb40aacd4b53c140 +OpenBLAS.v0.3.26+2.i686-linux-musl-libgfortran4.tar.gz/md5/d82eb058ea705286058230f68b43c9fe +OpenBLAS.v0.3.26+2.i686-linux-musl-libgfortran4.tar.gz/sha512/c97ca8dd352c3067ec437b1a8b2b9ee06bd92157f0806dca55fcc3107a94e784cdf8f6d5986aae93ccb608fb90ba2ab9bba4acf7562c1fd519804897ab158c10 +OpenBLAS.v0.3.26+2.i686-linux-musl-libgfortran5.tar.gz/md5/014aa93d275d56e6176ab50f4040ede2 +OpenBLAS.v0.3.26+2.i686-linux-musl-libgfortran5.tar.gz/sha512/cd3d1dd1aab373fe4e1135042dee3fc959371fcbebe70f6c60327df35e389442a2f47351757db84cdc1d181b659ce2d6a0892508de6af27b01324e3119d9dabb +OpenBLAS.v0.3.26+2.i686-w64-mingw32-libgfortran3.tar.gz/md5/0b3f11710883a3cac2551cac0d72aad5 +OpenBLAS.v0.3.26+2.i686-w64-mingw32-libgfortran3.tar.gz/sha512/7d86f74c585dff33ed9384dc1c77b600a6893ceca335340232536f6e2cec1bbc86e85763c932c4b81c4012f12d68d7f37634e2f685aff6a999b875eae596cd9c +OpenBLAS.v0.3.26+2.i686-w64-mingw32-libgfortran4.tar.gz/md5/64d7806e859c804161a59641db744f7f +OpenBLAS.v0.3.26+2.i686-w64-mingw32-libgfortran4.tar.gz/sha512/7ebefd3ee2abd284c82e15d2497fd08bd4eccb264af7aacc1378c75d4b1dffb11ab95eafd98029c513ee7c667749a4917e26e4d57c65ccb77c5ba52cd8770009 +OpenBLAS.v0.3.26+2.i686-w64-mingw32-libgfortran5.tar.gz/md5/2a91e979a37722549d95cbd607e822fa +OpenBLAS.v0.3.26+2.i686-w64-mingw32-libgfortran5.tar.gz/sha512/f08880e18e6a361458a495c8860382a00001fe5d2989852b034ff9623b4517c8b75cd3f03986f62d72222e3cf07f8f2eb123785577500c7cf0e79109b9eed960 +OpenBLAS.v0.3.26+2.powerpc64le-linux-gnu-libgfortran3.tar.gz/md5/a417db847b1d610e3f52a891f98ae2e0 +OpenBLAS.v0.3.26+2.powerpc64le-linux-gnu-libgfortran3.tar.gz/sha512/16da5454b0987ecae76b6fe547d28f699684aa5fbf05a0e579960b71b3ab75dc1f3602fc60182fea3556eda8d905a870f03dd976009ea1972e9693a584e584f3 +OpenBLAS.v0.3.26+2.powerpc64le-linux-gnu-libgfortran4.tar.gz/md5/c63388278f7e037c232d9e7b29d3c725 +OpenBLAS.v0.3.26+2.powerpc64le-linux-gnu-libgfortran4.tar.gz/sha512/bedbb30539530e16314c97b87df59caf38c75de7b68616cdca78d27e241dce06527d7265924902d557394a14a6348dc2b5e45c4a006158a6b9182382183bd0ff +OpenBLAS.v0.3.26+2.powerpc64le-linux-gnu-libgfortran5.tar.gz/md5/5785f320f43600a791b543fb0bd8b00b +OpenBLAS.v0.3.26+2.powerpc64le-linux-gnu-libgfortran5.tar.gz/sha512/37ae82c2f57ec7c6ce0cd3f93b33870602f44bffdbeb2cb9bceef4515f5851aba73214d4a1fd24606fe4fa9bf0bf0a5552e1aebd65027ae57f76f3379a04344e +OpenBLAS.v0.3.26+2.x86_64-apple-darwin-libgfortran3.tar.gz/md5/ebd368ef0d4fd4f39534bb52b506e109 +OpenBLAS.v0.3.26+2.x86_64-apple-darwin-libgfortran3.tar.gz/sha512/a81bf2244b160786530ae449be1e81981d17146ccf833ea5afcea84eb24644002d5824591c96b7e89fe9642911a865a292be062d325ff2307d850b4cfbd0e7d6 +OpenBLAS.v0.3.26+2.x86_64-apple-darwin-libgfortran4.tar.gz/md5/f453ba9786d0916c9fc8c46281588c5d +OpenBLAS.v0.3.26+2.x86_64-apple-darwin-libgfortran4.tar.gz/sha512/7dea0549e3fec7e18043b8b4f93491ddbb4e041325330a2e6e28d137c25431c12371b534bae5170b22c5077d285ee23fda1579bae54c894a46a885b4571daf84 +OpenBLAS.v0.3.26+2.x86_64-apple-darwin-libgfortran5.tar.gz/md5/3be8449cb3046322f21b1d17be41bd1f +OpenBLAS.v0.3.26+2.x86_64-apple-darwin-libgfortran5.tar.gz/sha512/89bb94d645879bd2daa8e83fc9b391b84f32b8bc1f633caacc5eda138c8034b726bc5c7ddb931040f24b77482743cd2038fed6d1d17698f287c09f176a6085c8 +OpenBLAS.v0.3.26+2.x86_64-linux-gnu-libgfortran3.tar.gz/md5/2410734a7fc47705361267023c001272 +OpenBLAS.v0.3.26+2.x86_64-linux-gnu-libgfortran3.tar.gz/sha512/e9b239a75ee7521145f30caa52ec4e8b42d99f5246df47c8e203497c577f161ec4f3e7df7d7fa8135b4f947f941314bbbb00fa56ed813bbbefd6f887af1a768b +OpenBLAS.v0.3.26+2.x86_64-linux-gnu-libgfortran4.tar.gz/md5/06212c9081e7d355bce7e7960e17371d +OpenBLAS.v0.3.26+2.x86_64-linux-gnu-libgfortran4.tar.gz/sha512/aeb9913167f6e860c4f2082dc15310fa4fb2a0edcf70a6aa31626c59e132d2af9265544f1b18161d994405649f2923abd4cb21521466768f1ed4fe0ef8243bcd +OpenBLAS.v0.3.26+2.x86_64-linux-gnu-libgfortran5.tar.gz/md5/e21eb44972f00ff7c054e3fade50602d +OpenBLAS.v0.3.26+2.x86_64-linux-gnu-libgfortran5.tar.gz/sha512/8d9c1bb8c300e2523fd7a42ef4d4bcfbaba94e29e69c630008a194a62e575648c9f89a42301d1cbd0e74613ba41e5282d69bd8e24376c64fedb1d2657dd1e4a4 +OpenBLAS.v0.3.26+2.x86_64-linux-musl-libgfortran3.tar.gz/md5/aa1501555419f9bc6c243e77d1a413c8 +OpenBLAS.v0.3.26+2.x86_64-linux-musl-libgfortran3.tar.gz/sha512/8a4c5166e76c14bf6c65953bdcb8a4b222dee61123cfdb243876ee5af2d5d04e3125149936ce71c25cd90b0af5208d733ed9a1944b3134634de6a2ddfd1796a8 +OpenBLAS.v0.3.26+2.x86_64-linux-musl-libgfortran4.tar.gz/md5/597ff5c5a516278129a3077daeb4ffd0 +OpenBLAS.v0.3.26+2.x86_64-linux-musl-libgfortran4.tar.gz/sha512/0b4b3e58d046e7a5f3eac36e967025983575df1979c5bdc73330481982e229f832735d1a7bce373009e666b9094ba5877d290bd06d9baf5f8a9efef0d3b0b4ac +OpenBLAS.v0.3.26+2.x86_64-linux-musl-libgfortran5.tar.gz/md5/410507ba0176c16180163556294d359e +OpenBLAS.v0.3.26+2.x86_64-linux-musl-libgfortran5.tar.gz/sha512/659167ca4b307c00afbfbc08a8bade4c144a0567c13354c81ef17dbd210f2a98b40289bb9f166a70cd447193c236561c7a6df2603ebcd0dec501529d4e976508 +OpenBLAS.v0.3.26+2.x86_64-unknown-freebsd-libgfortran3.tar.gz/md5/e12abdd6fa5a9211cdf3472ec9e2bf2c +OpenBLAS.v0.3.26+2.x86_64-unknown-freebsd-libgfortran3.tar.gz/sha512/cc68370a2e2c76303272e0d91a71ae1a9408233d7f39292682fc901b8474d8272ac42f233c2d0c3cdc07c481968bee2486831e8df48d9f34877b45e3af694b62 +OpenBLAS.v0.3.26+2.x86_64-unknown-freebsd-libgfortran4.tar.gz/md5/a02fcf5127ae14a00204c1b43b1c6807 +OpenBLAS.v0.3.26+2.x86_64-unknown-freebsd-libgfortran4.tar.gz/sha512/e502418902d1af01efa1c9d6db94659b1472db8af812cd2507fb324836e5bab3364e54bca9a2ee809114947b4210f5fe3ec640d7bb741114a66e110d2668ddab +OpenBLAS.v0.3.26+2.x86_64-unknown-freebsd-libgfortran5.tar.gz/md5/f4d49963b37686671d1d6f1f5b4b680e +OpenBLAS.v0.3.26+2.x86_64-unknown-freebsd-libgfortran5.tar.gz/sha512/0c395e956243b40bc29a820ac755740efd932f56eaba85a554041c223238300f0370ef2d051cb67357bf9a740950bbc78de1fba52522bd53a9d3a8f24799f975 +OpenBLAS.v0.3.26+2.x86_64-w64-mingw32-libgfortran3.tar.gz/md5/fecab0026d2b7b7e0261ccf1f9aeb282 +OpenBLAS.v0.3.26+2.x86_64-w64-mingw32-libgfortran3.tar.gz/sha512/a9032b79cbc18448b141bc61b404e156af2ccaccd3919f0d38d5f2963e9e89c93f4992ed58217f969a7f5201b4489e0bdb91761fe507ee7f07e65e712f9ed584 +OpenBLAS.v0.3.26+2.x86_64-w64-mingw32-libgfortran4.tar.gz/md5/28d440488310d3730db018612078bad7 +OpenBLAS.v0.3.26+2.x86_64-w64-mingw32-libgfortran4.tar.gz/sha512/a24e5e8f8da4734ce10b6d959b566df0ece3f3ba30737584ad3e7795d07b950e2bd57fb13d4a4f21eb92b29c38cf40fd846b5f771eb820a769e50f4074e36142 +OpenBLAS.v0.3.26+2.x86_64-w64-mingw32-libgfortran5.tar.gz/md5/7202113787553198c32b0b6964630b5a +OpenBLAS.v0.3.26+2.x86_64-w64-mingw32-libgfortran5.tar.gz/sha512/9553d90d0580bd6f1e6676be85029db615564bbada470ee8751619b5888e79ee23e1e699f1aba1e770a29c5ef1e4d13eb8c24cfa787ef22167c9100ed6af478e openblas-6c77e5e314474773a7749357b153caba4ec3817d.tar.gz/md5/4971eeb7adadee085d7c991db416fe7a openblas-6c77e5e314474773a7749357b153caba4ec3817d.tar.gz/sha512/7b85c9fb7be54407ba627d77897f40de4395d6d307230aa7df83cf8e0a41f545e4af4ae0576abb40cc9e0c385e1c6a488100dff292ea307439a89587c07ba66f diff --git a/deps/openblas.mk b/deps/openblas.mk index d890a5be6046a..c24ce47d359c1 100644 --- a/deps/openblas.mk +++ b/deps/openblas.mk @@ -20,6 +20,9 @@ endif # don't touch scheduler affinity since we manage this ourselves OPENBLAS_BUILD_OPTS += NO_AFFINITY=1 +# Build BFloat16 kernels +OPENBLAS_BUILD_OPTS += BUILD_BFLOAT16=1 + # Build for all architectures - required for distribution ifeq ($(SANITIZE_MEMORY),1) OPENBLAS_BUILD_OPTS += TARGET=GENERIC @@ -95,12 +98,22 @@ $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/openblas-ofast-power.patch-applied: $(BUILDDIR)/ patch -p1 -f < $(SRCDIR)/patches/openblas-ofast-power.patch echo 1 > $@ -$(BUILDDIR)/$(OPENBLAS_SRC_DIR)/neoverse-generic-kernels.patch-applied: $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/openblas-ofast-power.patch-applied +$(BUILDDIR)/$(OPENBLAS_SRC_DIR)/openblas-avx512bf-kernels.patch-applied: $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/openblas-ofast-power.patch-applied + cd $(BUILDDIR)/$(OPENBLAS_SRC_DIR) && \ + patch -p1 -f < $(SRCDIR)/patches/openblas-avx512bf-kernels.patch + echo 1 > $@ + +$(BUILDDIR)/$(OPENBLAS_SRC_DIR)/openblas-gemv-multithreading.patch-applied: $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/openblas-avx512bf-kernels.patch-applied + cd $(BUILDDIR)/$(OPENBLAS_SRC_DIR) && \ + patch -p1 -f < $(SRCDIR)/patches/openblas-gemv-multithreading.patch + echo 1 > $@ + +$(BUILDDIR)/$(OPENBLAS_SRC_DIR)/openblas-darwin-sve.patch-applied: $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/openblas-gemv-multithreading.patch-applied cd $(BUILDDIR)/$(OPENBLAS_SRC_DIR) && \ - patch -p1 -f < $(SRCDIR)/patches/neoverse-generic-kernels.patch + patch -p1 -f < $(SRCDIR)/patches/openblas-darwin-sve.patch echo 1 > $@ -$(BUILDDIR)/$(OPENBLAS_SRC_DIR)/build-configured: $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/neoverse-generic-kernels.patch-applied +$(BUILDDIR)/$(OPENBLAS_SRC_DIR)/build-configured: $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/openblas-darwin-sve.patch-applied echo 1 > $@ $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/build-compiled: $(BUILDDIR)/$(OPENBLAS_SRC_DIR)/build-configured diff --git a/deps/patches/neoverse-generic-kernels.patch b/deps/patches/neoverse-generic-kernels.patch deleted file mode 100644 index ab37e3783bf3e..0000000000000 --- a/deps/patches/neoverse-generic-kernels.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/kernel/arm64/KERNEL.NEOVERSEN1 b/kernel/arm64/KERNEL.NEOVERSEN1 -index ea010db4..074d7215 100644 ---- a/kernel/arm64/KERNEL.NEOVERSEN1 -+++ b/kernel/arm64/KERNEL.NEOVERSEN1 -@@ -91,10 +91,10 @@ IDAMAXKERNEL = iamax_thunderx2t99.c - ICAMAXKERNEL = izamax_thunderx2t99.c - IZAMAXKERNEL = izamax_thunderx2t99.c - --SNRM2KERNEL = scnrm2_thunderx2t99.c --DNRM2KERNEL = dznrm2_thunderx2t99.c --CNRM2KERNEL = scnrm2_thunderx2t99.c --ZNRM2KERNEL = dznrm2_thunderx2t99.c -+SNRM2KERNEL = nrm2.S -+DNRM2KERNEL = nrm2.S -+CNRM2KERNEL = znrm2.S -+ZNRM2KERNEL = znrm2.S - - DDOTKERNEL = dot_thunderx2t99.c - SDOTKERNEL = dot_thunderx2t99.c diff --git a/deps/patches/openblas-avx512bf-kernels.patch b/deps/patches/openblas-avx512bf-kernels.patch new file mode 100644 index 0000000000000..7e99cdf7c53ee --- /dev/null +++ b/deps/patches/openblas-avx512bf-kernels.patch @@ -0,0 +1,107 @@ +From 1dada6d65d89d19b2cf89b12169f6b2196c90f1d Mon Sep 17 00:00:00 2001 +From: Martin Kroeker +Date: Fri, 12 Jan 2024 00:10:56 +0100 +Subject: [PATCH 1/2] Add compiler test and flag for AVX512BF16 capability + +--- + c_check | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/c_check b/c_check +index b5e4a9ad00..3e507be818 100755 +--- a/c_check ++++ b/c_check +@@ -244,6 +244,7 @@ case "$data" in + esac + + no_avx512=0 ++no_avx512bf=0 + if [ "$architecture" = "x86" ] || [ "$architecture" = "x86_64" ]; then + tmpd=$(mktemp -d 2>/dev/null || mktemp -d -t 'OBC') + tmpf="$tmpd/a.c" +@@ -262,6 +263,25 @@ if [ "$architecture" = "x86" ] || [ "$architecture" = "x86_64" ]; then + } + + rm -rf "$tmpd" ++ if [ "$no_avx512" -eq 0 ]; then ++ tmpd=$(mktemp -d 2>/dev/null || mktemp -d -t 'OBC') ++ tmpf="$tmpd/a.c" ++ code='"__m512 a= _mm512_dpbf16_ps(a, (__m512bh) _mm512_loadu_si512(%1]), (__m512bh) _mm512_loadu_si512(%2]));"' ++ printf "#include \n\nint main(void){ %s; }\n" "$code" >> "$tmpf" ++ if [ "$compiler" = "PGI" ]; then ++ args=" -tp cooperlake -c -o $tmpf.o $tmpf" ++ else ++ args=" -march=cooperlake -c -o $tmpf.o $tmpf" ++ fi ++ no_avx512bf=0 ++ { ++ $compiler_name $flags $args >/dev/null 2>&1 ++ } || { ++ no_avx512bf=1 ++ } ++ ++ rm -rf "$tmpd" ++ fi + fi + + no_rv64gv=0 +@@ -409,6 +429,7 @@ done + [ "$makefile" = "-" ] && { + [ "$no_rv64gv" -eq 1 ] && printf "NO_RV64GV=1\n" + [ "$no_avx512" -eq 1 ] && printf "NO_AVX512=1\n" ++ [ "$no_avx512bf" -eq 1 ] && printf "NO_AVX512BF16=1\n" + [ "$no_avx2" -eq 1 ] && printf "NO_AVX2=1\n" + [ "$oldgcc" -eq 1 ] && printf "OLDGCC=1\n" + exit 0 +@@ -437,6 +458,7 @@ done + [ "$no_sve" -eq 1 ] && printf "NO_SVE=1\n" + [ "$no_rv64gv" -eq 1 ] && printf "NO_RV64GV=1\n" + [ "$no_avx512" -eq 1 ] && printf "NO_AVX512=1\n" ++ [ "$no_avx512bf" -eq 1 ] && printf "NO_AVX512BF16=1\n" + [ "$no_avx2" -eq 1 ] && printf "NO_AVX2=1\n" + [ "$oldgcc" -eq 1 ] && printf "OLDGCC=1\n" + [ "$no_lsx" -eq 1 ] && printf "NO_LSX=1\n" + +From 995a990e24fdcc8080128a8abc17b4ccc66bd4fd Mon Sep 17 00:00:00 2001 +From: Martin Kroeker +Date: Fri, 12 Jan 2024 00:12:46 +0100 +Subject: [PATCH 2/2] Make AVX512 BFLOAT16 kernels conditional on compiler + capability + +--- + kernel/x86_64/KERNEL.COOPERLAKE | 3 ++- + kernel/x86_64/KERNEL.SAPPHIRERAPIDS | 2 ++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/kernel/x86_64/KERNEL.COOPERLAKE b/kernel/x86_64/KERNEL.COOPERLAKE +index dba94aea86..22b042029f 100644 +--- a/kernel/x86_64/KERNEL.COOPERLAKE ++++ b/kernel/x86_64/KERNEL.COOPERLAKE +@@ -1,5 +1,5 @@ + include $(KERNELDIR)/KERNEL.SKYLAKEX +- ++ifneq ($(NO_AVX512BF16), 1) + SBGEMM_SMALL_M_PERMIT = sbgemm_small_kernel_permit_cooperlake.c + SBGEMM_SMALL_K_NN = sbgemm_small_kernel_nn_cooperlake.c + SBGEMM_SMALL_K_B0_NN = sbgemm_small_kernel_nn_cooperlake.c +@@ -20,3 +20,4 @@ SBGEMMINCOPYOBJ = sbgemm_incopy$(TSUFFIX).$(SUFFIX) + SBGEMMITCOPYOBJ = sbgemm_itcopy$(TSUFFIX).$(SUFFIX) + SBGEMMONCOPYOBJ = sbgemm_oncopy$(TSUFFIX).$(SUFFIX) + SBGEMMOTCOPYOBJ = sbgemm_otcopy$(TSUFFIX).$(SUFFIX) ++endif +diff --git a/kernel/x86_64/KERNEL.SAPPHIRERAPIDS b/kernel/x86_64/KERNEL.SAPPHIRERAPIDS +index 3a832e9174..0ab2b4ddcf 100644 +--- a/kernel/x86_64/KERNEL.SAPPHIRERAPIDS ++++ b/kernel/x86_64/KERNEL.SAPPHIRERAPIDS +@@ -1,5 +1,6 @@ + include $(KERNELDIR)/KERNEL.COOPERLAKE + ++ifneq ($(NO_AVX512BF16), 1) + SBGEMM_SMALL_M_PERMIT = + SBGEMM_SMALL_K_NN = + SBGEMM_SMALL_K_B0_NN = +@@ -20,3 +21,4 @@ SBGEMMINCOPYOBJ = sbgemm_incopy$(TSUFFIX).$(SUFFIX) + SBGEMMITCOPYOBJ = sbgemm_itcopy$(TSUFFIX).$(SUFFIX) + SBGEMMONCOPYOBJ = sbgemm_oncopy$(TSUFFIX).$(SUFFIX) + SBGEMMOTCOPYOBJ = sbgemm_otcopy$(TSUFFIX).$(SUFFIX) ++endif diff --git a/deps/patches/openblas-darwin-sve.patch b/deps/patches/openblas-darwin-sve.patch new file mode 100644 index 0000000000000..a2166db9379f1 --- /dev/null +++ b/deps/patches/openblas-darwin-sve.patch @@ -0,0 +1,34 @@ +From 03688a42622cf76e696859ce384e45aa26d927fc Mon Sep 17 00:00:00 2001 +From: Ian McInerney +Date: Tue, 23 Jan 2024 10:29:57 +0000 +Subject: [PATCH] Build with proper aarch64 flags on Neoverse Darwin + +We aren't affected by the problems in AppleClang that prompted this +fallback to an older architecture. +--- + Makefile.arm64 | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Makefile.arm64 b/Makefile.arm64 +index ed52a9424..a8f3cb0f0 100644 +--- a/Makefile.arm64 ++++ b/Makefile.arm64 +@@ -135,11 +135,11 @@ ifeq ($(CORE), NEOVERSEN2) + ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG))) + ifeq (1, $(filter 1,$(GCCVERSIONGTEQ10) $(ISCLANG))) + ifeq (1, $(filter 1,$(GCCMINORVERSIONGTEQ4) $(GCCVERSIONGTEQ11) $(ISCLANG))) +-ifneq ($(OSNAME), Darwin) ++#ifneq ($(OSNAME), Darwin) + CCOMMON_OPT += -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2 +-else +-CCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a72 +-endif ++#else ++#CCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a72 ++#endif + ifneq ($(F_COMPILER), NAG) + FCOMMON_OPT += -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2 + endif +-- +2.43.0 + diff --git a/deps/patches/openblas-gemv-multithreading.patch b/deps/patches/openblas-gemv-multithreading.patch new file mode 100644 index 0000000000000..827c72fa48b1a --- /dev/null +++ b/deps/patches/openblas-gemv-multithreading.patch @@ -0,0 +1,22 @@ +From d2fc4f3b4d7f41527bc7dc8f62e9aa6229cfac89 Mon Sep 17 00:00:00 2001 +From: Martin Kroeker +Date: Wed, 17 Jan 2024 20:59:24 +0100 +Subject: [PATCH] Increase multithreading threshold by a factor of 50 + +--- + interface/gemv.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/interface/gemv.c b/interface/gemv.c +index 1f07635799..2c121f1308 100644 +--- a/interface/gemv.c ++++ b/interface/gemv.c +@@ -226,7 +226,7 @@ void CNAME(enum CBLAS_ORDER order, + + #ifdef SMP + +- if ( 1L * m * n < 2304L * GEMM_MULTITHREAD_THRESHOLD ) ++ if ( 1L * m * n < 115200L * GEMM_MULTITHREAD_THRESHOLD ) + nthreads = 1; + else + nthreads = num_cpu_avail(2); diff --git a/deps/patches/openblas-ofast-power.patch b/deps/patches/openblas-ofast-power.patch index 405e3f7581331..01089286257f7 100644 --- a/deps/patches/openblas-ofast-power.patch +++ b/deps/patches/openblas-ofast-power.patch @@ -1,17 +1,29 @@ diff --git a/Makefile.power b/Makefile.power -index 28a0bae0..b4869fbd 100644 +index aa1ca080a..42c417a78 100644 --- a/Makefile.power +++ b/Makefile.power -@@ -11,7 +11,7 @@ endif - - ifeq ($(CORE), POWER10) +@@ -13,16 +13,16 @@ ifeq ($(CORE), POWER10) ifneq ($(C_COMPILER), PGI) + ifeq ($(C_COMPILER), GCC)) + ifeq ($(GCCVERSIONGTEQ10), 1) -CCOMMON_OPT += -Ofast -mcpu=power10 -mtune=power10 -mvsx -fno-fast-math +CCOMMON_OPT += -mcpu=power10 -mtune=power10 -mvsx -fno-fast-math - ifeq ($(F_COMPILER), IBM) - FCOMMON_OPT += -O2 -qrecur -qnosave + else ifneq ($(GCCVERSIONGT4), 1) + $(warning your compiler is too old to fully support POWER9, getting a newer version of gcc is recommended) +-CCOMMON_OPT += -Ofast -mcpu=power8 -mtune=power8 -mvsx -fno-fast-math ++CCOMMON_OPT += -mcpu=power8 -mtune=power8 -mvsx -fno-fast-math + else + $(warning your compiler is too old to fully support POWER10, getting a newer version of gcc is recommended) +-CCOMMON_OPT += -Ofast -mcpu=power9 -mtune=power9 -mvsx -fno-fast-math ++CCOMMON_OPT += -mcpu=power9 -mtune=power9 -mvsx -fno-fast-math + endif else -@@ -22,7 +22,7 @@ endif +-CCOMMON_OPT += -Ofast -mcpu=power10 -mtune=power10 -mvsx -fno-fast-math ++CCOMMON_OPT += -mcpu=power10 -mtune=power10 -mvsx -fno-fast-math + endif + ifeq ($(F_COMPILER), IBM) + FCOMMON_OPT += -O2 -qrecur -qnosave -qarch=pwr10 -qtune=pwr10 -qfloat=nomaf -qzerosize +@@ -34,7 +34,7 @@ endif ifeq ($(CORE), POWER9) ifneq ($(C_COMPILER), PGI) @@ -20,7 +32,7 @@ index 28a0bae0..b4869fbd 100644 ifeq ($(C_COMPILER), GCC) ifneq ($(GCCVERSIONGT4), 1) $(warning your compiler is too old to fully support POWER9, getting a newer version of gcc is recommended) -@@ -59,7 +59,7 @@ endif +@@ -70,7 +70,7 @@ endif ifeq ($(CORE), POWER8) ifneq ($(C_COMPILER), PGI) diff --git a/stdlib/OpenBLAS_jll/Project.toml b/stdlib/OpenBLAS_jll/Project.toml index 4eeea867b8bce..10e8285027d42 100644 --- a/stdlib/OpenBLAS_jll/Project.toml +++ b/stdlib/OpenBLAS_jll/Project.toml @@ -1,6 +1,6 @@ name = "OpenBLAS_jll" uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.26+1" +version = "0.3.26+2" [deps] # See note in `src/OpenBLAS_jll.jl` about this dependency. From e758c3075bd27a7bf4ec968179ed73ce16350484 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mos=C3=A8=20Giordano?= Date: Fri, 26 Jan 2024 00:32:43 +0000 Subject: [PATCH 2/2] [LinearAlgebra] Add regression test for `BLAS.nrm2` with non-finite values This would have caught an old upstream bug in OpenBLAS, which was later fixed in v0.3.14. --- stdlib/LinearAlgebra/test/blas.jl | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/stdlib/LinearAlgebra/test/blas.jl b/stdlib/LinearAlgebra/test/blas.jl index dd432952cb56e..d853b211e7817 100644 --- a/stdlib/LinearAlgebra/test/blas.jl +++ b/stdlib/LinearAlgebra/test/blas.jl @@ -126,6 +126,15 @@ Random.seed!(100) @test BLAS.iamax(b) == findmax(fabs, b)[2] * (step(ind) >= 0) end end + @testset "nrm2 with non-finite elements" begin + # These tests would have caught + # when running on appropriate hardware. + a = zeros(elty,n) + a[begin] = elty(-Inf) + @test BLAS.nrm2(a) === abs2(elty(Inf)) + a[begin] = elty(NaN) + @test BLAS.nrm2(a) === abs2(elty(NaN)) + end @testset "scal" begin α = rand(elty) a = rand(elty,n)