引入
前几天开周会的时候,一个小伙伴提到读入数据,称一般的做法是:先把dataset读到CPU上,然后GPU只读每个batch的数据,这样gpu就不会报内存不足了。我一听,说的有道理啊,但是仔细一想我平时好像不是这样做的。
原因
硬件条件不同造成的。
①小伙伴学校的硬件资源只拥有一块GPU,所以他要保证不能因为他一个人把所有GPU的资源都占用了,分批次读入GPU
②我学校的硬件配置是8块GPU只有一块CPU,用一块CPU控制其它GPU的运转,如果把数据都读入CPU的话,会影响到其它GPU的正常运行(估计会被老师骂),所以我一般都是直接把数据读入GPU
总结
根据自己的硬件条件选择入读数据的方式,另:先读入CPU再传入GPU,两者之间的交互耗费的时间会不会很多?(之后有时间再深入了解,测试一下)