Giter VIP home page Giter VIP logo

adark's People

adark's Issues

a6: Add int64 support

What functionality is missing?
64-bit words operation.

Why is it so important to have it?
More efficient comparison of strings.
Allows for non-restricted length of Huffman codes.
Today's consumer CPU's are mostly 64-bit.

What are the implementation stages:
1. Introduce an abstraction of the comparison type.
2. Add a pre-processor directive.
3. Compare performance.

Original issue reported on code.google.com by kvarkus on 28 Nov 2011 at 2:53

a7: Remove the bit array

What functionality is missing?
Bit array is not necessary.

Why is it so important to have it?
Memory requirements can be N/4 lower.

What are the implementation stages:
1. Pack some bits into the suffixes.
2. Remove the array.
3. Test and benchmark.

Original issue reported on code.google.com by kvarkus on 7 Dec 2011 at 10:05

gpu: Scatter into 2D texture

What functionality is missing?
We are using only a single line of a 2D texture, so GL limits our input size by 
8k. By utilizing more lines we can get larger blocks support (at least 1<<26 
size).

Why is it so important to have it?
8k is an extremely small limit for the input size.

What are the implementation stages:
1. Upgrade scatter shader
2. Fix texture creation logic


Original issue reported on code.google.com by kvarkus on 3 Mar 2011 at 12:24

a6: Implement IT-2

What functionality is missing?
Itoh-Tanaka 2nd order sorting.

Why is it so important to have it?
Greatly reduces the number of suffixes to sort.

What are the implementation stages:
1. Add first-order statistics (R2).
2. Add classical IT-2.
3. Choose the smallest group to sort.
4. Add command-line options.

Original issue reported on code.google.com by kvarkus on 28 Nov 2011 at 2:13

a7: Optional left-most L-prefixes sorting

What functionality is missing?
Ability to sort LML instead of LMS.

Why is it so important to have it?
LML start with the beginnings of the groups. It would be more efficient to 
radix-sort them.


Original issue reported on code.google.com by kvarkus on 4 Jan 2012 at 11:49

gpu: Batcher Odd-Even Merge Sort

What functionality is missing?
We need a fastest sorting network.

What is the benefit of implementing the support for it?
Sorting network stage will not (probably) be a bottleneck any more.

What are the implementation stages:
1. Understand the method and the proof
2. Find/Create iterative form
3. Translate to OpenGL

Original issue reported on code.google.com by kvarkus on 3 Mar 2011 at 12:10

Implement optimized reverse BWT scheme

What functionality is missing?
Reverse transformation.

Why is it so important to have it?
Practical usage.

What are the implementation stages:
1. Implement basic reverse BWT.
2. Add command-line options.
3. Improve with VY idea (see below).

Original issue reported on code.google.com by kvarkus on 28 Nov 2011 at 8:55

a6: Use header files instead of the forward declarations

What functionality is missing?
Header files.

Why is it so important to have it?
Forward declarations in C are error-prone, because the linker does not check 
that function parameters match.

What are the implementation stages:
1. Add header files.
2. Fix code files.

Original issue reported on code.google.com by kvarkus on 28 Nov 2011 at 3:26

a5: Add suffix group counting utility

What functionality is missing?
A tool to count the size of each ITN group in a particular file.

Why is it so important to have it?
To estimate the benefit on a data set. To analyze the data.

What are the implementation stages:
1. Implement the tool!

Original issue reported on code.google.com by kvarkus on 6 Dec 2011 at 3:18

gpu: Non-power-of-2 input size

What functionality is missing?
Support for input data of the size that is not power of 2. This affects several 
stages of the pipeline.

Why is it so important to have it?
We have to be able to transform any input given.

What are the implementation stages:
1. Upgrade OEM sorting procedure
2. Upgrade hierarchical stages
3. Tweak scatter stage that requires N=4k

Original issue reported on code.google.com by kvarkus on 3 Mar 2011 at 12:21

a4: Optimize bucket access

What functionality is missing?
Bucket access has a lot of cache misses. This is even worse on a4 due to the 
fact 2-nd order radix is used. We can use the same tricks a7 does.

Why is it so important to have it?
Can speed up the linear thing by approx 25%.


Original issue reported on code.google.com by kvarkus on 16 Dec 2011 at 5:05

a4: Choose best suffix group to sort

What functionality is missing?
Archon4 always sorts A<B>=C suffixes. Instead, it can choose either A>B<=C or 
A>B>=C together with A<B<=C. Any of these 3 groups is sufficient to deduce all 
other suffixes, so we can choose the smallest one to sort. While in average all 
of them are 1/3 of the input, the actual proportion can depend heavily on the 
nature of the data.

Why is it so important to have it?
It can reduce the number of suffixes required to sort without any performance 
penalty, just with a bit of more (localized) complexity.

What are the implementation stages:
1. Compute the theory behind each group.
2. Implement 3 different inducing paths.
3. Add logic to choose the best one.
4. Test to compare with a4r0.

Original issue reported on code.google.com by kvarkus on 6 Dec 2011 at 3:09

Cover all Archon versions (a1-a5)

What functionality is missing?
Source and binaries of archon BWT and dark compressors.

Why is it so important to have it?
To have a complete profile of my BWT-based compression research.

What are the implementation stages:
1. Add OpenDark, dark, archon2 and archon3 to downloads.
2. Include archon-4 and archon-5 into the source tree.
3. Document functionality and parameters into the wiki.

Original issue reported on code.google.com by kvarkus on 28 Nov 2011 at 2:10

a6: Huffman alphabet compression

What functionality is missing?
Huffman encoding of the alphabet.

Why is it so important to have it?
Uniformly distribute codes in the input sequence. Maximizes the comparison 
sorting productivity.

What are the implementation stages:
1. Research Huffman codes
2. Implement in a separate utility
3. Port to the main program

Original issue reported on code.google.com by kvarkus on 22 Nov 2011 at 7:11

a7: Use smaller data type when re-cursing if possible

What functionality is missing?
Variable-size data type for sorting.

Why is it so important to have it?
Can take less memory and use limited cache more efficiently.

What are the implementation stages:
1. Implement Key class
2. Fix key packing procedure
3. Use proper template types

Original issue reported on code.google.com by kvarkus on 14 Dec 2011 at 7:44

gpu: Inverse BWT function

What functionality is missing?
Inverse BWT to check the correctness of the output.

What is the benefit of implementing the support for it?
It's a proof all the complex algorithm stages work together correctly.

What are the implementation stages:
1. Write Boo code for it
2. Research possible GPU implementation

Original issue reported on code.google.com by kvarkus on 3 Mar 2011 at 12:12

a6: Command-line options for radix depth and key configuration

What functionality is missing?
Configurable radix depth and key length.

Why is it so important to have it?
To evaluate the cost of improvements.

What are the implementation stages:
1. Add radix depth parameter.
2. Create a configuration notion.
3. Add command-line options.
4. Verify different configurations to work.

Original issue reported on code.google.com by kvarkus on 30 Nov 2011 at 9:09

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.