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

Make cuda kernels operate on all tracks at the same time #14

Merged
merged 10 commits into from
Sep 4, 2024

Conversation

jorenretel
Copy link
Collaborator

Until now the decompression was happening in parallel and the interval_to_values operation was done on each track seperately. The main reason for that was the cupy searchsorted function operating on one "values" array at the time. Here, we have a modified version of that searchsorted kernel that does multiple arrays at the same time. After this was done it was also possible to rewrite intervals_to_values so that it operates on all tracks at the same time.

@jorenretel jorenretel requested a review from ap-- as a code owner July 31, 2024 15:40
@jorenretel jorenretel self-assigned this Jul 31, 2024
@jorenretel jorenretel marked this pull request as draft July 31, 2024 15:41
@jorenretel
Copy link
Collaborator Author

Note: I am importing some cuda kernel code here from a private variable in cupy:https://github.com/pfizer-opensource/bigwig-loader/blob/53cbe8697c773ceec91fbeeb74eaf58625a9652f/bigwig_loader/searchsorted.py#L5C1-L6C1

I am partially doing this so I don't have to copy the code... I also don't really expect this code to change any soon. Running GPU tests in GitHub Actions would immediately detect if something goes awry. But we don't have a GPU runner yet.

@jorenretel jorenretel merged commit 53cbe86 into main Sep 4, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant