hughperkins / DeepCL

OpenCL library to train deep convolutional neural networks
Mozilla Public License 2.0
865 stars 199 forks source link

Project idea: Support integration with MXNET #118

Open viper7882 opened 7 years ago

viper7882 commented 7 years ago

Hi Hugh,

MXNET is an established Deep Learning framework with tonnes of powerful features and wide range of programming language support. With my recent experience with DeepCL, I'm seeing the beauty of both sides where DeepCL should be able to be integrated with MXNet to provide a total solution where Deep Learning with support ranged from CPU, OpenCL and CUDA. The target platform could also range from conventional PC, Laptop, Data Center as well as the near future FPGA based Deep Learning.

With these merits that would enlighten the Deep Learning community, would you be considering to provide the support to integrate with MXNET kernel one day in the future?

hughperkins commented 7 years ago

So, mxnet is one of the fastest deep learning libraries around, with great support for distributed training, and a great community. And I'm up for enabling OpenCL in it. My current strategy is to use coriander for porting NVIDIA® CUDA™ projects to build on OpenCL 1.2, for the foreseeable future. There's a bit of upfront cost, but then it should generalize well across many libraries. There is a dnn library in progress for Coriander at https://github.com/hughperkins/coriander-dnn

viper7882 commented 7 years ago

Hi Hugh,

I'm glad to hear that! Currently I'm using Intel graphics card and likely going to stick with it for a while. Thank you for putting up Coriander DNN within such a short period.

With Coriander DNN in place, could you share how do you anticipate it could be generalized across many libraries including mxnet? Please pardon me as I'm not getting the big picture.

hughperkins commented 7 years ago

With Coriander DNN in place, could you share how do you anticipate it could be generalized across many libraries including mxnet? Please pardon me as I'm not getting the big picture.

MXNet is per my understanding written for NVIDIA® CUDA™ devices? Coriander can run NVIDIA® CUDA™ code on OpenCL 1.2 devices.

hughperkins commented 7 years ago

Having said that, if you wish to use DeepCL, or parts of DeepCL, to give OpenCL capabilities to MXNet, please go ahead. Please give attribution ideally, but otherwise, you can simply mix and match whatever seems to make sense to you.

viper7882 commented 7 years ago

Thank you @hughperkins , it is clear to me now where Coriander can run NVIDIA® CUDA™ code on OpenCL 1.2 devices. Wish I could assist to bridge this capability between Coriander and Mxnet. I'm certain your contribution for Coriander and DeepCL has already been appreciated by many users for now, including myself.

viper7882 commented 7 years ago

Hi @hughperkins ,

You might want to consider to include DeepCL into this Wikipedia page and include DeepCL for greater exposure.

hughperkins commented 7 years ago

Hi @viper7882 So, I'd very much like to see DeepCL added to the wikipedia page. I think it's considered bad form to add oneself, but if you'd like to add DeepCL in, that would be awesome! :-)

hughperkins commented 7 years ago

Re: it is clear to me now where Coriander can run NVIDIA® CUDA™ code on OpenCL 1.2 devices.

Ah, I suppose you meant, what is the relationship between Coriander and Coriander-DNN?

Sooo...

viper7882 commented 7 years ago

Hi Hugh,

As you might have aware, I've shared Coriander DNN with some of the folks in DNN community yesterday. Based on reply from @davisking from dlib, that's the same impression I'm getting from your reply above for Coriander-DNN and fair as you've commented in readme where it is partially implemented.

It seems to me @davisking is opened to accept Coriander-DNN once a full stack of NVIDIA® cuDNN and cuBLAS APIs stack like are supported. I'm optimistic about the future of Coriander-DNN where DNN community is likely heading to. IMHO, it is a beginning of a new journey.

viper7882 commented 7 years ago

You could read response from Microsoft CNTK here

viper7882 commented 7 years ago

@raver119 from deeplearning4j seems to have resistance here which is kind of a fair statement.

davisking commented 7 years ago

OpenCL support would be great, so long as it really works.