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

Toolkit Optimization #549

Open
6 tasks
mtao opened this issue Nov 29, 2023 · 2 comments
Open
6 tasks

Toolkit Optimization #549

mtao opened this issue Nov 29, 2023 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@mtao
Copy link
Collaborator

mtao commented Nov 29, 2023

Now that the toolkit is beginning to work we are identifying a number of performance issues. These issues were predicted to some degree, but it is finally time to start optimizing performance a bit.

Attributes

One category where there are certainly optimizations to be performed is the attribute system.

Reduce attribute creation

There are a few ways how we could potentially reduce attribute creation

  • Implement an abstraction that holds multiple accessors to minimizes the number of attributes that are created
  • More rigorously implement the _slow paradigm to let users be more aware of when they might accidentally create accessors. We want to keep these slow pipelines to allow users to easily declare assertions / allow for rapid prototyping but it should be easy to identify which interfaces are creating unecessary accessors.
  • Implement per-thread accessors (this might be in conjunction with the aforementioned multiple-accessor abstraction.

Reduce access costs

  • Implement templated attribute accessors for vector types to reduce dependency on runtime attribute sizes as most applications depend on static sizes
  • Change AttributeCache to use a hashmap instead of map (like unordered_map)
  • Change AttributeCache underlying data storage to something more memory coherent (like a flat vector with enough size reserved)
@mtao
Copy link
Collaborator Author

mtao commented Nov 29, 2023

@Zhouyuan-Chen i believe you have a test that is good for showing off some performance deficiencies - could you post which test it is / where we can find it?

@Zhouyuan-Chen
Copy link
Collaborator

Zhouyuan-Chen commented Nov 29, 2023

@Zhouyuan-Chen i believe you have a test that is good for showing off some performance deficiencies - could you post which test it is / where we can find it?

in this branch

under /tests/components/test_embedded_remeshing_pipeline.cpp

  • embedded_remeshing_2D_pipeline (you may need a picture to run this test, I uploaded it in the channel)
  • embedded_remeshing_2D_pipeline_for_test (you can use this one instead of the one above)
  • embedded_remeshing_3D_pipeline

@mtao mtao added the enhancement New feature or request label Nov 29, 2023
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

3 participants