3 ms·
This. Big part of the most high-performance code (like crypto, linear-algebra or fft kernels) are even generated: you build a program that will generate a progr
by lapinot 6y ago
This. Big part of the most high-performance code (like crypto, linear-algebra or fft kernels) are even generated: you build a program that will generate a program that will get compiled (or is already asm). One can arguably say that the generator program is part of the compiler chain (takes parameters describing some algorithm and generates executable code). And these generators sometimes call out to SMT solvers or otherwise solve complicated algorithmic problems (integer programming problems for vectorizing with the polyhedral model). Hence these are specialized high-level compilers that take a long time to output extremly fast and small programs. Most people don't call the generators tho, they only use the generated code: long compilation time is no problem if you have good modular compilation.
http://www.fftw.org/ http://www.fftw.org/
http://flopoco.gforge.inria.fr/ http://flopoco.gforge.inria.fr/
https://github.com/FStarLang/kremlin https://github.com/FStarLang/kremlin
https://github.com/project-everest/vale https://github.com/project-everest/vale