-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a manylinux2014 compatible release with only LLVM-based backends #4395
Comments
If we directly build on CentOS 7 nvidia docker, can we get a manylinux2014 wheel with proper cuda / vulkan? |
Maybe? Not sure either.. My reasoning is that, if people cares about manylinux2014 compatibility, they're definitely running Taichi on a Linux server, so it's fine to limit the provided backends in this case. Instead of uploading these as PyPI packages, we can probably just build a few such special wheels and place them in the Github release page for users who need them. This simplifies our PyPI mgmt. |
Linux GPU servers are quite common these days tho. At least we should provide CUDA. |
@k-ye @bobcao3, Let me recap some of our previous efforts here: The problem with CentOS 7 is that it comes with GCC 4.8, this is too old to compile Taichi (not saying impossible, but too many errors to dig). This is the same story for Nvidia CentOS7. The way we circumvent this is to use a magic docker image with Red Hat devtoolset-10. (https://git.centos.org/rpms/devtoolset-10-gcc), which is based on CentOS7 but with gcc 10. By using this image (quay.io/pypa/manylinux2014_x86_64), we still need to recompile clang and llvm but it is possible to build. Now to support CUDA, I see three options: I vote for option [c], WDYT? |
[c] sounds good to me! |
c sounds like the best option but I do think we should attempt |
I think our top priority in this issue is to unblock CUDA users.. Vulkan will be a nice-to-have, but it's not that urgent :-) |
Where can we upload such a wheel without Vulkan? |
I believe GH provides API to upload additional artifacts to release pages like this (https://github.com/taichi-dev/taichi/releases/tag/v0.9.0) |
Yes that's definitely possible. However, the updated version is no longer Taichi v9.0. Are we going to do so only for future releases? Next steps in my thoughts:
|
Yep
I think this can be automated with actions like https://github.com/marketplace/actions/gh-release |
I thought following route [c] could completely solve the problem and was about to add the no-vulkan wheel into our release workflow. However, when I tried the real wheel taichi-nightly-py3.8-manylinux2014.whl on a CentOS 7 image, |
GCC 4.8 comes with CXXABI 1.3.7. Maybe first try if the wheel works with this image (quay.io/pypa/manylinux2014_x86_64)? If yes, option [b] will probably have the same result. |
Same error appears on |
Turns out we do need the magic image to be strictly manylinux compliant. Thanks for confirming this. I wonder which version of gcc and libstdc++ does cloud develop environment typically use, let's see whether the previous wheel could still be useful. |
This dockerfile builds Taichi on CPU using the image. It is useful as a starting point. |
I finally choose path [a], customizing an image for our purpose. After tons of trials, now
Next steps:
|
This will include both CPU and CUDA backends, which could be useful for cloud users. See #4377, #3332
The text was updated successfully, but these errors were encountered: