问题描述
MindSpore:model.train中的dataset_sink_mode 数据下沉怎么理解?是如何起到优化效果的?
解答方案
使能数据下沉后,MindSpore会在Device侧创建专门的数据缓存队列,MindSpore数据处理引擎使用高性能数据通道将数据的预处理结果发送到Device的数据队列上,计算图通过GetNext算子直接从数据队列拷贝输入数据,Host向数据队列发送数据和计算图从数据队列读取数据形成流水并行,执行当前迭代的同时可向数据队列发送下一个迭代的数据,从而隐藏了Host-Device数据拷贝的开销,具体可参考官网介绍文档:https://www.mindspore.cn/tutorials/experts/zh-CN/r2.0.0-alpha/optimize/execution_opt.html?highlight=%E6%95%B0%E6%8D%AE%E4%B8%8B%E6%B2%89