codecs.org Part of GStreamer Family
home
SpeciaLib
libcodec
bitstream
Hyperopt
nopcodes
 
SourceForge Logo
 
 
 
 
 
 

What is HyperOpt?

HyperOpt is a tool built on top of nopcodes designed to calculate and time all valid reorderings of a small sequence of instructions in a program. The premise is that modern CPUs are complex enough that the real performance of a sequence of code depends heavily on how the instructions are arranged, and that this complexity is usually not comphrehensible by the author of the code.

In testing, we've found that the possible performance improvements for the same piece of code with the same search depth during reordering can yield anywhere from 5% to 21% speed improvements.

Future plans are to convert from a brute-force search algorithm to a distributed genetic algorithm, enabling a much wider-ranging search without taking ludicrous amounts of time. The brute-force algorithm worst-case is defined by the factorial function (!), though in practice it is much less than that as whole branches are trimmed from the tree by broken dependencies.