Jax框架的性能分析——性能分析可视化
官方文档:
https://jax.readthedocs.io/en/latest/profiling.html
- 将jax代码的性能文件写入到文件夹中,并给出上传第三方网站的链接生成(https://ui.perfetto.dev/):
import jax
with jax.profiler.trace("/tmp/jax-trace", create_perfetto_link=True):
# Run the operations to be profiled
key = jax.random.PRNGKey(0)
x = jax.random.normal(key, (5000, 5000))
y = x @ x
y.block_until_ready()
可以通过TensorFlow的tensorboard来查看指定生成的文件夹,来在本地进行显示;
也可以通过点击生成的链接将性能文件自动上传到第三方网站并查看(设置生成链接后会中断进程运行,直至手动打开该生成链接,然后进程才会继续执行):

使用TensorFlow的tensorboard进行性能文件的显示需要安装如下library:
pip install tensorflow tensorboard-plugin-profile
- 对部分jax的代码进行性能分析,并通过端口将性能文件转发给另一进程,然后再另一进程中生成上传链接,点击链接后上传第三方网站后查看,该种方式不会中断原进程的运行,也不需要等待原进程运行结束。(该种方式最大的不同就是生成第三方链接不是在原进程中,不会影响原进程的运行)
原进程运行代码(待性能分析的代码,需要设置服务端口号,这里是8877):
import jax
jax.profiler.start_server(8877)
key = jax.random.PRNGKey(0)
x = jax.random.normal(key, (1000, 1000))
for _ in range(100000):
y = x @ x
y.block_until_ready()
jax.profiler.stop_server()
另起一个进程,检测端口号8877,接受到性能分析信息后生成上传链接:
python -m jax.collect_profile 8877 1000
这里的8877是之前的服务端口号,这里需要对此进行监听,1000是指该进程的运行时间,这个时间可以设置的大一些,这里设置为1000秒。
这里需要注意,原进程启动后才可以启动链接生成进程,否则连接不到端口会报错,也就是说在生成链接进程生成成功之前原进程不能结束,因此我们可以在原进程的最终位置加入sleep函数。
原进程:

链接生成进程:


需要注意:
进行对jax的性能信息收集的时候,需要对显卡进行独占(只能运行一个CUDA进程),否则会报错,不过可以通过修改默认设置取消该特性,不过为保证性能分析的准确性(防止同时运行其他进程,对性能分析造成影响)不建议更改默认设置:
修改默认设置,允许其他进程运行的情况下启动性能分析进程,设置环境变量:
TF_GPU_CUPTI_FORCE_CONCURRENT_KERNEL=1

Jax框架的性能分析——性能分析可视化的更多相关文章
- 转——Android应用开发性能优化完全分析
[工匠若水 http://blog.csdn.net/yanbober 转载请注明出处.] 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉 ...
- Android 应用开发性能优化完全分析
1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只 ...
- 【转】Android应用开发性能优化完全分析
http://blog.csdn.net/yanbober/article/details/48394201 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关 ...
- Android应用开发性能优化完全分析
1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只 ...
- 转:使用xhprof进行线上PHP性能追踪及分析
原文来自于:http://avnpc.com/pages/profiler-php-performance-online-by-xhprof 原创作者:AlloVince 之前一直使用基于Xdebug ...
- 转:Android应用开发性能优化完全分析
转自:http://blog.csdn.net/yanbober/article/details/48394201 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜 ...
- PHP性能追踪及分析工具xhprof的安装与使用
对于本地开发环境来说,进行性能分析xdebug是够用了,但如果是线上环境的话,xdebug消耗较大,配置也不够灵活,因此线上环境建议使用xhprof进行PHP性能追踪及分析. 我们今天就简单介绍一下x ...
- golang 性能调优分析工具 pprof(下)
golang 性能调优分析工具 pprof(上)篇, 这是下篇. 四.net/http/pprof 4.1 代码例子 1 go version go1.13.9 把上面的程序例子稍微改动下,命名为 d ...
- PHP 性能追踪及分析工具(XHPROF)
原文:https://gold.xitu.io/post/5860d23f128fe10069e1cfbf XHPROF:Facebook 开源的轻量级PHP性能分析工具. 它报告函数级别的请求次数和 ...
- 使用FreeRTOS进行性能和运行时分析
在MCU on Eclipse网站上看到Erich Styger在2月25日发的博文,一篇关于使用FreeRTOS进行性能和运行分析的文章,本人觉得很有启发,特将其翻译过来以备参考.当然限于个人水平, ...
随机推荐
- ZeroPadding 参照
加密时要处理. 解密时,不需要额外处理,直接NoPadding. import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; impor ...
- Zenlayer如何将万台设备监控从Zabbix迁移到Flashcat
作为全球首家以超连接为核心的云服务商,Zenlayer 致力于将云计算.内容服务和边缘技术融合,为客户提供全面的解决方案.通过构建可靠的网络架构和高效的数据传输,Zenlayer 帮助客户实现更快速. ...
- 高级前端开发需要知道的 25 个 JavaScript 单行代码
1. 不使用临时变量来交换变量的值 例如我们想要将 a 于 b 的值交换 let a = 1, b = 2; // 交换值 [a, b] = [b, a]; // 结果: a = 2, b = 1 这 ...
- cdh版本 livy部署
1.livy部署主要就是依赖spark_home的环境变量 如何找到spark_home在哪 locate spark-shell locate是个linux找文件的命令,直接找到该目录
- 基于 .NET CORE + VUE 前后端项目打包,实现批处理安装,一键部署
2023年7月18日 目前基于已完成了基于WPF界面的全自动部署小工具 自动判断相关.net core环境和依赖,自动部署mysql数据库,自动部署前后端web服务的功能. 有疑问的可以直接评论. - ...
- 京东云上centos8.2 安装 consul1.11.1
做个笔记下 -- 前言 部分内容有参考网友的,但是地址不记得了! 安装内容基本参考官网的和上一个网友的 官网地址: https://www.consul.io/downloads 以下是使用root方 ...
- Kubernetes 审计(Auditing)
目录 一.系统环境 二.前言 三.Kubernetes 审计简介 四.审计策略简介 五.启用审计 5.1 引入审计 5.2 启用审计 六.审计策略 6.1 记录审计阶段为:ResponseStarte ...
- Ubuntu禁止和启动内核更新
ubuntu禁止和启动内核更新 https://www.cnblogs.com/passedbylove/p/13091002.html https://www.cnblogs.com/sparkde ...
- 开发板测试手册——SPI FLASH 读写、USB WIFI 模块(2)
目录 1.8 SPI FLASH 读写测试 20 1.9 USB 接口读写测试 21 1.10 网络接口测试 23 1.10.1 网络连通测试 23 1.10.2 网络速度测试 25 2 网络静态 I ...
- 什么是JS执行上下文?
我们都知道,JS代码的执行顺序总是与代码先后顺序有所差异,当先抛开异步问题你会发现就算是同步代码,它的执行也与你的预期不一致,比如: function f1() { console.log('听风是风 ...