Skip to content

Why does device-to-device transfer (DevicePut) block computation in another thread? #14693

Answered by hawkinsp
vwxyzjn asked this question in Q&A
Discussion options

You must be logged in to vote

Without digging deeply into the reproduction, my guess is that the issue is the GPU memory allocator JAX uses. Fundamentally memory allocation is synchronized to the compute stream, so it's common for transfers to block waiting for compute or vice versa if an allocated block is not known to be free.

I'll need to dig more to be sure that's it, though.

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@vwxyzjn
Comment options

Answer selected by vwxyzjn
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants