在具有GPU支持的Tensorflow中编写自己的自定义操作时,the guide建议使用python计算梯度。 Elsewhere人们已经将C ++与Eigen之类的库一起使用,以相同的方式更有效地实现了渐变。
我的问题是;使用自定义操作参数Tensors作为在GPU上进行训练时指向设备内存的指针(对吗?):
db.people.find({$or: [{name:"Stuart"}, {age:24}]})
通过在GPU上赢得Win CUDA的操作计算梯度是否可以避免在主机和设备之间复制数据?
这会减少计算时间吗? (我知道这取决于梯度计算对并行计算的适应程度,但前提是可以做到)
有什么理由不应该这样做吗?/潜在的速度增长是否太微不足道,以至于不值得?
答案 0 :(得分:-1)
您可以简单地在CUDA中构建一个op,然后在渐变的python定义中调用它,这样您就可以大大加快渐变计算的速度,而不必在GPU和CPU内存之间进行复制