Commit Graph

124 Commits (5be1fecbcb8bc7fc2370185ec9faa36ae367b58a)

Author SHA1 Message Date
Loic Dachary 29899ad443 move #if to avoid unused warning
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-06 17:32:30 +01:00
Loic Dachary 0020ff8092 initialize pointer early in the function
otherwise it may be used uninitialized

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-06 17:29:58 +01:00
Loic Dachary d36bd6e540 cast void* to char* for pointer arithmetic
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-06 17:29:36 +01:00
Loic Dachary f043479e3c remove unused variables
In some places move variables in the scope of the CPP define where they
are used.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-06 15:15:22 +01:00
Loic Dachary 4bf474daf7 increase compilation warning level to -Wall
and remove unused CXXFLAGS

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-03-06 15:15:22 +01:00
Jim Plank f8ff1e2f64 Formatting 2014-01-29 16:37:12 -05:00
Jim Plank 9ee4bbdff5 Formatting 2014-01-29 16:06:38 -05:00
Jim Plank c374b37b9c Updated manual and readme. 2014-01-29 16:05:14 -05:00
Jim Plank 814240e336 Changed %d to %u in gf_general.c 2014-01-25 10:33:23 -05:00
Kevin Greenan dcf65692b0 Updated autoconf to put BSD license in COPYING. 2014-01-07 08:36:44 -08:00
Kevin Greenan 02bc991f68 Added more header files to the distribution, which will allow
clients of the lib to take advantage of even more stuff.
2014-01-02 10:03:06 -08:00
Jim Plank ee0e03bda8 Revision 1.02 is done. Manual updated. 2014-01-01 12:04:37 -05:00
Jim Plank f0c32c94bc Removed GROUP/128/SSE. It wasn't compiling, and it needed an overhaul.
I'll do it someday when I'm bored.
2014-01-01 11:00:40 -05:00
Jim Plank fb0bbdcf62 Fixed the problem with PCLMUL and gf_complete.h. Removed
ARCH_64 from everything but 128/GROUP/SSE.  Fortunately, no
one ever uses that.
2013-12-31 20:08:18 -05:00
Kevin Greenan 8900c0e635 Make INTEL_SSE4_PCLMUL flag consistent (was INTEL_PCLMUL in gf.c) 2013-12-30 22:12:43 -08:00
Kevin Greenan 5687b9c2cc Third.1 time's a charm (autoconf non-sense for PCLMUL). 2013-12-30 22:50:04 -08:00
Kevin Greenan 137b7ccd75 Revert "Third time's a charm (autoconf non-sense for PCLMUL)."
The commit was not successfully pushed (not sure what happened).

This reverts commit 762926920a.
2013-12-30 22:40:18 -08:00
Kevin Greenan 762926920a Third time's a charm (autoconf non-sense for PCLMUL). 2013-12-30 21:26:47 -08:00
Kevin Greenan a98f6c1115 Added entry to configure.ac to avoid running autotools during normal build. 2013-12-30 16:31:54 -08:00
Kevin Greenan a97563f0e4 Added PCLMUL to the autoconf macro... 2013-12-30 14:14:08 -08:00
Jim Plank 393fa02fd9 Some wordsmithing. 2013-12-30 15:55:37 -05:00
Jim Plank 2c583ca711 Version numbering, and pointing only to bitbucket. 2013-12-30 13:42:50 -05:00
Jim Plank 52376d9cc6 Copmiler errors with %llx. 2013-12-29 17:01:42 -05:00
Jim Plank 88bb18c651 Added time_tool.sh to tools for quick timing.
Modified gf_methods to be a little more flexible.
2013-12-29 16:51:37 -05:00
James Plank 8eec6d4676 Merged in kmgreen2/gf-complete-testautoconf (pull request #2)
Autoconf
2013-12-28 14:29:06 -05:00
Kevin Greenan ef18bccc3a Group for w=128 was failing because SSE4 is enabled, but not ARCH_64 (on my Linux VM). Ensure that both are defined
when init'ing group for w=128.
2013-12-10 09:00:32 -08:00
Kevin Greenan e1c76b4dd4 Added exhaustive test support (Ethan's changes to gf_unit and gf_methods) and overrode autoconf's defaults for CFLAGS. 2013-12-07 16:05:31 -08:00
Kevin Greenan 87bb260417 Adding flag for SSSE3. Must have missed it when I updated the ax_ext() macro. 2013-12-05 08:35:18 -08:00
Kevin Greenan 639c106d23 Build failed... It was because the some headers were in the wrong place.
It was working for me because the headers were installed in /usr/local/include
on my Linux box.
2013-12-04 21:58:41 -08:00
Kevin Greenan e0d7928749 Copy README.txt to README 2013-12-04 21:27:29 -08:00
Kevin Greenan 153dd20988 Setting up autoconf/automake for GF-Complete
Also re-organized the directory structure.

Signed-off-by: Kevin Greenan <kmgreen2@gmail.com>
2013-12-04 21:24:29 -08:00
Jim Plank bc2f7c1c36 Revision 1.01. 2013-11-12 13:06:53 -05:00
Jim Plank 07b0399e0c Lazy table bug. Thanks, Kevin. 2013-11-12 12:59:36 -05:00
Jim Plank 7bb3797a50 Added SPLIT SSE STDMAP for w=128 2013-11-08 23:21:22 -05:00
Jim Plank 10b7d76532 Added headers to the include files, and gf_size() to the documentation. 2013-10-09 11:35:06 -04:00
Jim Plank b0e2ae07ab Put headers on the C files. 2013-10-09 11:00:24 -04:00
Jim Plank 110523d6f3 GF-Complete Release 1.0.
Please see the user's manual for details.
2013-10-09 10:36:37 -04:00
Ethan L. Miller 79a46d18b6 Optimized version of GF(2^64) multiply using Intel SIMD carry-free multiply. 2013-09-19 15:57:07 -07:00
Jim Plank b36cada557 Man, that was an idiotic bug in division for w=16. I had d_antilog pointing
to the log table rather than the antilog table.  Not unrelatedly, the unit
tester is now testing division.
2013-04-09 16:29:46 -04:00
Jim Plank a351a6501b Fixed bug with logtable division. 2013-04-08 11:38:56 -04:00
Jim Plank 345a4de171 See the last commit. I forgot to do commit -a. 2013-04-01 16:26:10 -04:00
Jim Plank 5c214745b6 Added inline functions for w=4, 8 and 16. Plus gf_inline_time.c to time
the inline functions.  I see that gf_unit at present is not testing division --
that's a problem which we need to fix.

Multiplication for w=4 & 8 is a little less than 2x faster when inlined.
w=16 is quite a bit slower.  If I had the patience, I'd test logzero inlined,
but I don't really have the patience at present.
2013-04-01 16:24:25 -04:00
Jim Plank d05a931f04 Added LOG_ZERO_EXT and modified LOG_ZERO. The new LOG_ZERO doesn't have an entry
for two times the sentinel, because it's only needed for single multiplication.
I haven't fixed w=16 yet with this.  Monday maybe?  Timings on our lab machines
show no big difference.  We'd only expect a difference in single multiplies, and
it's in the noise really.

UNIX> gf_time 8 MDG 0 10240 10240 LOG - -
Seed: 0
      Multiply:             0.231191 s   Mops:    100.000       432.542 Mega-ops/s
        Divide:             0.229992 s   Mops:    100.000       434.797 Mega-ops/s
 Region-Random: XOR: 0      0.095446 s     MB:    100.000      1047.712 MB/s
 Region-Random: XOR: 1      0.115485 s     MB:    100.000       865.914 MB/s
UNIX> gf_time 8 MDG 0 10240 10240 LOG_ZERO - -
Seed: 0
      Multiply:             0.228568 s   Mops:    100.000       437.506 Mega-ops/s
        Divide:             0.227718 s   Mops:    100.000       439.140 Mega-ops/s
 Region-Random: XOR: 0      0.085062 s     MB:    100.000      1175.613 MB/s
 Region-Random: XOR: 1      0.095891 s     MB:    100.000      1042.846 MB/s
UNIX> gf_time 8 MDG 0 10240 10240 LOG_ZERO_EXT - -
Seed: 0
      Multiply:             0.228960 s   Mops:    100.000       436.758 Mega-ops/s
        Divide:             0.227758 s   Mops:    100.000       439.063 Mega-ops/s
 Region-Random: XOR: 0      0.085180 s     MB:    100.000      1173.981 MB/s
 Region-Random: XOR: 1      0.095931 s     MB:    100.000      1042.421 MB/s
UNIX>
2013-03-08 16:31:42 -05:00
Jim Plank 47896e9ddc Killing all of these junk files. They should not be in the repository. 2013-03-04 17:06:43 -05:00
Jim Plank 4d5f453827 Killing junk.txt 2013-03-04 17:05:18 -05:00
Jim Plank b2d6666ed7 Added clm region multiplication for w=64. I should make this the default,
but I haven't yet.  Speed is nice and fast, but not as fast ast SPLIT 64 4 SSE,ALTMAP:

UNIX> gf_time 64 R 0 10240 10240 -
Seed: 0
 Region-Random: XOR: 0      0.661736 s     MB:    100.000       151.118 MB/s
 Region-Random: XOR: 1      0.659374 s     MB:    100.000       151.659 MB/s
Region-By-Zero: XOR: 0      0.002128 s     MB:    100.000     46989.738 MB/s
Region-By-Zero: XOR: 1      0.000248 s     MB:    100.000    402911.047 MB/s
 Region-By-One: XOR: 0      0.002168 s     MB:    100.000     46131.808 MB/s
 Region-By-One: XOR: 1      0.003946 s     MB:    100.000     25344.758 MB/s
 Region-By-Two: XOR: 0      0.377993 s     MB:    100.000       264.555 MB/s
 Region-By-Two: XOR: 1      0.382269 s     MB:    100.000       261.596 MB/s
UNIX> gf_time 64 R 0 10240 10240 SPLIT 64 4 SSE,ALTMAP -
Seed: 0
 Region-Random: XOR: 0      0.050045 s     MB:    100.000      1998.211 MB/s
 Region-Random: XOR: 1      0.049198 s     MB:    100.000      2032.597 MB/s
Region-By-Zero: XOR: 0      0.002100 s     MB:    100.000     47619.255 MB/s
Region-By-Zero: XOR: 1      0.000260 s     MB:    100.000    384445.830 MB/s
 Region-By-One: XOR: 0      0.002139 s     MB:    100.000     46743.609 MB/s
 Region-By-One: XOR: 1      0.003928 s     MB:    100.000     25457.053 MB/s
 Region-By-Two: XOR: 0      0.048678 s     MB:    100.000      2054.330 MB/s
 Region-By-Two: XOR: 1      0.048800 s     MB:    100.000      2049.161 MB/s
UNIX> gf_time 64 R 0 10240 10240 SHIFT SSE -
Seed: 0
 Region-Random: XOR: 0      0.108492 s     MB:    100.000       921.724 MB/s
 Region-Random: XOR: 1      0.110783 s     MB:    100.000       902.663 MB/s
Region-By-Zero: XOR: 0      0.002077 s     MB:    100.000     48155.040 MB/s
Region-By-Zero: XOR: 1      0.000254 s     MB:    100.000    393461.914 MB/s
 Region-By-One: XOR: 0      0.002088 s     MB:    100.000     47902.056 MB/s
 Region-By-One: XOR: 1      0.003885 s     MB:    100.000     25739.822 MB/s
 Region-By-Two: XOR: 0      0.107280 s     MB:    100.000       932.142 MB/s
 Region-By-Two: XOR: 1      0.110782 s     MB:    100.000       902.676 MB/s
UNIX>
2013-03-04 17:02:24 -05:00
Ethan Miller 5c719db2b9 Merged in jimplank/gf-complete-unit-bytwo (pull request #1)
Unit & w=64 bytwo.  Made a few more changes.
2013-03-04 10:20:44 -08:00
Jim Plank 82a365dae1 Getting the defaults and flags working with carryless multiply. Regions next! 2013-03-01 17:23:38 -05:00
Jim Plank ed9bc0f6c4 Unit & w=64 bytwo. 2013-03-01 15:42:29 -05:00
Ethan L. Miller cf6a5dfa29 Basic 64-bit multiply using intrinsics working. 2013-02-15 15:41:46 -08:00