-
Notifications
You must be signed in to change notification settings - Fork 23
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
Channel flushing on kernel termination #69
Comments
Hard to tell without debugging your tool (which we obviously can't), however as a general suggestion you need to be very careful with cudaDeviceSynchronize(); and pthread_mutex_unlock/lock(&mutex); to avoid possible deadlocks. |
The tool is mem_trace. I just added the else block to force flushing the channel on kernel exit (rather than force flush on context termination). I was thinking why that else block is missing in 1.5.3 while it presents in previous versions. Based on my further debugs (with printf), in the flush function, there exists some number of bytes to flush (which is a positive sign), but it seems that the As |
@ovilla
May I ask why there is no |
Hi
In previous version of nvbit, there was an
else
block forif (!exit)
which was responsible for flushing the channel when the kernel reaches its end. However, in the 1.53, there is no such block. Instead, flushing occurs innvbit_at_ctx_term
which (based on my observations) is called at the end of the execution. I tried to do a flush on kernel termination like thisBut the execution seems to get stuck and it doesn't move to the next kernel.
Any thoughts on that?
The text was updated successfully, but these errors were encountered: