Characteristic up to 27,397,079 now fast.

Steve Linton has now implemented both single and double precision float versions of the HPMI, with characteristics 197-1669 now using single precision, and the rest up to 27,397,079 using double precision.  In particular, this implies that all fields up to 65,536 are now fast.

Both Intel and AMD have given priority to floating-point computation, and the standards imply that computations with a float that is in fact an integer is exact.  The result is that, despite the extra work the machine must do to operate with floats, they are still often faster than working with integers in the obvious way.  However, the details vary from machine to machine and the differences are not that large, so at the moment the code still uses AS-codes up to 193, and float from 197 upwards.

The float code uses AVX – 256-bit registers for floats.  Hence it works on Intel chips from Sandy Bridge onwards (with some minor exceptions) and on AMD machines from Bulldozer onwards.  On older machines, characteristics 197 upwards will still be very slow by comparison.

Quadratic and cubic extensions are generically implemented provided the field is less than 2^64, and this includes these new characteristics.

Multiplication of 10,000 x 10,000 matrices mod 1669 now takes about 39 seconds on my 1.7 GHz, 2-core Haswell laptop.

 

 

 

Leave a comment