[x264-devel] aarch64: cabac_encode_{decision,bypass,terminal}_asm

Janne Grunau git at videolan.org
Sat Dec 20 21:10:49 CET 2014


x264 | branch: master | Janne Grunau <janne-x264 at jannau.net> | Wed Nov 19 00:33:55 2014 +0100| [59b9c252cfa6242c7fa6424a463e51913996fe6a] | committer: Anton Mitrofanov

aarch64: cabac_encode_{decision,bypass,terminal}_asm

benchmarks on a Nexus 9 (nvidia denver):
101.3 cycles in x264_cabac_encode_decision_c,   67105369 runs, 3495 skips
 97.3 cycles in x264_cabac_encode_decision_asm, 67105493 runs, 3371 skips
132.8 cycles in x264_cabac_encode_terminal_c,    1046950 runs, 1626 skips
116.1 cycles in x264_cabac_encode_terminal_asm,  1048424 runs, 152 skips
 92.4 cycles in x264_cabac_encode_bypass_c,     16776192 runs, 1024 skips
 89.6 cycles in x264_cabac_encode_bypass_asm,   16776453 runs, 763 skips

Cycle counts are not as stable as one would like. The dynamic code
optimisation seems to produce different results for small chnages in a
binary. Repeated runs with the same binary produce stable results
though (ignoring the first run).

> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=59b9c252cfa6242c7fa6424a463e51913996fe6a
---

 Makefile                     |    4 +-
 common/aarch64/asm-offsets.c |   42 +++++++++++++++
 common/aarch64/asm-offsets.h |   39 ++++++++++++++
 common/aarch64/cabac-a.S     |  122 ++++++++++++++++++++++++++++++++++++++++++
 common/cabac.h               |    4 ++
 tools/checkasm.c             |    2 +
 6 files changed, 212 insertions(+), 1 deletion(-)

Diff:   http://git.videolan.org/gitweb.cgi/x264.git/?a=commitdiff;h=59b9c252cfa6242c7fa6424a463e51913996fe6a


More information about the x264-devel mailing list