thewintersun
thewintersun
不好意思, 这个是两次运行的结果, 当时懒得再跑一次了, 就随便截了个图。
哦, 那应该是因为是异步的,step这个值也异步更新了, 可能一个节点在取的时候是96400, 还没更新这个值,另外一个节点正好也来取了,也是96400。 我的理解是这样的,不一定对,呵呵。
同步的代码之前没上传,刚才更新了, 你现在update一下,看看diff就知道是哪块了。
我在tensorflow1.0版本和1.3版本跑都没有问题。 你是不是自己改了什么地方, 代码中也没有什么地方有shape是53的数据啊。
没看懂什么意思?一个卡上还有多个GPU?
同一个节点上,可以通过CUDA_VISIBLE_DEVICES=?来区分不同的GPU。 同一个节点上的不同计算任务,就通过端口号的不同来区分。
你就把一个GPU当做一个任务看待就好了, 你这么说的有点复杂。
数据并行, 稍微修改下也可以模型并行。
你都求均值就是同步的模式了,要等所有的都算完才能求均值,那就得等最慢的一个。 异步的虽然是每个做自己的,但是因为计算节点多了很多,所以总体的速度快了。
每个step一个机器完成,但是可能因为异步的原因有可能多个机器执行同一个step。 你把数据放到不同的机器上就每个机器不一样的数据了。