因为最早接触CUDA是大学时代,至今已经十多年了,有些东西用习惯了、时间久了就不太care了,最近由于工作原因又搞了会CUDA和深度学习的框架,看到pin_memory和non_blocking这两个参数设置,每次看到都想写些分析的technical report,最近由于疫情窝在家也正好是旧事重提,便有了本post。
====================================================
pin_memory的设置是几乎所有深度学习框架dataloader中的参数,而non_blocking参数主要在pytorch中有发现使用。
其实对cuda编程有些了解的人对这两个参数从字面上就可以理解个大概。
首先说下pin_memory :
相关介绍可以看:https://developer.nvidia.com/blog/how-optimize-data-transfers-cuda-cc/
上面链接地址中有一个比较形象的图:
标签:non,pin,pytorch,CUDA,memory,blocking From: https://www.cnblogs.com/devilmaycry812839668/p/16881828.html