Skip to content

Commit caf0db6

Browse files
CHANGELOG update (2.1)
1 parent 578ce85 commit caf0db6

1 file changed

Lines changed: 236 additions & 0 deletions

File tree

CHANGELOG

Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,239 @@
1+
commit 578ce85c8c23843dce59fbf47a5e16f98e8c7b5e
2+
Author: Devin Matthews <damatthews@smu.edu>
3+
Date: Thu Jun 25 15:52:47 2026 -0500
4+
5+
Version file update (2.1)
6+
7+
commit b258cb8d9da6072e796f77f81e0d840fc8d2181d
8+
Author: Devin Matthews <damatthews@smu.edu>
9+
Date: Thu Jun 25 15:52:21 2026 -0500
10+
11+
Update ReleaseNotes.md.
12+
13+
commit fdb56b1ac72ecd99d339a158d1565c9cdc5608f1
14+
Author: Devin Matthews <damatthews@smu.edu>
15+
Date: Thu Jun 25 15:52:12 2026 -0500
16+
17+
Update CREDITS.
18+
19+
commit e0e0127814eb4100703b601d99173445a5d91794
20+
Author: Devin Matthews <damatthews@smu.edu>
21+
Date: Tue Nov 11 10:18:12 2025 -0600
22+
23+
Update config.yml (#910)
24+
25+
Details:
26+
- Bump xcode version in CircleCI.
27+
28+
(cherry picked from commit b5d57831a9cecd6e7e83b039be66fbf31a005062)
29+
30+
commit 6a161f21e68e46cbcae33e8d71b7c4b49428c172
31+
Author: Devin Matthews <damatthews@smu.edu>
32+
Date: Thu Jun 25 15:01:34 2026 -0500
33+
34+
Fix firestorm gemmsup (#933)
35+
36+
Details:
37+
- Add comprehensive testing for gemmsup kernels.
38+
- Add "repeat" flag to test experiment callback so that gemmsup kernel
39+
tests can repeat over all microkernel shapes. This is a very hacky
40+
solution but something more proper would require a much more
41+
substantial change for a very narrow use-case.
42+
- Add new interface type so that we can force all mixtures of row- and
43+
column-storage for gemmsup. This is necessary to test all kernels.
44+
- Some arcane trickery with the storage type (`stor3_t stor_id`), the
45+
storage (row/column) of parameters, and transposition in order to a)
46+
actually test all kernels, and b) ensure that kernels receive operands
47+
which meet the expected constraints. For example, the RCC kernel is
48+
"non-primary" for a row-major kernel, and so need to be adjusted so
49+
that storage is actually like CRR.
50+
- It seems highly likely that a mixture of row- and column-preferential
51+
gemmsup kernels will *NEVER* work. There probably shouldn't be
52+
separate preferences for each kernel.
53+
- Test gemm ukrs for all microtile sizes.
54+
- Add Makefile option to echo testsuite output.
55+
- Use `make T=1 ...` to echo testsuite output as it is run.
56+
- Output is still written to `output.testsuite` regardless.
57+
- Have CI tests use this option to prevent timeouts due to inactivity.
58+
- Initialize all reference sup blocksizes.
59+
- Add flags (gcc+llvm) to make `void*` arith. an error
60+
- Fix bug with firestorm (Apple M-series) gemmsup.
61+
- One of the armv8a gemmsup kernels was performing arithmetic on `void*`.
62+
- Only firestorm is affected as of now, but potentially other arm64
63+
architectures if gemmsup were to be enabled.
64+
- Manifested as UB (typically incorrect numerical result).
65+
- Thx to Oliver Grisel (@ogrisel) for reporting and sending MRE.
66+
67+
(cherry picked from commit 5e22e1c63ccbda6e4320a4d694806edd564c7c85)
68+
69+
commit 75ecc45a2fda18f97c65f610a473dbe9bd93ef92
70+
Author: Eylon Eliyahu Krause <64223519+EylonKrause@users.noreply.github.com>
71+
Date: Thu Jun 25 00:31:37 2026 +0300
72+
73+
Fix use-after-free of root thrinfo_t in sup thread decorator (#931)
74+
75+
Details:
76+
- `bli_l3_sup_thrinfo_update()` freed the root `thrinfo_t` node and returned a
77+
replacement through its `thrinfo_t**` out-parameter, but only the local
78+
'thread' pointer inside `bli_gemmsup_int()`/`bli_gemmtsup_int()` was updated.
79+
The caller, `bli_l3_sup_thread_decorator_entry()`, still held the original
80+
pointer and used it for the closing `bli_thrinfo_barrier()` and
81+
`bli_thrinfo_free()`, reading and freeing already-freed memory
82+
(heap-use-after-free followed by a double-free of the root node).
83+
- This is normally masked because BLIS's sba/pba pools recycle the freed
84+
block, so it only manifests when the pools are disabled (e.g.
85+
`./configure --disable-sba-pools`, the configuration in #780) or under
86+
AddressSanitizer (`./configure --enable-asan`).
87+
- Re-factorize the thread control tree in place instead: keep the root
88+
node, which the decorator still owns, and free + regrow only the subtree
89+
beneath it. The shared subtree construction is factored into a new
90+
`bli_l3_sup_thrinfo_grow()` helper, mirroring the existing
91+
`bli_l3_thrinfo_create()`/`bli_l3_thrinfo_grow()` split, so the create and
92+
update paths no longer duplicate it. `bli_l3_sup_thrinfo_update()` now
93+
takes `thrinfo_t*` rather than `thrinfo_t**`.
94+
- Verified on a Zen4 (Ryzen 9 8940HX, Ubuntu 24.04):
95+
- `./configure --enable-asan --disable-sba-pools --disable-pba-pools auto`:
96+
AddressSanitizer reports heap-use-after-free in
97+
`bli_l3_sup_thread_decorator_entry` before this change; clean after.
98+
- Shipping config (`./configure auto`, pools enabled, `BLIS_NUM_THREADS=4`):
99+
the fast testsuite passes 2772/2772 and the BLAS test drivers all
100+
pass, with no numerical regression.
101+
- Fixes #919.
102+
- Fixes #780.
103+
- The diagnosis and the root-preserving fix strategy are due to @chillenb
104+
(#919, #920); this change implements the same strategy while removing the
105+
code duplication.
106+
- Thanks to @EylonKrause for the updated PR (#931).
107+
108+
Signed-off-by: EylonKrause <eylon1909@gmail.com>
109+
Co-authored-by: Devin Matthews <damatthews@smu.edu>
110+
Co-authored-by: Christopher Hillenbrand <christopher.hillenbrand@yale.edu>
111+
(cherry picked from commit f650c3117c1476f2db7a6b11347af54a1bca9717)
112+
113+
commit 087d92524f3c002c52a55aa8719bf41700d69581
114+
Author: Michał Górny <mgorny@quansight.com>
115+
Date: Tue Nov 11 17:15:11 2025 +0100
116+
117+
Fix typo in `--help`: `--show-config-list` (#909)
118+
119+
Details:
120+
- `--show-config-lists` should be `--show-config-list` in the `--help` output.
121+
122+
Signed-off-by: Michał Górny <mgorny@quansight.com>
123+
(cherry picked from commit 34fa24be9ef0dfac04c89023a4981201cb33bac1)
124+
125+
commit 29da50b9e25b01e410057ffb0c9c328a272e0982
126+
Author: Spring Vaught <64140045+xvyv99@users.noreply.github.com>
127+
Date: Wed Nov 12 00:14:23 2025 +0800
128+
129+
fix(bli_gks): correct variable name in debug print statement (#906)
130+
131+
Details:
132+
- Incorrect variable `ind` used in memory tracing print statement changed to `id`.
133+
134+
(cherry picked from commit 295a600e586a1581bc1b20b00a6ed774c8e7cbcd)
135+
136+
commit 3722d070191e5a3a2e7feffafbdb7580d12deb12
137+
Author: Michał Górny <mgorny@gentoo.org>
138+
Date: Tue Nov 11 05:37:20 2025 +0100
139+
140+
Blacklist knl for clang 19+ (#908)
141+
142+
Details:
143+
- KNL-specific `-mavx512er` and `-mavx512pf` flags have been removed
144+
from Clang in llvm/llvm-project#92883, which was included in Clang 19.
145+
- Fixes #907.
146+
147+
Signed-off-by: Michał Górny <mgorny@quansight.com>
148+
(cherry picked from commit 071dfce5f7b1100bedbe2e1704b0f7c65639cce4)
149+
150+
commit 20ebcf1a318e6930c94deeadcddb88122cd808c1
151+
Author: harsdave <harsdave@amd.com>
152+
Date: Mon Oct 20 21:10:38 2025 +0530
153+
154+
fix(dgemm-sup-haswell kernels): correct offset calculation on void pointers (#900)
155+
156+
Details:
157+
- The DGEMM sup haswell kernel was failing because the pointer offset was computed
158+
on a `void *`.
159+
- The offset must be calculated in units of `double`, so we now cast to `double *`
160+
before applying the offset. This ensures correct indexing in the matrix and resolves
161+
the kernel failure.
162+
- Fixes #899
163+
164+
(cherry picked from commit 5d9332ee4b5ba20b45d8d1e8baf6083cd5f952d7)
165+
166+
commit 8f013052fdfcea4370947511564f843a7d5aa4e8
167+
Author: Minh Quan Ho <1337056+hominhquan@users.noreply.github.com>
168+
Date: Thu Sep 25 18:27:57 2025 +0200
169+
170+
common.mk: fix flags concatenation order (#876)
171+
172+
Details:
173+
- noopt-flags were added after some CROPTFLAGS or CKOPTFLAGS, which
174+
may alter expected behavior from user, since compiler only keeps
175+
the last occurrence of a flag. Flags should be appended from
176+
the most naive one (noopt) to the most advanced (opt) ones.
177+
- This commit moves noopt-flags to the first place of all sets.
178+
179+
(cherry picked from commit e23d9366885e40dad627dc957bdb5773d9c028dc)
180+
181+
commit b4734cbc5c6433495c552dcd807ba88d1c901170
182+
Author: Devin Matthews <damatthews@smu.edu>
183+
Date: Thu Sep 11 19:00:41 2025 -0500
184+
185+
Update Haswell gemmsup fix for gcc 16 and later. (#891)
186+
187+
Details:
188+
- The problem persists with gcc16 so enable the fix for gcc15 *and later* (thanks @negril).
189+
- Disable all vectorization, not just SLP vectorization (thanks @thesamesam).
190+
191+
(cherry picked from commit 5c2b22da811b41a03905a8612e44579ad7fac48a)
192+
193+
commit e84282f09c9267857cb687858e9f64e1a00f44fe
194+
Author: Devin Matthews <damatthews@smu.edu>
195+
Date: Fri Jul 25 15:37:39 2025 -0500
196+
197+
Fix installation of blis.h.
198+
199+
(cherry picked from commit 358e689cadd6757f564a2992cf46a2f7d6fa6bb0)
200+
201+
commit 6d5b8bfc523f5d603c87a86a1918f87dff8f5b93
202+
Author: Devin Matthews <damatthews@smu.edu>
203+
Date: Wed Jul 23 14:44:45 2025 -0500
204+
205+
Improve NVHPC support and add CI test. (#880)
206+
207+
(cherry picked from commit 54a01412126688a5325f4ce27b1b67fbed457aca)
208+
209+
commit 1ed15a5e352ff97c6e584e5db5572afe4f2aeb7b
210+
Author: Devin Matthews <damatthews@smu.edu>
211+
Date: Wed Jul 23 14:05:13 2025 -0500
212+
213+
Additional symbols needed to be made public.
214+
215+
(cherry picked from commit 3a2058a59a32055f800aa222645315b684bead2a)
216+
217+
commit 89cabc386afd12b50f56b478d1e9bad01fddbec1
218+
Author: Devin Matthews <damatthews@smu.edu>
219+
Date: Thu Jul 3 01:40:55 2025 +0300
220+
221+
Add struct/enum names for all typedefs.
222+
223+
Details:
224+
- Structs and enums are typedef'd to save on typing, and many struct typedefs also have a related struct name (e.g. `typedef struct foo_s {...} foo_t;`). However, not all structs have this and none of the enums do.
225+
- When using BLIS from C++, an attempt to forward declare any unnamed but typedef'd fails (since it is an unnameable type). Structs with names work fine though.
226+
- Adding struct/enum names *everywhere* (even where it likely doesn't make sense) sets a universal precedent, and guarantees that all structs have names where they actually might be forward declared.
227+
- (p.s. it is sometimes advisable to forward declare a struct from `blis.h` rather than including the entire header at that point to avoid polluting other headers with the entire namespace [or the `#include` dependency])
228+
229+
(cherry picked from commit ef98321a7c5d927fbcc7474ff2084d09bd764cc4)
230+
231+
commit e8566eb3e773fb54d11b33e371d13f22d2941e50
232+
Author: Devin Matthews <damatthews@smu.edu>
233+
Date: Tue Jun 24 23:49:44 2025 -0500
234+
235+
CHANGELOG update (2.0)
236+
1237
commit 894b0955a250682da0d2d3f074f910aaaf88c168
2238
Author: Devin Matthews <damatthews@smu.edu>
3239
Date: Tue Jun 24 23:39:05 2025 -0500

0 commit comments

Comments
 (0)