Messages in this thread | | | Date | Mon, 28 May 2012 09:25:05 +0300 | From | Jussi Kivilinna <> | Subject | Re: [PATCH] crypto: twofish - add x86_64/avx assembler implementation |
| |
Quoting Johannes Goetzfried <Johannes.Goetzfried@informatik.stud.uni-erlangen.de>:
> This patch adds a x86_64/avx assembler implementation of the Twofish block > cipher. The implementation processes eight blocks in parallel (two 4 block > chunk AVX operations). The table-lookups are done in general-purpose > registers. > For small blocksizes the 3way-parallel functions from the twofish-x86_64-3way > module are called. A good performance increase is provided for blocksizes > greater or equal to 128B. > > Patch has been tested with tcrypt and automated filesystem tests. >
It would be benefical to expand the twofish vectors in crypto/testmgr.h from 3 blocks to 8 blocks so that 8-way algorithm(s) can be checked runtime. And while at expanding test-vectors, why not just expand to 16 blocks... AVX2 is just one year away:
https://github.com/jkivilin/crypto-avx2/commit/1a72d7a6a1553aee70ad4b6a1980ca372181f40d
> > Tcrypt benchmark results: > > Intel Core i5-2500 CPU (fam:6, model:42, step:7)
<snip>
> +/* > + * Glue Code for AVX assembler version of Twofish Cipher > + * > + * Copyright (C) 2012 Johannes Goetzfried > + * <Johannes.Goetzfried@informatik.stud.uni-erlangen.de> > + * > + * Glue code based on twofish_sse2_glue.c by: > + * Copyright (C) 2011 Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
I think you mean serpent_sse2_glue.c :)
-Jussi
| |