如何评价百度开源的深度学习框架 Paddle
简单说一些第一印象(以目前的github repo为准)。整体的设计感觉和Caffe心有灵犀,同时解决了Caffe早期设计当中的一些问题(比如说default stream)。
1. 很高质量的GPU代码
2. 非常好的RNN设计
3. 设计很干净,没有太多的abstraction,这一点比TensorFlow好很多。
4. 高速RDMA的部分貌似没有开源(可能是因为RDMA对于cluster design有一定要求):
5. 设计思路比较像第一代的DL框架,不过考虑到paddle已经有年头了,这样设计还是有历史原因的。
如何评价百度刚刚开源的 Paddle 平台
1. 很高质量的GPU代码
2. 非常好的RNN设计
3. 设计很干净,没有太多的abstraction,这一点比TensorFlow好很多。
4. 高速RDMA的部分貌似没有开源(可能是因为RDMA对于cluster design有一定要求):Paddle/RDMANetwork.h at master · baidu/Paddle · GitHub
5. 设计思路比较像第一代的DL框架,不过考虑到paddle已经有年头了,这样设计还是有历史原因的。
5.1 config是hard-code的protobuf message,这对扩展性可能会有影响。
5.2
可以看到很多有意思的类似历史遗留的设计:采用了STREAM_DEFAULT macro,然后通过TLS的方式定向到非default
stream:Paddle/hl_base.h at 4fe7d833cf0dd952bfa8af8d5d7772bbcd552c58 ·
baidu/Paddle · GitHub (所以Paddle off-the-shelf不支持mac?)
5.3
在梯度计算上采用了传统的粗粒度forward/backward设计(类似Caffe)。可能有人会说“所以paddle没有auto
gradient
generation”,这是不对的,autograd的存在与否和op的粒度粗细无关。事实上,TensorFlow在意识到细粒度operator超级慢的速度以后,也在逐渐转回粗粒度的operator上。目前只看到这里。总之是一个非常solid的框架,百度的开发功底还是不错的。