Snowdar / asv-subtools

An Open Source Tools for Speaker Recognition
Apache License 2.0
597 stars 135 forks source link

pytorch dataloader #9

Closed hangxiu closed 3 years ago

hangxiu commented 4 years ago

使用dataloader 多线程,但是多线程处于D状态,CPU读取数据慢,导师GPU util 为0, 请问这种情况怎么解决

Snowdar commented 4 years ago

Hi,如果你的特征放在机械硬盘上,这个问题就会出现,这是因为样本是动态随机加载的,机械硬盘的读写针头会不停的转动,耗费大量时间。如果你没有固态硬盘,那么你可以试试提前将egs打乱并另外并生成好一个特征的ark,然后关闭训练时的shuffle,这样读取egs时,机械硬盘为顺序整块读取,可以节省不少时间。另外,FastDataLoader提供的缓存机制也可以用上提升速度鲁棒性。

On Sep 8, 2020, at 10:56 PM, hangxiu notifications@github.com wrote:

 使用dataloader 多线程,但是多线程处于D状态,CPU读取数据慢,导师GPU util 为0, 请问这种情况怎么解决

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

clockw commented 4 years ago

hihi,我也遇到了同样的问题,多线程始终处于D状态,且data load的速度很慢,即使将shuffle关闭,并使用FastDataLoader,仍然需要很长的时间来load,导致训练速度极慢,请问你最后有解决这个问题嘛?或者还有什么更好的解决方法吗?谢谢!

使用dataloader 多线程,但是多线程处于D状态,CPU读取数据慢,导师GPU util 为0, 请问这种情况怎么解决

cc-cherie commented 4 years ago

请问这个问题是否有其他的解决办法,而且我发现在大数据量时,随着训练时间的增长,读取速度会越来越慢,请问有比较好的解决办法吗

Snowdar commented 4 years ago

Hi, 有类型的问题的朋友,可以提供一下以下信息吗? 1.特征存放位置的磁盘类型 (机械硬盘 | 固态硬盘) 2.确认一下是加载egs映射列表慢还是训练时会慢 3.随着训练进行,是否有每个epoch后内存逐渐增加的问题 4.提供一下DataLoader的参数(线程数、pin_memory等)