You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tvm.apache.org by Haichen Shen via Apache TVM Discuss <no...@discuss.tvm.ai> on 2020/09/15 05:46:43 UTC

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages


So far we only released source code in past tvm releases, and we will continue to do so.

As we continue to develop tvm, we also see some demand for convenient binary packages, such as wheel or docker binaries. One important factor of such binary packages is the potential links with third party SDKs, a typical example is CUDA for Nvidia GPUs. Because some resulting binaries are subject to additional terms(e.g. CUDA EULA), the resulting binaries may not be Apache license compatible.

Notably, it is acceptable for users to use the binary package, as they already accepted the CUDA EULA when they install the CUDA dependencies. This is one benefit for producing source release, we can make sure that the source release is 100% ALv2 compatible from the licensing point of view.

The current ASF policy disallows non-apache compatible binaries to use the project name. As an Apache project, it is important for us to comply and protect the Apache brand. As a result, we will not use tvm to name the binary artifact.

ASF does allow third-party releases to be created using a different name, e.g. Foo, powered by Apache TVM.

To better help the community while complying with the ASF policy, we(as a group of individual volunteers) decided to create tlcpack -- tensor learning compiler binary package powered by Apache TVM. tlcpack **does not** contain any additional source code addons, and is only a collection of binary builds that build from the official tvm source by turning on different build configurations. Notably, the only difference is in the package naming, the idea is that the users can do

```
pip install tlcpack -f https://tlcpack.ai/wheels.html
python
>> import tvm # tvm will be available.
```

There are 4 versions of tlcpack wheels: tlcpack (for cpu only), tlcpack-cu100 (for CUDA 10.0), tlcpack-cu101 (for CUDA 10.1), and tlcpack-cu102 (for CUDA 10.2). The supported Python versions are 3.6, 3.7, and 3.8. Currently, only the linux platform is supported. The wheels for MacOS and Windows will be released in the future. We plan to update the wheels every month to keep up with the latest updates in the TVM.

We also provide docker images to provide convenient services to the community developers who want to use them. Notably, the volunteers are releasing tlcpack not wearing Apache hats. We have clear disclaimers that these binary releases are not official Apache releases. The name tlcpack is picked so that it is clearly distinguished from the official Apache source release.

Wearing ASF hats, we will continue to work together with the community to produce high-quality source releases that comply with the Apache release policy.

co-author @tqchen





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/1) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/35cb6c28e462cdf2227c51370cd7d38c729481d923954b2b7ec5f876b8de6009).

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages

Posted by Haichen Shen via Apache TVM Discuss <no...@discuss.tvm.ai>.

The wheels are built on a newer version of CentOS. Pip wheel for CPU is manylinux2010 compatibility and wheels for CUDA are manylinux2014 compatibility. Releasing wheels with different CUDA versions is to accommodate different develop and deploy environment.





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/7) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/c076771f183cc3cc40d6b67ad8d54aa20c230e7184b814945c4707e17a9980c6).

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages

Posted by Chenfan via Apache TVM Discuss <no...@discuss.tvm.ai>.

Thanks!

The pip package will be of great help if one just wants to run some simple tests. And the developer docker images are also helpful, I have had trouble building TVM in a old CentOS system which only have gcc 4.8 support.

BTW, I'm curious about the decision of releasing cuda100 with 101 and 102 at the same time.





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/3) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/1ce16e69f1058815f2d234625c8e3a5e4fc628c0ad857fea8f2073846a0f55fe).

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages

Posted by Manupa Karunaratne via Apache TVM Discuss <no...@discuss.tvm.ai>.

Hi @tqchen,

Im not sure whether that requires different namespaces for the packages.

Why cant we use something as follows : 

* Released versions: e.g.: tlcpack-0.8 tlcpack-0.8.1 tlcpack-0.9

* Pre-release versions instead of tlcpack_nightly:
tlcpack-0.10.devXXX





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/17) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/f1233f682cc5c42114d4f0d459097d42dc62dbb7cd0c6b9a46dae887d8dd0c13).

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages

Posted by tqchen via Apache TVM Discuss <no...@discuss.tvm.ai>.

The main reason is that they corresponds to different hashtags, the nightly always points to the latest, while the non nightly points to a fixed tag(likely will switch to only stable version after v0.8)





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/16) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/76530bb45014725445e3ea6e3715a402ca7a488eec8cd53e56623b9701de9a21).

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages

Posted by "Leandro Nunes (Arm) via Apache TVM Discuss" <no...@discuss.tvm.ai>.

@hogepodge thanks for doing the work on enabling nightly packages.

I got a question about the names of the packages: why do we need to have different names, as in `tlcpack` and `tlcpack-nightly` being published as different things?

cc @mjs @manupa-arm @tqchen





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/15) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/d20541b67327e9afb4166f04922e57fb7700a46596c344bdc1d714b3b2e16feb).

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages

Posted by Junru Shao via Apache TVM Discuss <no...@discuss.tvm.ai>.

Finally! Thank you for the hard work!!





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/2) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/5a4c5264cdd7938122325e79277715a6a4c804c34a6e663df2c9001651f6afeb).

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages

Posted by "Leandro Nunes (Arm) via Apache TVM Discuss" <no...@discuss.tvm.ai>.

Understood. Thanks @tqchen!





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/6) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/9677b1c0423ecd4f61977fa77c30c9bea56ebe08594b5c5758a021e17f4d5dc3).

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages

Posted by Junru Shao via Apache TVM Discuss <no...@discuss.tvm.ai>.

BTW, @haichen shall we also release runtime-only version of tlcpack? It would be helpful if people want to bake TVM-compiled operators in other frameworks shallowly in python





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/8) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/f896689dcf503f83e586b34661a8554dc6cebec7f1e1332bea3d7bd14991f7bb).

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages

Posted by hsuan via Apache TVM Discuss <no...@discuss.tvm.ai>.

Thanks for your work.

I tested the wheels however I got CUDA error with tlcpack_cu102-0.7.dev1-cp36-cp36m-manylinux2014_x86_64.whl:

     tvm._ffi.base.TVMError: Traceback (most recent call last):
      [bt] (3) /usr/local/lib/python3.6/dist-packages/tvm/libtvm.so(TVMFuncCall+0x48) [0x7fe7e6f0dc48]
      [bt] (2) /usr/local/lib/python3.6/dist-packages/tvm/libtvm.so(std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::runtime::detail::PackFuncVoidAddr_<4, tvm::runtime::CUDAWrappedFunc>(tvm::runtime::CUDAWrappedFunc, std::vector<tvm::runtime::detail::ArgConvertCode, std::allocator<tvm::runtime::detail::ArgConvertCode> > const&)::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#1}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&)+0x9e) [0x7fe7e6fae74e]
      [bt] (1) /usr/local/lib/python3.6/dist-packages/tvm/libtvm.so(tvm::runtime::CUDAWrappedFunc::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*, void**) const+0x755) [0x7fe7e6fae645]
      [bt] (0) /usr/local/lib/python3.6/dist-packages/tvm/libtvm.so(+0x15f4505) [0x7fe7e6faa505]
      File "/workspace/tvm/src/runtime/cuda/cuda_module.cc", line 105
      File "/workspace/tvm/src/runtime/library_module.cc", line 78
    CUDAError: Check failed: ret == 0 (-1 vs. 0) : cuModuleLoadData(&(module_[device_id]), data_.c_str()) failed with error: CUDA_ERROR_NOT_INITIALIZED

I tested this with image:
`docker pull nvidia/cuda:10.2-cudnn8-devel-ubuntu18.04`

while if build tvm from source, it works without any issue..

Anyone know what could be the cause of this?





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/9) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/ada6139dbeb36708aff3ac934f5cf248a855e7e82b0400b737a6cf39dbd207c3).

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages

Posted by tqchen via Apache TVM Discuss <no...@discuss.tvm.ai>.

Because the package is thirdparty (non-ASF). The main policy that need to referred to is the trademark policy if the product would like to be referred to as "Foo Powered by Apache TVM."  See http://www.apache.org/foundation/marks/faq/#poweredby 

We can also move followup convos specific to tlcpack to https://github.com/tlc-pack/tlcpack/issues





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/11) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/28ab3bd98fe7e89bcb7b5625d71d048124ae2925c960bede7789d9ece8825036).

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages

Posted by Ramana Radhakrishnan via Apache TVM Discuss <no...@discuss.tvm.ai>.

Thanks for this initiative and it is commendable towards reducing the burden for use of the Apache TVM project.

Could you link to the Apache policy here for other folks to read and see what other guidelines need to be investigated as I couldn't find it easily enough ? It might also be worthwhile for the project to document these aspects as items to consider.

Would this be something that would also allow others to add their own binary packages to this  - I can envisage a linkage against the Ethos-N compiler / driver library for providing users with use of the work in Arm easily. 

regards
Ramana





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/10) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/570613d7cbf00433f181183bbcaebe1d65196b6be58a6c7ce89cfb5654531d9b).

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages

Posted by tqchen via Apache TVM Discuss <no...@discuss.tvm.ai>.

The pypi was due to pypi file size limit (the cuda binary size was quite big). We can move to pypi once the pypi file size limit request is approved. Scripts are available https://github.com/tlc-pack/tlcpack





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/5) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/266a207c3befb314f247be028508eb329e3af8a1327bee5be00eb31d35fcf756).

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages

Posted by "Leandro Nunes (Arm) via Apache TVM Discuss" <no...@discuss.tvm.ai>.

Thanks @haichen and @tqchen! This is really cool, and new users will certainly benefit from that.

I'm curious to understand why we are (I assume) self-hosting, rather than using pypi. Is this due to ASF licensing rules as well?

Also, are the scripts and parameters you're using to generate these packages, being pushed somewhere, so that we can replicate that in test pipelines?





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/4) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/acc5be3aa04f5f175c92256e4ef2fd1c075d0076b844c20767ef99021969cdb6).

[Apache TVM Discuss] [Development/RFC] [RFC] tlcpack: Thirdparty Binary Packages

Posted by Chris Hoge via Apache TVM Discuss <no...@discuss.tvm.ai>.

I'm working on getting Linux Nightly built for pip. To do this, I needed to upgrade to manylinux2014. It wasn't possible to easily build LLVM with manylinux2010 any longer. Additionally, the nightly will only work for builds from main rather than the latest stable release. I think this is enough motivation to start working towards the 0.8 release, as there are many new features that have landed.

https://github.com/tlc-pack/tlcpack/pull/44

The next steps are to write a workflow to build the Docker image and publish the resulting package.





---
[Visit Topic](https://discuss.tvm.apache.org/t/rfc-tlcpack-thirdparty-binary-packages/7903/14) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/ab0b3c3f5e165b50f2f37b24e5b43043035506b4592c1349da00dcf9373c9898).