This seems similar to sqlite which offers (maybe now by default?) a single c file that is the whole DB engine and makes it quite attractive as a local db option.
I have no strong opinion on whether or not to keep amalgamation, but I wasn’t actually aware of this use-case for mxnet and I recall how much I liked sqlite for this. On Sat, Sep 28, 2019 at 10:17 AM Tianqi Chen <tqc...@cs.washington.edu> wrote: > To give a complete picture. I will talk a bit about my experience on using > the all-in-one file approach and a few examples in the tvm project. > > Currently, tvm uses all-in-one build for its lightweight runtime in cases > where we want a separate build system and do not want to bother to use > CMake, this include > > - Standalone deployment: > https://github.com/dmlc/tvm/tree/master/apps/howto_deploy > - Android projects where we need to use NDK for cross compilation. > - iOS where we need to use XCode. > > In all these cases, all-in-one build provide the benefit of easy to > incorporate into the target project. However, we only use all-in-one build > for the "minimum runtime" that is necessary to run a model. But will not > include components that compiles and optimizes the model as things will get > out of hand pretty quickly and in those cases, having a build system > out-weights the gains of the single file. > > So if there is a minimum runtime that MXNet wants to incorporate into the > users' env and the developers do not want to code up a CMake recipe for > that, it is a possible route. And in that case, I would still suggest to > move away from the current approach that create a single file but follow > the approach in the above link. In both cases, the current amalgamation is > not fulfilling its function so I think it is fine to remove and add new > ones with thoughts if necessary > > TQ > > On Sat, Sep 28, 2019 at 9:49 AM Tianqi Chen <tqc...@cs.washington.edu> > wrote: > > > The main use of amalgamation(aka all in one file build) for cases where > it > > is hard to setup a Make system. Most user knows how to include a single > > file into their project, but it is relatively harder to incorporate an > > entire build system. > > > > As a result, all-in-one file runtime is still being quite widely used and > > I personally liked the approach, I just suggested that the current > approach > > may not be the best way to go and creates some maintenance burden. > > > > See the link of an example project that uses new all-in-one approach that > > i mentioned(which illustrates the usecase of all-in-one file as well) > > https://github.com/dmlc/tvm/tree/master/apps/howto_deploy > > > > TQ > > > > On Sat, Sep 28, 2019 at 3:46 AM Marco de Abreu <marco.g.ab...@gmail.com> > > wrote: > > > >> Do we have a good knowledge and overview over all the use cases that use > >> Amalgamation? At least from my perspective I don't feel well informed > >> about > >> the blast radius. > >> > >> -Marco > >> > >> Junru Shao <junrushao1...@gmail.com> schrieb am Sa., 28. Sep. 2019, > >> 09:14: > >> > >> > As Tianqi and Sheng mentioned, given the fact that we are able to do > >> > deployment in a possibly better way (correct me if I was wrong), I > would > >> > love to +1 to Pedro’s proposal. > >> > > >> > In the meantime, as a healthy open source community, I also agree with > >> > Naveen’s point that we should do more homework for both our developers > >> and > >> > customers. IMHO, for example, it would be super helpful if Pedro may > >> bring > >> > up some documentation describing what is the “best practice” of using > >> the > >> > alternative of amalgamation, if our community agree to deprecate it. > >> > > >> > Thank you guys so much for the discussion! > >> > > >> > Junru > >> > > >> > On Fri, Sep 27, 2019 at 17:00 Tianqi Chen <tqc...@cs.washington.edu> > >> > wrote: > >> > > >> > > The original amalgamation tries to generate a single file for > >> compilation > >> > > via a script. This is largely un-necessary, having a file that > >> include > >> > the > >> > > dependent files and compile that one is relatively easy and > sometimes > >> > more > >> > > robust(without expanding everything into a single file). > >> > > > >> > > I think it might makes sense to deprecate and remove the current one > >> > given > >> > > that it is no longer properly functioning. If someone is interested, > >> > create > >> > > another deployment example that is more standalone without the file > >> > > expansion. Here is an reference of the "new style" used in the tvm > >> > project > >> > > https://github.com/dmlc/tvm/tree/master/apps/howto_deploy > >> > > > >> > > TQ > >> > > > >> > > On Fri, Sep 27, 2019 at 4:49 PM Sheng Zha <zhash...@apache.org> > >> wrote: > >> > > > >> > > > As an alternative to amalgamation, could we simply ask users to > >> > > statically > >> > > > link to libmxnet.a, and then prune the symbol table to get rid of > >> the > >> > > > binary of unused functions? Though I don't know the full context > of > >> > > > amalgamation, based on my knowledge on this feature I'm not aware > of > >> > any > >> > > > difference in the end result, compared to the code-inlining > approach > >> > that > >> > > > amalgamation takes. > >> > > > > >> > > > -sz > >> > > > > >> > > > On 2019/09/12 17:29:02, Naveen Swamy <mnnav...@gmail.com> wrote: > >> > > > > so the original email suggesting to remove was after all > >> self-serving > >> > > :) > >> > > > > > >> > > > > let's encourage if someone wants to maintain and make use of the > >> > > original > >> > > > > work and make it better. > >> > > > > > >> > > > > -1 to remove at this point > >> > > > > > >> > > > > P.S: I suggest to do some due diligence before bringing topics > up > >> for > >> > > > > discussion. > >> > > > > > >> > > > > On Wed, Sep 11, 2019 at 8:10 AM Lv, Tao A <tao.a...@intel.com> > >> > wrote: > >> > > > > > >> > > > > > Sorry to chime in. > >> > > > > > > >> > > > > > There is a PR to fix amalgamation. I was pinged several times > to > >> > > merge > >> > > > it > >> > > > > > but I don't think I have enough knowledge to do that. So it > >> would > >> > be > >> > > > great > >> > > > > > if someone from this thread can help to review. > >> > > > > > > >> > > > > > https://github.com/apache/incubator-mxnet/pull/15303 > >> > > > > > > >> > > > > > thanks, > >> > > > > > -tao > >> > > > > > > >> > > > > > -----Original Message----- > >> > > > > > From: Marco de Abreu <marco.g.ab...@gmail.com> > >> > > > > > Sent: Wednesday, September 11, 2019 9:38 PM > >> > > > > > To: dev@mxnet.incubator.apache.org > >> > > > > > Subject: Re: [DISCUSS] Remove amalgamation > >> > > > > > > >> > > > > > Is Amalgamation only used on Android though? Are there any > other > >> > use > >> > > > cases? > >> > > > > > > >> > > > > > -Marco > >> > > > > > > >> > > > > > Pedro Larroy <pedro.larroy.li...@gmail.com> schrieb am Mi., > 11. > >> > Sep. > >> > > > 2019, > >> > > > > > 11:57: > >> > > > > > > >> > > > > > > Hi Anirudh > >> > > > > > > > >> > > > > > > Appreciate your feedback and sorry if my email came across > >> that > >> > way > >> > > > to > >> > > > > > > you, I think you might miss some context. I don't think > >> calling > >> > > > > > > something hacky is anything bad and isn't supposed to be the > >> > topic > >> > > of > >> > > > > > > the discussion. It was reported as not working by users, > hence > >> > the > >> > > > > > > original thread. It was a request for opinions from people > who > >> > > might > >> > > > > > > actually have tried to work in Mxnet on Android. > >> > > > > > > > >> > > > > > > Thanks. > >> > > > > > > > >> > > > > > > Pedro. > >> > > > > > > > >> > > > > > > > >> > > > > > > On Tuesday, September 10, 2019, Anirudh Subramanian > >> > > > > > > <anirudh2...@gmail.com > >> > > > > > > > > >> > > > > > > wrote: > >> > > > > > > > Hi Pedro, > >> > > > > > > > > >> > > > > > > > I don't see anything "destructive" with Chris asking for > >> > > > > > > > justification > >> > > > > > > for > >> > > > > > > > you calling something "hacky". The only email in this > thread > >> > > where > >> > > > I > >> > > > > > > > see > >> > > > > > > ad > >> > > > > > > > hominems and disrespectful comments is your email. > >> > > > > > > > > >> > > > > > > > On Sat, Sep 7, 2019, 10:18 PM Pedro Larroy > >> > > > > > > > <pedro.larroy.li...@gmail.com > >> > > > > > > > > >> > > > > > > > wrote: > >> > > > > > > > > >> > > > > > > >> Apache mentors should have a look at these reincident > >> > harassment > >> > > > > > > >> and destructive behaviors which demotivate contributions > >> and > >> > > take > >> > > > > > > >> action. It takes only one bad apple to ruin a community. > >> > > > > > > >> > >> > > > > > > >> The mobile solution that is known to work as of know is > >> cross > >> > > > > > > >> compiling with "ci/build.py -p build.android_armv8" or > >> > > > > > > >> "build.android_armv7". The only advantage of amalgamation > >> is > >> > to > >> > > > > > > >> provide a smaller binary that we > >> > > > > > > could > >> > > > > > > >> accomplish with the C preprocessor. > >> > > > > > > >> > >> > > > > > > >> My technical contributions speak for themselves, > including > >> > > porting > >> > > > > > > >> MXNet > >> > > > > > > to > >> > > > > > > >> Android and ARM and helping many users run MXNet in > Jetson, > >> > > > > > > >> Raspberry Pi and Android amongst many other topics. I > have > >> > never > >> > > > > > > >> been disrespectful > >> > > > > > > to > >> > > > > > > >> anyone. I'm entitled to my own technical opinions about > >> > > > > > > >> amalgamation or > >> > > > > > > any > >> > > > > > > >> other piece of code whatsoever, that's no personal > >> disrespect > >> > to > >> > > > > > > >> anyone > >> > > > > > > and > >> > > > > > > >> perfectly valid. If you are not interested in this > project > >> > > > anymore, > >> > > > > > > >> do > >> > > > > > > us > >> > > > > > > >> all a favor and stop trolling and being toxic. If you > want > >> my > >> > > > > > > >> respect, > >> > > > > > > step > >> > > > > > > >> up your technical contributions, be positive and > encourage > >> > > others, > >> > > > > > > >> this including commits, I haven't seen for many months, > >> please > >> > > be > >> > > > > > > >> positive > >> > > > > > > and > >> > > > > > > >> constructive. This scorched-earth attitude is only > >> reflecting > >> > > bad > >> > > > > > > >> on > >> > > > > > > you. > >> > > > > > > >> I'm certainly not interested in your ad-hominems or > unasked > >> > for > >> > > > > > > technical > >> > > > > > > >> advice, which to be honest, showing poor judgment and > >> > > ignorance. > >> > > > > > > >> Myself and others have come up with numbers, graphs, > >> metrics > >> > and > >> > > > > > > >> arguments and have been met with dismissal, trolling and > >> > > > > > > >> sea-lioning. I have recieved your insults via public and > >> > private > >> > > > > > > >> channels (such as linkedin) as have others. This is not > ok > >> and > >> > > has > >> > > > > > > >> to stop. If you have something personal against me or > >> against > >> > > your > >> > > > > > > >> former employer, this is not the right place > >> > > > > > > or > >> > > > > > > >> forum. > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> On Fri, Sep 6, 2019 at 3:56 PM Chris Olivier > >> > > > > > > >> <cjolivie...@gmail.com> > >> > > > > > > >> wrote: > >> > > > > > > >> > >> > > > > > > >> > Hi Pedro, > >> > > > > > > >> > > >> > > > > > > >> > While I was not involved with amalgamation or its > >> > development > >> > > in > >> > > > > > > >> > any > >> > > > > > > way, > >> > > > > > > >> > can you please refrain from referring to the work of > >> others > >> > > as a > >> > > > > > > "hacky > >> > > > > > > >> > solution"? This is derogatory slang and the statement > >> was > >> > not > >> > > > > > > supported > >> > > > > > > >> > with any justification for such name-calling. Someone > >> > spent a > >> > > > > > > >> > good > >> > > > > > > deal > >> > > > > > > >> of > >> > > > > > > >> > time on this solution at some point in time and I am > >> sure it > >> > > > > > > >> > worked > >> > > > > > > for > >> > > > > > > >> its > >> > > > > > > >> > purpose at that time -- I think it was used in the > >> original > >> > > > > > > >> > javascript > >> > > > > > > >> port > >> > > > > > > >> > as well, actually -- and it is disrespectful to call > >> their > >> > > > > > > >> > efforts "hacky". Please respect what came before. > >> > > > > > > >> > > >> > > > > > > >> > Thanks for understanding, > >> > > > > > > >> > > >> > > > > > > >> > -Chris > >> > > > > > > >> > > >> > > > > > > >> > > >> > > > > > > >> > On Fri, Sep 6, 2019 at 3:07 PM Pedro Larroy < > >> > > > > > > >> pedro.larroy.li...@gmail.com> > >> > > > > > > >> > wrote: > >> > > > > > > >> > > >> > > > > > > >> > > Hi > >> > > > > > > >> > > > >> > > > > > > >> > > I would like to propose to remove amalgamation from > >> MXNet > >> > > and > >> > > > > > > >> > > CI, > >> > > > > > > users > >> > > > > > > >> > > have reported that they couldn't use it successfully > in > >> > > > > > > >> > > Android, and instead they were able to use the cross > >> > > compiled > >> > > > > > > >> > > docker build > >> > > > > > > >> > successfully. > >> > > > > > > >> > > > >> > > > > > > >> > > Any reason why we shouldn't remove this hacky > solution? > >> > > > > > > >> > > > >> > > > > > > >> > > Pedro. > >> > > > > > > >> > > > >> > > > > > > >> > > >> > > > > > > >> > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > > >