[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Re: Is theano worth saving?



> I believe the easiness of `apt install` which Daniel brought in is no
> longer so much of a *strong* argument, now that pip + wheels has become
> quite mature. That's my personal opinion though.

I think I should say something since I'm maintaining some Theano
alternative packages [1] and I basically work in the field which
needs software frameworks like Theano.

Some upstream who maintains such a framework doesn't quite care
about making a release or providing any kind of long-term support
because the field of Artificial Intelligence progresses so fast,
and the state-of-the-art deep learning frameworks are basically
following the pace of academic research. The research scientists/
engineers and PhD's behind these software are paid for their
scientific contribution instead of software development/maintenance.
This is depressing but true. Some of these frameworks come from
research laboratories instead of a software company. For example,
Caffe comes from Berkeley vision and learning center and its
main devs are PhDs in Berkeley; Torch is developed by several
scientists and basically maintained by several research engineers
from Facebook AI research. Well, Tensorflow is also strongly
related to Google's research.

The reason is simple and straightforward: What profit will they
gain from providing long-term support to a out-dated version
of AI software?  The NVIDA company contributed many open sourced
code by assigning paid workers to popular deep learning framework
projects, helping them to improve their CUDA related parts.
That's because NVIDA, directly and indirectly, benefited a lot
from the field of AI [2].

That's the story. And my advice is: Don't waste too much time
on these not-quite-mature scientific programs if you don't
see whether it is valuable. Here is a list of reasons:

 * As said above, some upstreams don't quite care about
   providing long-term support. This is not compatible
   with Debian's release cycle.
 * Some upstreams don't quite care about the portability
   of their software. Training a deep neural network
   (not for fun) requires much computation power and
   only amd64 (and maybe ppc64el) is(are) able to provide that
   power. It's not valuable to port these software to e.g. mipsel
   architecutre. This is not compatible with Debian's goal of being
   a Universal operating system.
 * Debian's official binary packages have lost performance from SIMD
   instruction sets. One of my research program runs several times
   faster after recompiled OpenBLAS with -march=native and some
   other tweaks. Building packages with generic flags, a result
   of Debian's goal of being Universal, makes official binary packages
   not quite suitable for both compute-bound and IO-bound task.
   Compiling from source following the upstream guide is fine.
 * The full-of-black-magic deep neural network library "cuDNN" is
   not redistributable currently [3]. "cuDNN" is widely-used in
   production environment.

I find it valuable to make a Debian package for these frameworks
in these ways:

 * help upstream to clean up installation and porting obstacle
   on Debian. So users will suffer less on Debian.
 * users won't mess the system up with .deb packages.
 * good-quality packages to be played around with.

You may find me working on packaging of Caffe, Torch, (Pytorch,) and
some Tensorflow dependencies, that's simply because I (will) use them
for my research work on several Debian Sid computatoin servers [4].
However seriously speaking, I recompiled some of them with the
-march=native flag, and/or against the cuDNN library, which requires
slight modification on my packaging scripts.

My opinion may be somewhat subjective but I still hope that it helps.

Best.

[1] Theano is basically a deep learning framework. Caffe and Torch
    do basically the same thing but differs in details.
[2] You can see a section named "Deep learning and artificial
    Intelligence" on its homepage.
[3] Copyright holder of cuDNN is NVIDIA.
[4] Nearly none of my research work was based on Theano


Reply to: