M2 Max MBP使用MPS训练模型存在内存泄漏问题
收藏
如题,M2 Max MBP使用MPS训练模型存在内存泄漏问题
硬件环境:M2 Max MacBook Pro 16英寸,96G内存,2T硬盘
软件环境:MacOS 14.1,Pytorch 2.0,device=mps
在上面的软硬件环境下基于Transfomer进行模型训练,发现有内存泄漏问题。大致情况是程序启动时CPU、GPU占用都接近100%,内存消耗20G不到。经过一个晚上,发现每个epoch的消耗时间大大拉长,看活动监控器后,发现程序内存使用108G(对,已经超过我的物理内存大小),实际内存使用40G(这应该就是内存没爆的原因)。
之所以排除是我的程序问题,是因为相同的程序,在Windows 11下,使用cuda同样跑一个晚上(乃至更长时间),内存、显存占用都是稳定的,每个epoch的时间消耗也是稳定的。
当然,知道苹果的MPS有问题也不是一天两天了,比如用PyCharm断点调试,虽然可以启动debug,但是只要碰到断点,程序就会报错退出。
我现在好奇,苹果M3芯片新支持的动态缓存技术,声称实际使用多少才占用多少内存(显存)。不知道M3芯片是否能避免出现在使用mps训练模型时出现的内存泄漏问题。如果有用M3芯片训练模型的朋友可以评论一下使用情况。
0
收藏
请登录后评论