问题1:试了一下 MultiWorkerMirroredStrategy,只起了一个进程占了8个gpu,是不是在机器学习PAI里启动的有问题? 问题2: 是不是应该用这个脚本去启动?
在阿里云机器学习PAI中启动一个进程占用了8个GPU的情况,可能有以下几种原因:
为了解决该问题,可以采取以下几种办法:
如果在机器学习 PAI 平台上启动的进程占用了 8 个 GPU,可能是因为您没有正确地分配 GPU 资源。建议您检查您在编写作业流程时是否将 GPU 的数量正确配置,并且在启动进程时是否指定了正确的 GPU 设备。
此外,还可能是您的代码实现导致了占用 GPU 资源的不均衡。可以检查代码中是否有可能引起 GPU 资源争用的地方,比如没有明确指定使用哪个 GPU 设备的代码语句等。
建议您仔细检查一下以上两个方面,如果仍然无法解决问题,可以考虑联系阿里云技术支持进行更深入的交流和帮助。
问题1:在使用 MultiWorkerMirroredStrategy 进行多 GPU 训练时, 如果启动的进程只占用了一个 GPU,很可能是代码中出现了问题造成的。可以检查代码中是否有显式指定 GPU 设备的代码,或者使用了不正确的分布式训练策略。建议您可以参考 TensorFlow 官方文档中的策略指南,检查代码并调整分布式训练策略,确保充分利用所有 GPU 设备。
问题2:PAI 平台提供了多种启动脚本,如果您的代码需要在多 GPU 环境下进行训练,可以使用 train_async_cluster_tf.sh
启动脚本来启动训练任务。该脚本会自动根据集群规模和设备数设置相应的参数,并启动分布式训练任务。使用该脚本需要在代码中指定 TensorFlow 分布式训练策略,例如:tf.distribute.experimental.MultiWorkerMirroredStrategy
。建议您可以参考 PAI 官方文档中的相关说明和示例代码,结合您的具体场景进行配置和调整。
对于问题1,如果使用MultiWorkerMirroredStrategy分布式训练,通常情况下会启动多个进程来协同工作,每个进程都在其相应的GPU上运行。但如果只起了一个进程而占用了多个GPU,可能是启动的有问题。你可以检查一下你的机器环境和代码实现是否正确配置。如果一切正确但仍然有此问题,可能是平台方的限制所致,你可以向平台方咨询。
对于问题2,使用相应的启动脚本可能会更合适。你可以参考相应的文档或范例,确保您开发的代码能够正确地在你的环境中运行。
针对问题1的回答:你发一下你的启动脚本。一般每个进程通过CUDA_VISIBLE_DEVICES指定一个gpu_id 针对问题2的回答:这个可以的。此回答整理自钉群:“【EasyRec】推荐算法交流群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。