目前我有一支 python code
里面包含
1. Tensorflow (纯 predict,用了二到三个 model)
2. call CUDA C++ code
3. 1 and 2 在python 开多个 thread 来跑
现在我想优化整个流程,首先第一步我打算 profile 时间与内存用量
想请问有没有推荐怎样的工具
目前我试了 cProfile + gprof2dot
https://blog.gtwang.org/programming/python-cprofile-and-gprof2dot-tutorial/
图看起来不是很合理 可能太过复杂还是怎样
CUDA C++ 那边可能可以用 nvvp 来看
session.run 可能可以用 timeline (tensorflow 自带) 来看
但是以上两者我是分别用子执行绪在跑,
而且I/O 有依赖关系 ( CUDA 的input 是 tensorflow models 的 output )
多执行绪 我准备用yappi来分析看看
有人有建议怎样的工具或推荐的做法吗?