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

C++ Runahead scheduling does not synchronize correctly at barriers #130

Open
wlruys opened this issue Aug 10, 2023 · 2 comments
Open

C++ Runahead scheduling does not synchronize correctly at barriers #130

wlruys opened this issue Aug 10, 2023 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@wlruys
Copy link
Contributor

wlruys commented Aug 10, 2023

Kernels are continuing past the barrier execution.
Easily reproducible with Jimmy's boltzmann app (or the timestepping synthetic graph).

image

@wlruys wlruys self-assigned this Aug 10, 2023
@wlruys wlruys added the bug Something isn't working label Aug 10, 2023
@wlruys
Copy link
Contributor Author

wlruys commented Aug 11, 2023

Event synchronize is called correctly before the barrier is marked as complete.

void synchronize_events() {
size_t num_events = this->events.size_unsafe();
for (size_t i = 0; i < num_events; i++) {
uintptr_t event_ptr = this->events.at_unsafe(i);
event_synchronize(event_ptr);
}
}

Need to check if event synchronize synchronizes on cross-stream events? It should.

@wlruys
Copy link
Contributor Author

wlruys commented Aug 11, 2023

Confirmed that Python runahead works correctly (and gets Jimmy's code to scale better). This is likely a wrong stream or event reference being passed?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant