-
-
Notifications
You must be signed in to change notification settings - Fork 70
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
Soundness issue (2) #160
Comments
- Adds a test running on multi GPU setup. - Destroying the stream on drop is optional.
I wonder if this is a misuse of the primary context api? Currently the drop for CudaDevice calls cuDevicePrimaryCtxRelease. However, in multi device setting, the CudaDevice's cu_primary_ctx (maybe should just be named cu_ctx) won't necessarily be the primary context anymore? edit: Actually I guess each device (0 and 1) would have their own separate primary contexts? 🤔 |
Noting that So I believe the stream should still exist? |
Okay yeah I think this is related to #161 - once you call result::ctx::set_current() after creating the second device, when the slice is freed in drop(slice), the free_async assumes you are using the most recent cuda context, which will be the 2nd. |
Hey I discovered another potential serious issue:
This panicks with the following stacktrace:
IIUC this is because the stream here : https://github.com/coreylowman/cudarc/blob/main/src/driver/safe/core.rs#L189 is already gone.
Somehow this doesn't fail if I don't create
CudaDevice::new(1)
.Might be linked to : #108
The text was updated successfully, but these errors were encountered: