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

Investigate speedup of tapered guide #77

Open
mtbc opened this issue May 4, 2022 · 2 comments
Open

Investigate speedup of tapered guide #77

mtbc opened this issue May 4, 2022 · 2 comments

Comments

@mtbc
Copy link
Collaborator

mtbc commented May 4, 2022

The tapered guide currently has threads follow neutrons through their whole journey so the ones that do not make it far through the instrument leave that computation resource useless thereafter.

Could the computation be split by component, where later components consume fewer threads (or other resource) corresponding to how they have to handle fewer neutrons? Would that improve efficiency? But how to filter out the others?

@ckendrick points out that https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__EXECUTION.html#group__CUDART__EXECUTION_1g504b94170f83285c71031be6d5d15f73 may be helpful.

Also, what other approaches might there be to efficiency improvement? For instance, could a multi-GPU deployment system be considered where they handle different parts of the instrument?

@mtbc
Copy link
Collaborator Author

mtbc commented May 5, 2022

Rather than speculatively refactoring our instrument construction and testing, may be possible to construct a more ad-hoc proof of principle test where we more manually create a component that's actually composite and splits threads unevenly so parts nearer the exit get fewer.

@yxqd
Copy link
Member

yxqd commented May 6, 2022

@mtbc @ckendrick can we run profiler to check if memory is the bottleneck? For tapered guide, every threads need to use data in the array for the guide profile (width and height vs z along beam). Could that be a problem?

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

No branches or pull requests

2 participants