搭载M1芯片,新Mac再加优化版 Tensorflow2.4,训练速度最高提升7倍

简介: 苹果昨日发布了一个分支版本的 TensorFlow 2.4,这是为其最新的 M1芯片版本的 Mac 电脑优化的。苹果公司表示,通过利用 macOS Big Sur 上的 ML Compute 框架,TensorFlow 2.4的 Mac 优化版本允许开发人员在 M1 的 8核 CPU 和 8核 GPU 等硬件上加速处理器(CPU)和图形卡(GPU)的训练
【新智元导读】苹果昨日发布了一个分支版本的 TensorFlow 2.4,这是为其最新的 M1芯片版本的 Mac 电脑优化的。苹果公司表示,通过利用 macOS Big Sur 上的 ML Compute 框架,TensorFlow 2.4的 Mac 优化版本允许开发人员在 M1 的 8核 CPU 和 8核 GPU 等硬件上加速处理器(CPU)和图形卡(GPU)的训练。

长期以来,Mac 一直是开发人员、工程师和研究人员喜爱的平台。随着苹果上周包含新 M1芯片的 Mac 电脑更新阵容,苹果的 Mac 优化版 TensorFlow 2.4 释放了 Mac 的全部能力,在性能上有了巨大的飞跃。

一直以来,训练复杂的人工智能模型对于开发人员来说代价都过于昂贵。

Google 曾花费了大约6912美元来训练 BERT,重新定义了11个自然语言处理任务的最新技术。虽然像 BERT 这样的训练可能仍然超出像 Macbook 这样的普通硬件的范围,但新的 Mac 优化的 TensorFlow 软件包有望降低进入门槛,使企业能够比以前更容易、更便宜地训练和部署模式。

 0.jpg根据苹果公司的说法,TensorFlow 2.4 的新 macOS 分支从应用更高层次的优化开始,比如融合神经网络的 Layers,选择合适的设备类型,编译和执行图,以及在 CPU 上的 BNNS 和 GPU 上的 Metal Performance Shaders 上加速。

M1芯片包含了一个强大的新的8核 CPU 和多达8核的 GPU,这些都是针对 Mac 电脑上的机器学习训练任务进行优化的。

苹果声称,TensorFlow2.4 的用户在13英寸的 MacBook Pro 上使用 M1芯片可以获得最高 7倍的训练提速。

1.jpg

根据苹果内部的 benchmark 显示,像 mobileenetv3 这样的模型在配备 M1 芯片和新版 TensorFlow 的13英寸 MacBook Pro 上只需要1秒钟,而在配备英特尔(intel)驱动的13英寸 MacBook Pro 上运行老版 TensorFlow 则需要2秒钟。

此外,该公司声称,在Intel版本的2019年 Mac Pro 上使用 TensorFlow 优化训练一种风格转换算法,可以在2秒左右完成,而在未优化的 TensorFlow 版本上只需6秒。

苹果对 TensorFlow 的改进,是新版 M1 Mac 吸引开发者使用 Mac 平台的首批例子之一。新 Mac 中的  M1 芯片取代了英特尔x86处理器的使用,但通过采用苹果的 Rosetta2 二进制转换技术,还可以运行为x86编译的软件。

然而,Rosetta2 转换的应用程序会导致性能下降,有些基准测试的运行速度慢至本地速度的59% 。对于性能敏感的应用程序,可以编译它们并在 M1上运行。

3.jpg

苹果推出的新框架 ML Compute 为在 Mac 上进行 TensorFlow 模型的训练提供了动力,现在你可以在 M1和 Intel 驱动的 Mac 上利用加速的 CPU 和 GPU 进行训练。

谷歌内部人士在一篇博客文章中写道: “凭借 TensorFlow 2,在各种不同平台、设备和硬件上的最佳培训表现,开发人员、工程师和研究人员可以在他们喜欢的平台上工作”,“这些改进,再加上苹果开发者通过 TensorFlow Lite 在 iOS 上执行 TensorFlow 的能力,继续展示了 TensorFlow 在支持苹果硬件上高性能机器学习执行方面的广度和深度。”

4.jpg

苹果和谷歌都表示,用户不需要修改现有的 TensorFlow 脚本就可以使用 ML Compute 作为 TensorFlow 的后端,未来这两家公司计划开始将分支版本的 TensorFlow 2.4集成到 TensorFlow 主分支中。

而现在,用户不需要对现有的 TensorFlow 脚本进行任何更改,就可以使用 ML Compute 作为 TensorFlow 和 TensorFlow 插件的后端。

在不久的将来,Tensorflow 官方还表示将通过把分支版本集成到 TensorFlow 主分支中,让用户更容易获得这些性能数据,想必使用搭载M1芯片的Mac进行开发,会释放出更大的潜力。

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
2月前
|
并行计算 Shell TensorFlow
Tensorflow-GPU训练MTCNN出现错误-Could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
在使用TensorFlow-GPU训练MTCNN时,如果遇到“Could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED”错误,通常是由于TensorFlow、CUDA和cuDNN版本不兼容或显存分配问题导致的,可以通过安装匹配的版本或在代码中设置动态显存分配来解决。
50 1
Tensorflow-GPU训练MTCNN出现错误-Could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
|
2月前
|
数据采集 TensorFlow 算法框架/工具
【大作业-03】手把手教你用tensorflow2.3训练自己的分类数据集
本教程详细介绍了如何使用TensorFlow 2.3训练自定义图像分类数据集,涵盖数据集收集、整理、划分及模型训练与测试全过程。提供完整代码示例及图形界面应用开发指导,适合初学者快速上手。[教程链接](https://www.bilibili.com/video/BV1rX4y1A7N8/),配套视频更易理解。
44 0
【大作业-03】手把手教你用tensorflow2.3训练自己的分类数据集
|
2月前
|
TensorFlow 算法框架/工具 iOS开发
手把手教你-MAC虚拟环境搭建TensorFlow开发环境
手把手教你-MAC虚拟环境搭建TensorFlow开发环境
68 0
|
4月前
|
TensorFlow 算法框架/工具 Python
【Mac 系统】解决VSCode用Conda成功安装TensorFlow但程序报错显示红色波浪线Unable to import ‘tensorflow‘ pylint(import-error)
本文解决在Mac系统上使用VSCode时遇到的TensorFlow无法导入问题,原因是Python解析器未正确设置为Conda环境下的版本。通过在VSCode左下角选择正确的Python解析器,即可解决import TensorFlow时报错和显示红色波浪线的问题。
162 9
|
4月前
|
机器学习/深度学习 API 算法框架/工具
【Tensorflow+keras】Keras API两种训练GAN网络的方式
使用Keras API以两种不同方式训练条件生成对抗网络(CGAN)的示例代码:一种是使用train_on_batch方法,另一种是使用tf.GradientTape进行自定义训练循环。
48 5
|
4月前
|
缓存 开发者 测试技术
跨平台应用开发必备秘籍:运用 Uno Platform 打造高性能与优雅设计兼备的多平台应用,全面解析从代码共享到最佳实践的每一个细节
【8月更文挑战第31天】Uno Platform 是一种强大的工具,允许开发者使用 C# 和 XAML 构建跨平台应用。本文探讨了 Uno Platform 中实现跨平台应用的最佳实践,包括代码共享、平台特定功能、性能优化及测试等方面。通过共享代码、采用 MVVM 模式、使用条件编译指令以及优化性能,开发者可以高效构建高质量应用。Uno Platform 支持多种测试方法,确保应用在各平台上的稳定性和可靠性。这使得 Uno Platform 成为个人项目和企业应用的理想选择。
71 0
|
4月前
|
API UED 开发者
如何在Uno Platform中轻松实现流畅动画效果——从基础到优化,全方位打造用户友好的动态交互体验!
【8月更文挑战第31天】在开发跨平台应用时,确保用户界面流畅且具吸引力至关重要。Uno Platform 作为多端统一的开发框架,不仅支持跨系统应用开发,还能通过优化实现流畅动画,增强用户体验。本文探讨了Uno Platform中实现流畅动画的多个方面,包括动画基础、性能优化、实践技巧及问题排查,帮助开发者掌握具体优化策略,提升应用质量与用户满意度。通过合理利用故事板、减少布局复杂性、使用硬件加速等技术,结合异步方法与预设缓存技巧,开发者能够创建美观且流畅的动画效果。
85 0
|
4月前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
99 0
|
4月前
|
安全 Apache 数据安全/隐私保护
你的Wicket应用安全吗?揭秘在Apache Wicket中实现坚不可摧的安全认证策略
【8月更文挑战第31天】在当前的网络环境中,安全性是任何应用程序的关键考量。Apache Wicket 是一个强大的 Java Web 框架,提供了丰富的工具和组件,帮助开发者构建安全的 Web 应用程序。本文介绍了如何在 Wicket 中实现安全认证,
47 0
|
4月前
|
机器学习/深度学习 数据采集 TensorFlow
从零到精通:TensorFlow与卷积神经网络(CNN)助你成为图像识别高手的终极指南——深入浅出教你搭建首个猫狗分类器,附带实战代码与训练技巧揭秘
【8月更文挑战第31天】本文通过杂文形式介绍了如何利用 TensorFlow 和卷积神经网络(CNN)构建图像识别系统,详细演示了从数据准备、模型构建到训练与评估的全过程。通过具体示例代码,展示了使用 Keras API 训练猫狗分类器的步骤,旨在帮助读者掌握图像识别的核心技术。此外,还探讨了图像识别在物体检测、语义分割等领域的广泛应用前景。
31 0