<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nissy-core, branch h48-corner-estimate</title>
<subtitle>The "engine" of nissy, including the H48 optimal solver.</subtitle>
<id>https://git.tronto.net/nissy-core/atom?h=h48-corner-estimate</id>
<link rel='self' href='https://git.tronto.net/nissy-core/atom?h=h48-corner-estimate'/>
<link rel='alternate' type='text/html' href='https://git.tronto.net/nissy-core/'/>
<updated>2025-12-19T06:32:09Z</updated>
<entry>
<title>Add coordinate solvers for corners</title>
<updated>2025-12-19T06:32:09Z</updated>
<author>
<name>Sebastiano Tronto</name>
<email>sebastiano@tronto.net</email>
</author>
<published>2025-12-19T06:32:09Z</published>
<link rel='alternate' type='text/html' href='https://git.tronto.net/nissy-core/commit/?id=de04d37e8520079f5bba3b1a87d42313297543db'/>
<id>urn:sha1:de04d37e8520079f5bba3b1a87d42313297543db</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve performance of H48 by 10-30% using interleaved fallback tables.</title>
<updated>2025-12-17T20:06:12Z</updated>
<author>
<name>Sebastiano Tronto</name>
<email>sebastiano@tronto.net</email>
</author>
<published>2025-12-17T19:54:23Z</published>
<link rel='alternate' type='text/html' href='https://git.tronto.net/nissy-core/commit/?id=d5c60236c06e67e8da45e63843b37e5d619e9d7b'/>
<id>urn:sha1:d5c60236c06e67e8da45e63843b37e5d619e9d7b</id>
<content type='text'>
(See the last 12 commits or so)

H48 now uses interleaved fallback tables, similarly to nxopt / vcube.
This allowed us to simplify the code (we don't use k != 2 anymore for
H48) and gives some nice performance improvement, although repeated
measurements show inconsistent results. The actual speed up depends on
the table, and it is more pronounced on larger versions of the solver.

The nasty part about using interleaved tables is that they are the
most efficient when they are aligned in memory to 512 bits, but the
core library defers memory management to the implementor, so there is
no way to ensure this. For example, any application that wants to save
the tables to a file and then re-load them on a subsequent run (such
as our shell and tools) should make sure to load the data in a 512-bit
aligned memory buffer. The best we can do on the library side having
our main lookup table be 512-bit alinged within the whole solver data
(which includes e.g. cocsepdata and a preamble).

I have also moved some conditionals around in the various checks in the
search dfs hoping to improve the performance further, but the results
have been barely noticeable.

The benchmarks have been updated. Moreover, there is now a way to re-run
them with a single script (see the updates in the benchmarks folder
for details).

Further attempts at optimizing the code via known techniques (such as
prefetching) have failed, but I'll come back to this.
</content>
</entry>
<entry>
<title>Clarified that results are in a &lt;details&gt;</title>
<updated>2025-12-17T19:53:14Z</updated>
<author>
<name>Sebastiano Tronto</name>
<email>sebastiano@tronto.net</email>
</author>
<published>2025-12-17T19:53:14Z</published>
<link rel='alternate' type='text/html' href='https://git.tronto.net/nissy-core/commit/?id=ff68d44aefada070b756a1bdbb0d4d722779440d'/>
<id>urn:sha1:ff68d44aefada070b756a1bdbb0d4d722779440d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix alignment</title>
<updated>2025-12-17T16:36:16Z</updated>
<author>
<name>Sebastiano Tronto</name>
<email>sebastiano@tronto.net</email>
</author>
<published>2025-12-17T16:36:16Z</published>
<link rel='alternate' type='text/html' href='https://git.tronto.net/nissy-core/commit/?id=ec9593e2ff0856d78b37df3a977a753be82bfddc'/>
<id>urn:sha1:ec9593e2ff0856d78b37df3a977a753be82bfddc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve pruning value fetching and re-do benchmarks</title>
<updated>2025-12-17T15:15:02Z</updated>
<author>
<name>Sebastiano Tronto</name>
<email>sebastiano@tronto.net</email>
</author>
<published>2025-12-17T09:51:34Z</published>
<link rel='alternate' type='text/html' href='https://git.tronto.net/nissy-core/commit/?id=ac3a91f4f173e7a38c70d5cd0caf5a025642312b'/>
<id>urn:sha1:ac3a91f4f173e7a38c70d5cd0caf5a025642312b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Cleanup md</title>
<updated>2025-12-17T08:33:41Z</updated>
<author>
<name>Sebastiano Tronto</name>
<email>sebastiano@tronto.net</email>
</author>
<published>2025-12-17T08:33:41Z</published>
<link rel='alternate' type='text/html' href='https://git.tronto.net/nissy-core/commit/?id=4a2e35f21b07a2abbeddc89c8eda5f1aed6bfb51'/>
<id>urn:sha1:4a2e35f21b07a2abbeddc89c8eda5f1aed6bfb51</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove TODO section in doc</title>
<updated>2025-12-17T08:28:03Z</updated>
<author>
<name>Sebastiano Tronto</name>
<email>sebastiano@tronto.net</email>
</author>
<published>2025-12-17T08:28:03Z</published>
<link rel='alternate' type='text/html' href='https://git.tronto.net/nissy-core/commit/?id=e3bb9a1bfee72e83766c86f3cade8259b46c5618'/>
<id>urn:sha1:e3bb9a1bfee72e83766c86f3cade8259b46c5618</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update benchmarks</title>
<updated>2025-12-17T08:26:53Z</updated>
<author>
<name>Sebastiano Tronto</name>
<email>sebastiano@tronto.net</email>
</author>
<published>2025-12-17T08:26:53Z</published>
<link rel='alternate' type='text/html' href='https://git.tronto.net/nissy-core/commit/?id=36f37564cd566e91771cd1f92ac3886917c769d1'/>
<id>urn:sha1:36f37564cd566e91771cd1f92ac3886917c769d1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Cleanup</title>
<updated>2025-12-17T08:15:48Z</updated>
<author>
<name>Sebastiano Tronto</name>
<email>sebastiano@tronto.net</email>
</author>
<published>2025-12-17T08:15:48Z</published>
<link rel='alternate' type='text/html' href='https://git.tronto.net/nissy-core/commit/?id=c6ab40b1602443938e431b996b28fb3d888365bb'/>
<id>urn:sha1:c6ab40b1602443938e431b996b28fb3d888365bb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move some checks around, small improvement</title>
<updated>2025-12-17T06:58:32Z</updated>
<author>
<name>Sebastiano Tronto</name>
<email>sebastiano@tronto.net</email>
</author>
<published>2025-12-17T06:58:32Z</published>
<link rel='alternate' type='text/html' href='https://git.tronto.net/nissy-core/commit/?id=ad9c99d0274b09b152007332cef589f5e649080a'/>
<id>urn:sha1:ad9c99d0274b09b152007332cef589f5e649080a</id>
<content type='text'>
</content>
</entry>
</feed>
