动态图是默认使用GPU吗
收藏
笔记本已经安装了cuda
with fluid.dygraph.guard() 在不设置place=fluid.CUDAPlace(0)的情况下是默认使用GPU吗
0
收藏
请登录后评论
代码1:
use_gpu=False
place=flulid.CUDAPlace(0) if use_gpu else flulid.CPUPlace()
with flulid.dygraph.guard(place):
pass
代码2:
use_gpu=True
place=flulid.CUDAPlace(0) if use_gpu else flulid.CPUPlace()
with flulid.dygraph.guard(place):
pass
代码3
with flulid.dygraph.guard():
pass
代码1计算很慢
代码2和3计算速度一样,是不是如果本地有cuda动态图默认使用gpu???
是的,动态图可以自己判断,有gpu就优先用gpu,不用写place
太好,自适应就省得老改脚本了
方便一个项目跑模型,一个项目改脚本,毕竟只能开一个gpu~~
但是多个gpu时默认就用一个了吧~~
这就涉及单机多卡的操作了,只需要加一个多卡的spawn包裹语句就行了。
另外飞桨2.0可以省略这句话了:
这样写出来的代码更加流畅
嗯,这个真是方便了。原来因为这个封装个类好麻烦