I just noticed this article that describes how swi-prolog can be compiled to be specifically optimized for intel architecture cpu capabilities.
Has someone tried this out?
It sounds like a great additional way to get further performance – perhaps its worth to have such a precompiled version as well for a specific family of CPUs.
Has someone tried this out? No, but added to my to-do list, all be it near the bottom.
I only glanced at the document. Are all of the tools mentioned free?
With some of these types of tools you need to send in an e-mail and explain why you need it. Had to do this to get the drivers to use TensorFlow on laptop, took a few days.
The paper seems to test on only one program (Towers of Hanoi), which doesn’t exercise many parts of Prolog.
Something like the Aquarius benchmark suite or the Mercury benchmarks would give more useful results.
We really need a new benchmark suite dealing with all the stuff that is hardly or not covered by these: constraints, garbage collection, dynamic code, indexing, tabling, etc. For one thing we could use that for profile guided optimization.
Also, i noticed that Mercury has some libraries that seem to specifically designed for lower level manipulations and performance, such as store [1] – which enables (native?) linked-lists and performant bit arrays [2] – which i guess is translated to native c bit manipulations of unsigned int (32?/64?)
Perhaps such items could also add value for swi-prolog.