Re: Custom C++ Operators

2019-12-14 Thread kellen sunderland
Awesome news Sam, should make maintaining and integrating custom ops a lot
easier.  Thanks for the efforts everyone.

On Mon, Dec 9, 2019 at 5:55 AM Skalicky, Sam 
wrote:

> Thanks Ciyong,
>
> Absolutely! Heres how a backward function is registered [1] and here’s an
> example backward function for GEMM [2]. We’ll be working on documentation
> and a blog post/tutorial soon, hopefully that will  help clarify things as
> well.
>
> Keep the questions coming!
>
> Thanks,
> Sam
>
> [1]
> https://github.com/apache/incubator-mxnet/blob/master/example/extensions/lib_custom_op/gemm_lib.cc#L171
> [2]
> https://github.com/apache/incubator-mxnet/blob/master/example/extensions/lib_custom_op/gemm_lib.cc#L90-L116
>
> On Dec 8, 2019, at 6:48 AM, Chen, Ciyong  ciyong.c...@intel.com>> wrote:
>
> Really great features, it will provide a more convenient way for
> deployment.
> BTW, does it support backward ops too?
>
> -Ciyong
>
> -Original Message-
> From: Marco de Abreu  marco.g.ab...@gmail.com>>
> Sent: Sunday, December 8, 2019 2:56 AM
> To: dev@mxnet.incubator.apache.org<mailto:dev@mxnet.incubator.apache.org>
> Subject: Re: Custom C++ Operators
>
> Awesome project, love it! It really seems easy to use, great job!
>
> -Marco
>
> Skalicky, Sam  sska...@amazon.com.invalid>> schrieb am Sa., 7. Dez. 2019,
> 19:50:
>
> Hi MXNet Community,
>
> We have been working on adding support for custom C++ operators for a
> while and are happy to announce that the initial functionality is now
> available for you to try out in the master branch!
>
> CustomOp support in MXNet began with allowing users to write custom
> operators in Python and has been available for years. If you wanted to
> write a high-performance C++ operator you had to do it by adding it to
> the MXNet source code, recompiling a custom version of MXNet, and
> distributing that custom build. The Custom C++ operator support
> enhances this by enabling users to write high-performance C++
> operators and compile them separately from MXNet. This frees up users
> from having to recompile MXNet from source and makes it easier to add
> custom operators to suit their needs.
>
> Heres a few pointers to get started:
> 1. Check out the overview in the cwiki [1] 2. Check out the PR [2] 3.
> You can try this out using the new nightly builds that are available
> in
> S3 [3]
> 4. Leave feedback on features to add or things to fix in a followup PR
> here [4]
>
> Credit goes to everyone involved (in no particular order) Manu Seth
> Sheng Zha Jackie Wu Junru Shao Ziyi Mu
>
> Special thanks to all the PR reviewers!
>
> Thanks!
> Sam
>
>
> [1]
> https://cwiki.apache.org/confluence/display/MXNET/Dynamic+CustomOp+Sup
> port [2] https://github.com/apache/incubator-mxnet/pull/15921
> [3]
> https://lists.apache.org/thread.html/0a22e10b290b4ad322ed50024d778c373
> 6b0a772811caea317790732%40%3Cdev.mxnet.apache.org%3E
> <
> https://lists.apache.org/thread.html/0a22e10b290b4ad322ed50024d778c373
> 6b0a772811caea317790732@
> >
> [4] https://github.com/apache/incubator-mxnet/issues/17006
>
>
>


Re: Custom C++ Operators

2019-12-08 Thread Skalicky, Sam
Thanks Ciyong,

Absolutely! Heres how a backward function is registered [1] and here’s an 
example backward function for GEMM [2]. We’ll be working on documentation and a 
blog post/tutorial soon, hopefully that will  help clarify things as well.

Keep the questions coming!

Thanks,
Sam

[1] 
https://github.com/apache/incubator-mxnet/blob/master/example/extensions/lib_custom_op/gemm_lib.cc#L171
[2] 
https://github.com/apache/incubator-mxnet/blob/master/example/extensions/lib_custom_op/gemm_lib.cc#L90-L116

On Dec 8, 2019, at 6:48 AM, Chen, Ciyong 
mailto:ciyong.c...@intel.com>> wrote:

Really great features, it will provide a more convenient way for deployment.
BTW, does it support backward ops too?

-Ciyong

-Original Message-
From: Marco de Abreu mailto:marco.g.ab...@gmail.com>>
Sent: Sunday, December 8, 2019 2:56 AM
To: dev@mxnet.incubator.apache.org<mailto:dev@mxnet.incubator.apache.org>
Subject: Re: Custom C++ Operators

Awesome project, love it! It really seems easy to use, great job!

-Marco

Skalicky, Sam mailto:sska...@amazon.com.invalid>> 
schrieb am Sa., 7. Dez. 2019,
19:50:

Hi MXNet Community,

We have been working on adding support for custom C++ operators for a
while and are happy to announce that the initial functionality is now
available for you to try out in the master branch!

CustomOp support in MXNet began with allowing users to write custom
operators in Python and has been available for years. If you wanted to
write a high-performance C++ operator you had to do it by adding it to
the MXNet source code, recompiling a custom version of MXNet, and
distributing that custom build. The Custom C++ operator support
enhances this by enabling users to write high-performance C++
operators and compile them separately from MXNet. This frees up users
from having to recompile MXNet from source and makes it easier to add custom 
operators to suit their needs.

Heres a few pointers to get started:
1. Check out the overview in the cwiki [1] 2. Check out the PR [2] 3.
You can try this out using the new nightly builds that are available
in
S3 [3]
4. Leave feedback on features to add or things to fix in a followup PR
here [4]

Credit goes to everyone involved (in no particular order) Manu Seth
Sheng Zha Jackie Wu Junru Shao Ziyi Mu

Special thanks to all the PR reviewers!

Thanks!
Sam


[1]
https://cwiki.apache.org/confluence/display/MXNET/Dynamic+CustomOp+Sup
port [2] https://github.com/apache/incubator-mxnet/pull/15921
[3]
https://lists.apache.org/thread.html/0a22e10b290b4ad322ed50024d778c373
6b0a772811caea317790732%40%3Cdev.mxnet.apache.org%3E
<
https://lists.apache.org/thread.html/0a22e10b290b4ad322ed50024d778c373
6b0a772811caea317790732@
>
[4] https://github.com/apache/incubator-mxnet/issues/17006




Re: Custom C++ Operators

2019-12-07 Thread Marco de Abreu
Awesome project, love it! It really seems easy to use, great job!

-Marco

Skalicky, Sam  schrieb am Sa., 7. Dez. 2019,
19:50:

> Hi MXNet Community,
>
> We have been working on adding support for custom C++ operators for a
> while and are happy to announce that the initial functionality is now
> available for you to try out in the master branch!
>
> CustomOp support in MXNet began with allowing users to write custom
> operators in Python and has been available for years. If you wanted to
> write a high-performance C++ operator you had to do it by adding it to the
> MXNet source code, recompiling a custom version of MXNet, and distributing
> that custom build. The Custom C++ operator support enhances this by
> enabling users to write high-performance C++ operators and compile them
> separately from MXNet. This frees up users from having to recompile MXNet
> from source and makes it easier to add custom operators to suit their needs.
>
> Heres a few pointers to get started:
> 1. Check out the overview in the cwiki [1]
> 2. Check out the PR [2]
> 3. You can try this out using the new nightly builds that are available in
> S3 [3]
> 4. Leave feedback on features to add or things to fix in a followup PR
> here [4]
>
> Credit goes to everyone involved (in no particular order)
> Manu Seth
> Sheng Zha
> Jackie Wu
> Junru Shao
> Ziyi Mu
>
> Special thanks to all the PR reviewers!
>
> Thanks!
> Sam
>
>
> [1]
> https://cwiki.apache.org/confluence/display/MXNET/Dynamic+CustomOp+Support
> [2] https://github.com/apache/incubator-mxnet/pull/15921
> [3]
> https://lists.apache.org/thread.html/0a22e10b290b4ad322ed50024d778c3736b0a772811caea317790732%40%3Cdev.mxnet.apache.org%3E
> <
> https://lists.apache.org/thread.html/0a22e10b290b4ad322ed50024d778c3736b0a772811caea317790732@
> >
> [4] https://github.com/apache/incubator-mxnet/issues/17006
>


Custom C++ Operators

2019-12-07 Thread Skalicky, Sam
Hi MXNet Community,

We have been working on adding support for custom C++ operators for a while and 
are happy to announce that the initial functionality is now available for you 
to try out in the master branch!

CustomOp support in MXNet began with allowing users to write custom operators 
in Python and has been available for years. If you wanted to write a 
high-performance C++ operator you had to do it by adding it to the MXNet source 
code, recompiling a custom version of MXNet, and distributing that custom 
build. The Custom C++ operator support enhances this by enabling users to write 
high-performance C++ operators and compile them separately from MXNet. This 
frees up users from having to recompile MXNet from source and makes it easier 
to add custom operators to suit their needs.

Heres a few pointers to get started:
1. Check out the overview in the cwiki [1]
2. Check out the PR [2]
3. You can try this out using the new nightly builds that are available in S3 
[3]
4. Leave feedback on features to add or things to fix in a followup PR here [4]

Credit goes to everyone involved (in no particular order)
Manu Seth
Sheng Zha
Jackie Wu
Junru Shao
Ziyi Mu

Special thanks to all the PR reviewers!

Thanks!
Sam


[1] https://cwiki.apache.org/confluence/display/MXNET/Dynamic+CustomOp+Support
[2] https://github.com/apache/incubator-mxnet/pull/15921
[3] 
https://lists.apache.org/thread.html/0a22e10b290b4ad322ed50024d778c3736b0a772811caea317790732%40%3Cdev.mxnet.apache.org%3E<https://lists.apache.org/thread.html/0a22e10b290b4ad322ed50024d778c3736b0a772811caea317790732@>
[4] https://github.com/apache/incubator-mxnet/issues/17006