tensorflow 性能调优相关
如何进行优化tensorflow 将极大得加速机器学习模型的训练的时间,下面是一下tensorflow性能调优相关的阅读链接:
- tensorflow 性能调优:http://d0evi1.com/tensorflow/performance/ (概括的较为完整)
- tensorflow:input pipeline性能指南:http://d0evi1.com/tensorflow/datasets_performance/ (https://www.tensorflow.org/guide/data_performance ,该文章是对此文章的中文翻译)
阅读摘要:
- input pipeline 优化:
- 使用 nvidia-smi -l 2 确认一个GPU是否被充分利用;通过gpu 利用率查看瓶颈是否在 input pipeline;
- 生成一个 timeline, 观察等待状态。判断每一阶段的耗时;
- 预估当前训练所需要的吞吐,验证所使用的磁盘,能否支持该吞吐量;
- CPU 预处理:
- 在CPU上面,进行处理 input pipeline 操作。来进行释放GPU;
- 使用Dataset API:
- dataset api 会使用C++多线程机制,会比基于python的queue_runner的开销更低;使用 feed_dict 来进行装载数据将会存在性能问题;
- 针对于数据集进行融合和裁剪,也能已经程度上加快tensorflow 的处理速度,在尽量少损失数据的情况下,减少整个数据集的大小,以提高处理速度;
- 使用大文件:
- 读取大量小文件可以极大影响I/O性能。获取最大的I/O吞吐量的其中一种方法是,将数据预取处理成更大的文件(TFRecord文件)。对于更小数据集,最好的方法是加载整个数据集到内存中。
- fused Ops:
-
Fused Ops会将多个Op结合成单个kernel来提升性能。在Tensorflow中有许多fused Ops,当可能时XLA会创建fused Ops来自动提升性能。下面的示例会使用fused Ops,可以极大提升性能。
-
- Fused batch norm: 没看懂,之前没有使用过,所以不知道如何来进行使用;
- 编译安装:缺省的TensorFLow二进制包面向大多数的硬件,以便TensorFlow能为所有人所使用。如果使用CPU进行training或inference,推荐使用CPU的所有优化来编译TensorFlow。开启当前适合于当前CPU的优化;
- GPU优化:数据并行于模型并行,以及考虑GPU之间来进行共享数据;以及CPU 与 GPU 之间的模型共享;
- CPU优化:Intel® 已经添加了Intel® Math Kernel Library for Deep Neural Networks (Intel® MKL-DNN) 支持;
保持更新,内容来源于网络。更多内容请关注 cnblogs.com/xuyaowen;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥