Commit Graph

247 Commits (master)

Author SHA1 Message Date
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
Ethan L. Miller 6219bb9867 Adding support for carry-less multiply. 2013-02-15 11:58:45 -08:00
elm e6fd0a544b Updated the way we track CPU features. Much more stable now.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@100 36f187d4-5712-4624-889c-152d48957efa
2013-02-15 18:11:22 +00:00
plank 327f637b83 Wordsmithing.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@99 36f187d4-5712-4624-889c-152d48957efa
2013-02-13 01:32:10 +00:00
plank 64386c048b Added whats_my_sse.c, so users can test the sse crap themselves.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@98 36f187d4-5712-4624-889c-152d48957efa
2013-02-13 01:10:11 +00:00
plank 61d75c53f1 Bugs with SSE4. Shit.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@97 36f187d4-5712-4624-889c-152d48957efa
2013-02-10 21:04:32 +00:00
plank 92a5441ea4 This holds the files that should be included as part of the release.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@96 36f187d4-5712-4624-889c-152d48957efa
2013-02-10 19:57:20 +00:00
plank d0f2d55cce Putting on the finishing touches.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@95 36f187d4-5712-4624-889c-152d48957efa
2013-02-10 19:56:15 +00:00
plank 4e5e5cd17d Making it work with the maunal.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@94 36f187d4-5712-4624-889c-152d48957efa
2013-02-09 17:45:44 +00:00
plank bd685c8d64 Changed the defaults.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@93 36f187d4-5712-4624-889c-152d48957efa
2013-02-08 23:22:19 +00:00
plank 95a7d21c8a Changed the defaults for w=32.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@92 36f187d4-5712-4624-889c-152d48957efa
2013-02-08 22:50:22 +00:00
plank a8fc92d1d4 Changed defaults for w = 8 and w = 16
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@91 36f187d4-5712-4624-889c-152d48957efa
2013-02-08 21:15:11 +00:00
plank c975077849 Changed the default method for w=4 to use SSE if it is there.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@90 36f187d4-5712-4624-889c-152d48957efa
2013-02-08 16:44:30 +00:00
plank ac9ec2ab00 Builds a library now.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@89 36f187d4-5712-4624-889c-152d48957efa
2013-02-08 15:04:11 +00:00
plank e96c0e2801 Renaming gf.h to gf_complete.h
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@88 36f187d4-5712-4624-889c-152d48957efa
2013-02-08 01:20:24 +00:00
plank b860290867 Blah.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@87 36f187d4-5712-4624-889c-152d48957efa
2013-02-07 19:03:41 +00:00
plank f58a7de9d0 w128: bytwo-b, group region, split 128 4. No sse for anything.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@86 36f187d4-5712-4624-889c-152d48957efa
2013-02-06 22:39:09 +00:00
plank 45fa1443d2 SSE SPLIT ALTMAP w=64. A bitch.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@85 36f187d4-5712-4624-889c-152d48957efa
2013-02-06 19:33:31 +00:00
plank 49facc141a All splits for w=64 except the SSE ones.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@84 36f187d4-5712-4624-889c-152d48957efa
2013-02-04 22:09:52 +00:00
plank 1b64c4d5c6 Added GROUP to w=64.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@83 36f187d4-5712-4624-889c-152d48957efa
2013-02-04 20:59:33 +00:00
plank 9ac53e1de2 Fixed the alignment bug for w=64. This will continue to be a problem with w=128, btw...
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@82 36f187d4-5712-4624-889c-152d48957efa
2012-12-31 21:27:51 +00:00
kmgreen a990e8cfc7 Added utility to find irreducible polynomials.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@81 36f187d4-5712-4624-889c-152d48957efa
2012-12-29 17:34:39 +00:00
kmgreen 5c6033fca8 w=64 Composite field changes.
STDMAP and single operations are passing the unit tests.  ALTMAP is not.  I think it may be an issue with the mapping.  Jim is going to have a look.



git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@80 36f187d4-5712-4624-889c-152d48957efa
2012-12-29 17:33:37 +00:00
plank 7fb31facc4 Getting rid of executables. Sorry
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@79 36f187d4-5712-4624-889c-152d48957efa
2012-12-08 15:31:04 +00:00
plank 70b6d55aee Big checkin after I've lost the others. Ha ha.
git-svn-id: svn://mamba.eecs.utk.edu/home/plank/svn/Galois-Library@78 36f187d4-5712-4624-889c-152d48957efa
2012-12-08 15:28:43 +00:00