当前位置: 首页 > 健康

TensorFlow 2.9上线:oneDNN改进实现CPU性能优化,WSL2开箱即用

TensorFlow 2.9 已发布,还没有更新的小伙伴现在可以更新了。

昨日,TensorFlow 官方宣布:TensorFlow 2.9 来了!距离上次 2.8 版本的更新仅仅过去三个月。

新版本亮点包括如下:

oneDNN 的性能改进;

DTensor 的发布,这是一种新 API,可用于从数据并行无缝迁移到模型并行;

对核心库进行了改进,包括 Eigen、tf.function 统一以及对 Windows 的 WSL2 的新支持;

还为 tf.function retracing 和 Keras 优化器发布了新的实验性 API。 

下面让我们来看看 TensorFlow 2.9 具体的改进都有哪些。

TensorFlow 2.9 新特性

提高 CPU 性能:oneDNN

TensorFlow 已经与英特尔合作,将 oneDNN 性能库与 TensorFlow 集成,以实现在英特尔 CPU 上的最高性能。从 TensorFlow 2.5 以来,TensorFlow 已经对 oneDNN 进行了实验性支持,它可以提供高达 4 倍的性能提升。在 TensorFlow 2.9 中,默认在 Linux x86 包和具有神经网络硬件功能(如 AVX512_VNNI、AVX512_BF16、AMX 等)的 CPU 上启用 oneDNN 优化,这些功能可在 Intel Cascade Lake 和更新的 CPU 上找到。

因特尔表示:我们很高兴与 GoogleAI 合作,将 oneDNN 库作为 TensorFlow 2.9 中的默认后端 CPU 优化!TensorFlow 用户现在将看到由我们的开放软件优化驱动的 AI 性能加速,无需更改代码!

在启用 oneDNN 优化的情况下运行 TensorFlow 的用户,可能会观察到与关闭优化时略有不同的数值结果,这是因为浮点舍入方法和顺序不同,可能会产生轻微的误差。

如果上述情况给你带来麻烦,请在运行 TensorFlow 程序之前通过设置 TF_ENABLE_ONEDNN_OPTS=0 来关闭优化。假如你要重新启用它们,请在运行 TensorFlow 程序之前设置 TF_ENABLE_ONEDNN_OPTS=1。要验证优化是否启用,请在程序日志中查找以 oneDNN custom operations are on 开头的消息。 

DTensor

DTensor 是一种新的 TensorFlow API,可用于分布式模型处理,它允许模型无缝地从数据并行迁移到基于单程序多数据(SPMD)的模型并行。

DTensor 的核心设计原则如下:

设备无关 API:这允许在 CPU、GPU 或 TPU 上使用相同的模型代码,包括跨设备类型划分的模型;

多客户端执行:移除 coordinator 并让每个任务驱动其本地连接的设备,从而允许在不影响启动时间的情况下扩展模型;

global perspective VS per-replica:传统上使用 TensorFlow,分布式模型代码是围绕 replicas 编写的,但使用 DTensor,模型代码是从 global perspective 编写的,每个 replica 代码由 DTensor 运行时生成和运行。

TensorFlow 官方已经开发了几个关于 DTensor 的入门教程,参考资料如下:

DTensor 概念:https://www.tensorflow.org/guide/dtensor_overview

带有 DTensors 分布式 ML:https://www.tensorflow.org/tutorials/distribute/dtensor_ml_tutorial

将 DTensors、Keras 联合使用:https://www.tensorflow.org/tutorials/distribute/dtensor_keras_tutorial

tf.function 的 TraceType

新版本已经改进了 tf.function 回溯(retraces)方式,使其更简单、可预测和可配置。

所有关于 tf.function 的参数被分配一个 tf.types.experimental.TraceType。自定义用户类可以使用跟踪协议(tf.types.experimental.SupportsTracingProtocol)声明一个 TraceType。TraceType 系统使理解追溯规则变得很容易。

支持 WSL2

WSL2 允许开发人员直接在 Windows 上运行 Linux 环境,而不需要传统虚拟机或双启动设置。TensorFlow 现在支持 WSL2 开箱即用,包括 GPU 加速。

确定性行为

API tf.config.experimental.enable_op_determinism 使得 TensorFlow 的 op 是确定性的。确定性意味着如果用户使用相同的输入多次运行一个 op,则 op 每次都返回完全相同的输出,这对于调试模型很有用。

通常来讲,许多 op 是不确定的,因为在 op 中使用了线程,这些线程可以以不确定的顺序添加浮点数。

TensorFlow 2.8 引入了一个 API 来使 op 具有确定性,TensorFlow 2.9 在某些情况下提高了确定性性能。如果你希望 TensorFlow 模型确定性地运行,只需将以下内容添加到程序的开头:

tf.keras.utils.set_random_seed(1)

tf.config.experimental.enable_op_determinism()

第一行设置 Python、NumPy 和 TensorFlow 的随机种子,这是确定性所必需的。第二行使每个 TensorFlow op 具有确定性。请注意,确定性通常是以降低性能为代价的,因此当启用 op 确定性时,你的模型可能会运行得更慢。

使用 Keras 优化训练

TensorFlow 2.9 中添加了 Keras Optimizer API 的新实验版本,即 tf.keras.optimizers.experimental。该 API 提供更统一和扩展的内置优化器目录,用户可以更轻松地定制和扩展。

在未来的版本中,tf.keras.optimizers.experimental.Optimizer(及子类)将取代 tf.keras.optimizers.Optimizer(及子类),这意味着使用旧版本 Keras 优化器的工作流将自动切换至新的优化器。

如下为新优化器类的一些亮点:

一些模型的训练速度越来越快;

更易于编写自定义优化器;

内置对模型权重移动平均的支持(Polyak 平均)。

原文链接:https://blog.tensorflow.org/2022/05/whats-new-in-tensorflow-29.html?linkId=8066981

tensorflowcpu改进性能优化
本文来源于网络,不代表济南之窗立场,转载请注明出处
转发到:
拓展阅读
  • 5月16日,世贸广场(工三店),涉恐怖类“密室逃脱”往往内含“杀人”“死亡”剧本内容。5月16日,日坛国际贸易中心里的“鬼屋”。5月中旬的一天下班时间,崇文门外搜秀商城内一家“恐怖密室”门口,三个孩子刚体验完一个以“蛊”为主题的“密室逃脱”[全文]
    2024-06-04 02:16
  • 广州中医药大学第一附属医院康复中心治疗师鲍治君说,在我的诊室经常有患者跑来找“打”。他们总是开玩笑说:“鲍医生,上次来被你打一顿后舒服多了。”大家别误会了,这里说的“打一顿”,是通经拍打疗法。现代医学证实,通过正确的拍打,可以通经络、强筋骨[全文]
    2023-11-02 02:00
  • 中新网10月31日电 据联合国新闻消息,当地时间30日,联合国儿童基金会执行主任凯瑟琳·拉塞尔表示,最新统计数据显示,目前加沙地带每天至少有420名儿童死亡和受伤。图片来源:联合国新闻社交媒体账号截图拉塞尔同时表示:“这个数字应该让我们每个[全文]
    2023-11-01 02:24
  • 中新网7月28日电 国新办28日就“加强文物保护 传承中华文明”举行新闻发布会,国家文物局博物馆与社会文物司司长刘洋在会上表示,近年来博物馆热在持续升温,公众参观博物馆的热情高涨,特别是在寒暑假及一系列节假日都出现了部分博物馆预约难的情况。[全文]
    2023-07-29 02:09
  • ■观察家学校停课,其实是应对传染病的常规动作。近日,上海、天津、浙江金华、宁波等地有学校发出通知:部分学生出现发烧等症状,停课或提前放学。多地教育局或学校回应称,学生们患的是甲流,并非新冠。此前,浙江省杭州市西湖区教育局发布通报,西湖区某小[全文]
    2023-02-25 02:05
  • ■策论·“做好新阶段疫情防控”系列评论之二全国各地的大中小学陆续迎来开学季,这是实施新冠病毒感染“乙类乙管”后第一个开学季,恢复线下课后,如何为校园公共卫生保驾护航受到社会关注。当前,准确认识疫情防控新形势和健康安全第一的要求,全面恢复正常[全文]
    2023-02-17 02:05
阿里云服务器
腾讯云秒杀
Copyright 2003-2024 by 济南之窗 jn.sczixun.cn All Right Reserved.   版权所有