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

[metal] Performance Improvements for bitmasked #678

Closed
3 tasks done
k-ye opened this issue Mar 29, 2020 · 1 comment
Closed
3 tasks done

[metal] Performance Improvements for bitmasked #678

k-ye opened this issue Mar 29, 2020 · 1 comment
Assignees
Labels
c++ C++ engineering related enhancement Make existing things or codebases better mac Mac OS X platform

Comments

@k-ye
Copy link
Member

k-ye commented Mar 29, 2020

  • Currently, Metal's listgen will launch a group of threads whose size is equal to that of the total numbers of SNodes. This could be very inefficient. Try grid-stride loops to balance the load.
  • Also adopt the grid-stride loop pattern to implement struct_for kernels.
  • If the immediate parent of a leaf place is a bitmasked, instead of appending the active bitmasked elements into ListManager, we might want to just loop through all the possible coordinates and check which are active directly (This is how LLVM backends implement it?). This is because the appending to ListManager is expensive, as it uses atomic operations.
@k-ye k-ye added the feature request Suggest an idea on this project label Mar 29, 2020
@k-ye k-ye self-assigned this Mar 29, 2020
@k-ye k-ye added the mac Mac OS X platform label Mar 29, 2020
@k-ye k-ye added c++ C++ engineering related enhancement Make existing things or codebases better and removed feature request Suggest an idea on this project labels Mar 29, 2020
@yuanming-hu
Copy link
Member

  • This is how LLVM backends implement it?

Right. In LLVM ListManager only generates 8x8x8 leaf blocks (instead of every 1x1x1 leaf voxels). This allows the list generation overhead to be amortized by 8x8x8=512 voxels.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ C++ engineering related enhancement Make existing things or codebases better mac Mac OS X platform
Projects
None yet
Development

No branches or pull requests

2 participants