Skip to content

[enhancement] Memory optimize systematic linear codes #648

Description

@christakahashi

I have a proposed enhancement:

I'm using a Reed Solomon code over GF(2**16) and the G matrix gets around 7-8gb. Since its a systematic code, a k sized block of G is the identity matrix, which is typically the majority of that 7-8gb.

I noticed in the source code that optimizations are made to avoid multiplication by the identity for systematic codes but storage of that matrix is still done.

Besides just not being wasteful this has the benefit in enabling faster serialization of a galois.ReedSolomon object. With the newest version (0.4.10) of galois it takes about 20 seconds for me to generate a ReedSolomon object or alternatively about 16 seconds to de-serialize one from pickle. shrinking the memory footprint would greatly speed up de-serialization allowing me to speed code that relies on a predefined long RS code.

(also thanks again for this great library!)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    fecForward error correctionperformanceAffects speed/performance

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions