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

Const generics num of laser #71

Merged
merged 9 commits into from
Jan 7, 2022

Conversation

minghuaw
Copy link
Contributor

@minghuaw minghuaw commented Jan 7, 2022

The fixed length arrays that had length of BEAM_LIMIT now have the length specified with constant generics, which is eventually exposed to the user when creating the builder.

@minghuaw
Copy link
Contributor Author

minghuaw commented Jan 7, 2022

What is the purpose of LASER_CACHE_SIZE? It is defined four times in four different mods with the same value as BEAM_LIMIT. The LASER_CACHE_SIZE is still limiting the number of lasers.

@ElliotB256
Copy link
Collaborator

Thanks for the PR @minghuaw !

What is the purpose of LASER_CACHE_SIZE? It is defined four times in four different mods with the same value as BEAM_LIMIT. The LASER_CACHE_SIZE is still limiting the number of lasers.

When we loop over the lasers, we take them into smaller batches of fixed size arrays of LASER_CACHE_SIZE and loop through these. But it might be worth reprofiling given changes in other areas of the code to see if it's worth the extra complexity.

You might find this interesting: #9 (comment)

@ElliotB256 ElliotB256 merged commit 7c91e36 into TeamAtomECS:master Jan 7, 2022
@minghuaw
Copy link
Contributor Author

minghuaw commented Jan 8, 2022

What is the profiling program you used? I will probably play with it and see what to do with LASER_CACHE_SIZE

@ElliotB256
Copy link
Collaborator

My workstation has an intel processor so I was using intel vtune, and found the microarchitecture profiling was the most useful.

I was also thinking about adding some microbenching to atomecs, I started doing this at one point but stopped due to time required elsewhere. In my experience microbenching can guide the general performance but one has to be careful not to create highly artificial benchmarks that give misleading results. What are your thoughts on microbenching?

@minghuaw
Copy link
Contributor Author

minghuaw commented Jan 8, 2022

I am not planning to do microbenching yet. Right now, it's mainly just for two things.

  1. The effect of LASER_CACHE_SIZE
  2. I have seen some for loops that could probably be merged into one and may provide some performance improvement

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

Successfully merging this pull request may close these issues.

2 participants