2005-01-18 17:39:44

by Indrek Kruusa

[permalink] [raw]
Subject: [QUESTION - FYI] Vectorized CRC calculation

Hi!
First, sorry about the so-so topic for the kernel developers...but still
there are such things inside :)
Currently I am investigating how "they" divide those polynomials and
which possibilities exists to use SIMD for such calculations. I have
found several papers about how to do it with Altivec and my question is:
does anybody knows about efforts to use Altivec for CRC calculations
here? Topic itself is quite old...
Or is there just any other ongoing developments which implements for
example permute/shuffle instructions (Altivec: vperm/SSE2: pshufd) for
table lookups?

One more question: is there PCI/PCIe cards (eg. router) which implements
Layer 3(-4) in hardware and which are possible to use as "hardware net
accelerator"?

thanks,
Indrek


Links
-------

Most latest updated C code CRC calculation I have found
http://lxr.mozilla.org/seamonkey/source/modules/zlib/src/crc32.c


"TCP/IP checksum vectorization using AltiVec"
http://www.ibm.com/technology/power/newsletter/october2004/files/web.pdf

"Altivec extension to powerpc accelerates media processing" (includes
hints for table lookup code)
http://ccrc.wustl.edu/~jefritts/CS525_SP03/readings/altivec.pdf