运行环境: CANN7.0商发版,Mindspore2.2.14,npu是910卡;
问题过程:基于Mindspore框架的iTPN模型可以成功完成训练,但是训练时间较长,通过profile机制采集出模型训练过程中的数据,发现存在大量的memcpy_ascpy算子,该算子是异步拷贝的,每个step耗时1.2s左右,memcpy占耗时的2/3以上。打印出info级别的plog日志后memcpy算子接口人分析了一个memcpy_ascpy执行周期内操作和耗时,找出了rtMemcpyAsync接口、aclSetCurrentContext接口和aclSynchronizeStreamWithTimeout三个接口,但是是谁调用的,无法看出。需要具体看一下mindspore那个模块或组件调用的,或如何减少提到到的三个接口的调用次数。具体见profile图和代码,profile图和代码私发内部负责人。
运行环境: CANN7.0商发版,Mindspore2.2.14,npu是910卡;
问题过程:基于Mindspore框架的iTPN模型可以成功完成训练,但是训练时间较长,通过profile机制采集出模型训练过程中的数据,发现存在大量的memcpy_ascpy算子,该算子是异步拷贝的,每个step耗时1.2s左右,memcpy占耗时的2/3以上。打印出info级别的plog日志后memcpy算子接口人分析了一个memcpy_ascpy执行周期内操作和耗时,找出了rtMemcpyAsync接口、aclSetCurrentContext接口和aclSynchronizeStreamWithTimeout三个接口,但是是谁调用的,无法看出。需要具体看一下mindspore那个模块或组件调用的,或如何减少提到到的三个接口的调用次数。具体见profile图和代码,profile图和代码私发内部负责人。