使用Player FM应用程序离线!
Asynchronous versus synchronous execution
Manage episode 298430836 series 2921809
CUDA is asynchronous, CPU is synchronous. Making them play well together can be one of the more thorny and easy to get wrong aspects of the PyTorch API. I talk about why non_blocking is difficult to use correctly, a hypothetical "asynchronous CPU" device which would help smooth over some of the API problems and also why it used to be difficult to implement async CPU (but it's not hard anymore!) At the end, I also briefly talk about how async/sync impedance can also show up in unusual places, namely the CUDA caching allocator.
Further reading.
- CUDA semantics which discuss non_blocking somewhat https://pytorch.org/docs/stable/notes/cuda.html
- Issue requesting async cpu https://github.com/pytorch/pytorch/issues/44343
83集单集
Manage episode 298430836 series 2921809
CUDA is asynchronous, CPU is synchronous. Making them play well together can be one of the more thorny and easy to get wrong aspects of the PyTorch API. I talk about why non_blocking is difficult to use correctly, a hypothetical "asynchronous CPU" device which would help smooth over some of the API problems and also why it used to be difficult to implement async CPU (but it's not hard anymore!) At the end, I also briefly talk about how async/sync impedance can also show up in unusual places, namely the CUDA caching allocator.
Further reading.
- CUDA semantics which discuss non_blocking somewhat https://pytorch.org/docs/stable/notes/cuda.html
- Issue requesting async cpu https://github.com/pytorch/pytorch/issues/44343
83集单集
所有剧集
×欢迎使用Player FM
Player FM正在网上搜索高质量的播客,以便您现在享受。它是最好的播客应用程序,适用于安卓、iPhone和网络。注册以跨设备同步订阅。