mxnet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tianqi Chen <tqc...@cs.washington.edu>
Subject Re: Cython Document iteration
Date Wed, 14 Mar 2018 15:40:08 GMT
My last email was send in the middle of typing so I am resending this

Is the complexity of adding the Cython code generation and compilation
step considered?
Will it work in all platforms?

The complexity in terms of compiler support for pybind11 is same as cython.
If the users can build pybind, then likely cython works(because cython
compiles to c that have same dependency as pybind11 does). What works for
cython may not work for pybind, if there is a prebuild dll(say in windows
via MSVC) and we want to use a different compiler (MinGW) to build


What are the pitfalls and tradeoffs. Isn't it simpler to just hook up in the
 C++ API without going through an additional compiler?

Note that both cython and pybind can wrap c++ API directly, whether using C
or C++ API might worth another thread. But my general opinion is that
wrapping a C API gives you clear thought on what you need and what is being
exposed, while wrap C++ is kinda of the equivalent of wrapping a C version
except that you don't know what is going on.

The main reason why cython is preferred is that it allows easy mix with
python ctypes code, which means we don't have to implement all the
component in cython, but still can use ctypes to implement most things, and
even support cases when cython is not available.

Tianqi


On Wed, Mar 14, 2018 at 8:38 AM, Tianqi Chen <tqchen@cs.washington.edu>
wrote:

> Is the complexity of adding the Cython code generation and compilation
> step considered? Will it work in all platforms?
>
> The complexity in terms of compiler support for pybind11 is same as
> cython. If the users can build pybind, then likely cython works(because
> cython compiles to c that have same dependency as pybind11 does). What
> works for cython may not work for pybind, if there is a prebuild dll(say
> in windows via MSVC) and we want to use a different compiler (MinGW) to
> build
>
>
> What are the pitfalls and tradeoffs. Isn't it simpler to just hook up in
> the C++ API without going through an additional compiler?
>
> Note that both cython and pybind can wrap c++ API directly, whether using
> C or C++ API might worth another thread. But my general opinion is that
> wrapping a C API gives you clear thought on what you need and what is being
> exposed, while C++ API
>
>
> Tiqni
>
>
> On Wed, Mar 14, 2018 at 5:05 AM, Pedro Larroy <
> pedro.larroy.lists@gmail.com> wrote:
>
>> Nice document!  I think it would be good to have a comparison to pybind11
>> without going through the C API.
>>
>> Is the complexity of adding the Cython code generation and compilation
>> step
>> considered? Will it work in all platforms? what are the pitfalls and
>> tradeofs. Isn't it simpler to just hook up in the C++ API without going
>> through an additional compiler?
>>
>> Pedro.
>>
>> On Fri, Mar 9, 2018 at 7:44 PM, Chris Olivier <cjolivier01@gmail.com>
>> wrote:
>>
>> > Eric told me the current cython files "didn't work", so I have not
>> reused
>> > any of the previous cython attempt at this time.
>> >
>> >
>> >
>> >
>> >
>> > On Fri, Mar 9, 2018 at 10:31 AM, Xingjian SHI <xshiab@connect.ust.hk>
>> > wrote:
>> >
>> > > Great! Also, what’s the current status of Cython support in MXNet? I
>> > think
>> > > we have the option to use Cython, which is added by Tianqi.
>> > >
>> > > Best,
>> > > Xingjian
>> > >
>> > > Get Outlook for iOS<https://aka.ms/o0ukef>
>> > > _____________________________
>> > > From: Chris Olivier <cjolivier01@gmail.com>
>> > > Sent: Friday, March 9, 2018 10:21 AM
>> > > Subject: Cython Document iteration
>> > > To: <dev@mxnet.incubator.apache.org>
>> > >
>> > >
>> > > I have generated some cython documentation based upon work so far
>> > regarding
>> > > build system, profiling, development, debugging, etc.
>> > >
>> > > https://docs.google.com/document/d/1pvW5nYbf3pbiak95xZdqgLbrjQdvV
>> > > rVGoYdiU3hNsqc
>> > >
>> > > -Chris
>> > >
>> > >
>> > >
>> >
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message