Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimization of Matrix struct #93

Closed
Tracked by #94 ...
irakliyk opened this issue May 24, 2022 · 1 comment
Closed
Tracked by #94 ...

Optimization of Matrix struct #93

irakliyk opened this issue May 24, 2022 · 1 comment
Labels
enhancement New feature or request

Comments

@irakliyk
Copy link
Collaborator

irakliyk commented May 24, 2022

Currently, Matrix struct stores trace and polynomial evaluation data in a column-major order. This allows us to run LDE for each column independently, but presents challenges during constraint evaluation where we need to process two sequential rows. Thus, we spend some time reading rows from the trace by copying values from each column into an EvaluationFrame struct.

A better approach could be to store data in a Matrix in a row-major order. This has the following advantages:

  1. EvaluationFrame can just store pointers to rows in the trace - no need to move any data around.
  2. Running LDE and FFT over multiple columns in parallel will actually be faster - probably up to 20% faster than doing it column by column as we do now.
@irakliyk irakliyk added the enhancement New feature or request label May 24, 2022
@irakliyk irakliyk mentioned this issue May 30, 2022
5 tasks
This was referenced Feb 10, 2023
@irakliyk irakliyk mentioned this issue Feb 20, 2023
7 tasks
@irakliyk
Copy link
Collaborator Author

Closed by #124, #142, #163, and #168.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant