• Ganesh Ajjanagadde's avatar
    lavc/cbrt_tablegen: speed up tablegen · 07a11ebc
    Ganesh Ajjanagadde authored
    This exploits an approach based on the sieve of Eratosthenes, a popular
    method for generating prime numbers.
    
    Tables are identical to previous ones.
    
    Tested with FATE with/without --enable-hardcoded-tables.
    
    Sample benchmark (Haswell, GNU/Linux+gcc):
    prev:
    7860100 decicycles in cbrt_tableinit,       1 runs,      0 skips
    7777490 decicycles in cbrt_tableinit,       2 runs,      0 skips
    [...]
    7582339 decicycles in cbrt_tableinit,     256 runs,      0 skips
    7563556 decicycles in cbrt_tableinit,     512 runs,      0 skips
    
    new:
    2099480 decicycles in cbrt_tableinit,       1 runs,      0 skips
    2044470 decicycles in cbrt_tableinit,       2 runs,      0 skips
    [...]
    1796544 decicycles in cbrt_tableinit,     256 runs,      0 skips
    1791631 decicycles in cbrt_tableinit,     512 runs,      0 skips
    
    Both small and large run count given as this is called once so small run
    count may give a better picture, small numbers are fairly consistent,
    and there is a consistent downward trend from small to large runs,
    at which point it stabilizes to a new value.
    Reviewed-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
    Signed-off-by: 's avatarGanesh Ajjanagadde <gajjanagadde@gmail.com>
    07a11ebc
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libpostproc Loading commit data...
libswresample Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL.md Loading commit data...
LICENSE.md Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
RELEASE Loading commit data...
arch.mak Loading commit data...
cmdutils.c Loading commit data...
cmdutils.h Loading commit data...
cmdutils_common_opts.h Loading commit data...
cmdutils_opencl.c Loading commit data...
common.mak Loading commit data...
configure Loading commit data...
ffmpeg.c Loading commit data...
ffmpeg.h Loading commit data...
ffmpeg_dxva2.c Loading commit data...
ffmpeg_filter.c Loading commit data...
ffmpeg_opt.c Loading commit data...
ffmpeg_qsv.c Loading commit data...
ffmpeg_vdpau.c Loading commit data...
ffmpeg_videotoolbox.c Loading commit data...
ffplay.c Loading commit data...
ffprobe.c Loading commit data...
ffserver.c Loading commit data...
ffserver_config.c Loading commit data...
ffserver_config.h Loading commit data...
library.mak Loading commit data...
version.sh Loading commit data...