1.使用tensorflow训练fcn网络,训练速度很慢,使用tensorboard查看了fcn的图,显示全部都是在gpu上,但是gpu利用率一直是30%多,没有超过40%。
2。我使用的batchsize是1,gpu利用率一直都是30多,若修改为其他比较大的数据,例如128,gpu利用率可以达到60%多,但是仍然无法达到90%。
这是为什么?怎么会这样呢?
1.使用tensorflow训练fcn网络,训练速度很慢,使用tensorboard查看了fcn的图,显示全部都是在gpu上,但是gpu利用率一直是30%多,没有超过40%。
2。我使用的batchsize是1,gpu利用率一直都是30多,若修改为其他比较大的数据,例如128,gpu利用率可以达到60%多,但是仍然无法达到90%。
这是为什么?怎么会这样呢?
本来就不可能达到100%,gpu和cpu是不同的,它是单指令多线程数据并行。你一个指令打包过去很难正好有和你gpu运算单元数量相同的线程并发,驱动程序调度到60%已经很充分了。
而且还有显存的加载的延迟等。我们说的cpu的占用率,是把这些都算进去的(也就是cpu等待内存加载数据,这个间隙实际上cpu是闲置的,但是任务管理器仍然把cpu占用率算100%),而gpu算使用率不算这些。