苹果M1更适合强化学习?相比V100性能提升200%,价格低90%,功耗减88%-阿里云开发者社区

开发者社区> 开发者小助手-bz8> 正文

苹果M1更适合强化学习?相比V100性能提升200%,价格低90%,功耗减88%

简介: M1 芯片能否提升强化学习的训练效率?
+关注继续查看

2020 年底,苹果发布了 M1 芯片,提供了全新的自研 GPU,并和 CPU 集成封装成 SoC,加上随之而来的 ML Compute 框架,macOS 端的深度学习训练有了显著的速度提升。


另一方面,强化学习的特性使得训练过程中需要交替使用 CPU 和 GPU,对此,M1 芯片能否提升强化学习的训练效率?据了解,此前业界并无相关测试数据。
南栖仙策(南京大学人工智能创新研究院技术孵化企业)算法小组用 M1 芯片设备组建小型服务器集群,并与基于 NVIDIA GPU 的传统服务器进行性能对比测试,结果表明,强化学习的训练效率可以得到显著提升。


什么是强化学习


强化学习(Reinforcement Learning, RL),又称增强学习,是机器学习的范式和方法论之一。强化学习智能体(Agent)在与环境的交互过程中,通过更新策略以达成回报最大化或实现特定目标。


广为人知的人脸识别等技术背后的深度学习,通常需要开发者准备大量做好标注的图像作为训练数据。


强化学习与之不同,不需要训练数据,而是设置一个环境。类似于动物处在自然环境中,强化学习需要不断与环境交互,并从中学习。强化学习研究常用的环境是各种各样的游戏。


强化学习方法简单、有效且通用,在许多游戏环境中都取得了超越人类的决策水平,被 DeepMind 认为是实现通用人工智能的一种重要途径。

强化学习是怎么训练的


微信图片_20211205183839.png


图 1 强化学习示意图


如图 1 所示,在强化学习中,智能体与环境的交互,即在状态 S_t 下,执行动作 A_t,获得对应的奖励 R_(t+1) 并观测到下一个时刻的状态 S_(t+1)。智能体的目的是改进策略(即在不同状态下执行的动作),来获得最大的长期回报。在这个过程中,强化学习智能体按照当前策略(通常用神经网络实现)需要将当前状态 S_t 输入到网络中,进行一次前向推理(inference)得到 A_t,使用 A_t 在环境中执行一步来完成交互。此时,智能体会收到对应的奖励和下一个时刻的状态,然后不断循环该过程,产生新的样本用于策略训练。样本指的是交互过程中的每一个转移(transition),即四元组。


通常来说,强化学习中环境执行动作的这一步由 CPU 完成,当策略网络仅输入一个样本时,可以使用 CPU(对于浅层的策略网络)或 GPU(对于深层的复杂策略网络)进行推理,而更新策略网络模型则在 GPU 上完成。常规强化学习任务(以 Atari 游戏为例)通常需要采集十数 M( 1M 即一兆,为 10^6) 乃至数十 M 样本才能训练好一个策略,那么就需要数千万次,甚至数十亿次的交互。如果能减小时间开销,那将会给强化学习的训练速度带来前所未有的提升。


M1 芯片特殊之处


M1 架构


新的 M1 架构采用了台积电最新的 5nm 技术。M1 处理器中有 1 个 CPU, 1 个 GPU, 1 个神经引擎以及 DRAM 单元。由于 RAM 内置在处理器中,因此所有组件都会访问相同的内存。这意味着不会再因为将内存从一个组件移动到下一个组件而造成性能损失,无需再尝试弄清楚你的模型是否符合 GPU 的内存规格。


微信图片_20211205185206.png


CPU


M1 芯片的 CPU 是 8 核 CPU,其中 4 核是用于数据处理和一些需要高性能任务的高性能内核,另外 4 核被称为「e 核」或高效内核,提供更高的处理效率和更低功耗的任务。


简单来说,M1 芯片不仅靠 5nm 制程使处理性能更加强大,而且里面新增的 NPU 也使 M1 更加聪明。该 NPU 采用 16 核架构,每秒进行 11 万亿次运算。M1 芯片使用共享内存,CPU 与 GPU 通信开销小,使用 Thunderbolt ,通信速度最高可达 40Gb/s,突破了限制瓶颈,可使用多台机器组建小型服务器。


微信图片_20211205185209.png


南栖仙策使用四台 M1 的 Mac mini 组建了小型集群


Apple M1 集群性能测试


测试设置


M1 (单机) :使用 M1 Mac mini 单机训练;M1 集群 (4 机):4 台 M1 Mac mini 组成集群进行训练;GPU 服务器 (单机 V100×1):使用 NVIDIA V100 单 GPU 训练,选择第一张卡;GPU 服务器 (单机 V100×4):单机使用四块 NVIDIA V100 进行分布式训练;CPU 服务器: 使用 V100 服务器的 CPU 进行训练。


环境:


Pendulum、MountainCarCont、HalfCheetah


算法:


PPO, 共采集 100 次数据进行 PPO 训练,每次训练前与环境交互采集 10K step 的轨迹放入 Buffer 进行训练。SAC, 训练 100 个 Epoch,每个 Epoch 与环境交互收集 1k step 放入 Buffer。


测试结果


由于目前 Tensorflow 2.4 的 Eager 模式不能调用 M1 芯片进行训练,下面的结果是在 Mac mini 的 CPU 设备上测试获得的。


测试一:单进程采样对比


微信图片_20211205185211.jpg

测试二:4 进程采样对比


微信图片_20211205185214.jpg


测试三:16 进程采样对比


微信图片_20211205185217.jpg


测试四:32 进程采样对比


微信图片_20211205185219.jpg


功耗及价格对比


微信图片_20211205185222.png


注:单个 Mac mini 功耗 39w,4 台总计 156w(瓦),传统服务器约为 1300w(瓦)。


微信图片_20211205185225.png


注:单个 Mac mini 价格 6799 元 (512GB 官网价格),4 个总计 2.7 万元,传统服务器约为 30 万元。


M1 的共享内存架构适合于 RL 的训练方式,目前,使用 Apple 的 M1 芯片组建的小型服务器,以 NVIDIA GPU 服务器 10% 的价格和更低的功耗,取得超过 200% 的时间效率提升。在强化学习目前主流训练框架下,训练效率的瓶颈往往在于策略网络的通信速度不够快,而共享内存方案可以减小通信上的开销,为 RL 训练带来巨大的效率提升。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用NAT网关轻松为单台云服务器设置多个公网IP
在应用中,有时会遇到用户询问如何使单台云服务器具备多个公网IP的问题。 具体如何操作呢,有了NAT网关这个也不是难题。
26740 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9495 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13183 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9054 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
4620 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4012 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
6893 0
1654
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载