-
Notifications
You must be signed in to change notification settings - Fork 227
conda: add _GLIBCXX_USE_CXX11_ABI=1 support for linux cpu wheel #1062
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
Conversation
The target of this commit is to add the support for a new linux cpu conda wheel file built with _GLIBCXX_USE_CXX11_ABI=1. we add a Dockerfile (conda/Dockerfile_cxx11-abi) with CentOS8 as base image to support CXX11_ABI=1. To build the new docker image with CXX11_ABI support, run: CUDA_VERSION=cpu-cxx11-abi conda/build_docker.sh or conda/build_all_docker.sh To build a linux cpu conda wheel with CXX11_ABI within this image, run: // the below settings are special for this image export DESIRED_CUDA=cpu-cxx11-abi # change from cpu for wheel name export GPU_ARCH_TYPE=cpu-cxx11-abi # change from cpu for build.sh export DOCKER_IMAGE=pytorch/conda-builder:cpu-cxx11-abi export DESIRED_DEVTOOLSET=cxx11-abi // the below settings are as usual export BINARY_ENV_FILE=/tmp/env export BUILDER_ROOT=/builder export DESIRED_PYTHON=3.7 # or 3.8, 3.9, etc. export IS_GHA=1 export PACKAGE_TYPE=conda export PYTORCH_FINAL_PACKAGE_DIR=/artifacts export PYTORCH_ROOT=/pytorch export GITHUB_WORKSPACE=/your_path_to_workspace // the '-e DESIRED_DEVTOOLSET' below is newly added for this container, // others are as usual set -x mkdir -p artifacts/ container_name=$(docker run -e BINARY_ENV_FILE -e BUILDER_ROOT -e DESIRED_CUDA -e DESIRED_PYTHON -e GPU_ARCH_TYPE -e IS_GHA -e PACKAGE_TYPE -e PYTORCH_FINAL_PACKAGE_DIR -e PYTORCH_ROOT -e DOCKER_IMAGE -e DESIRED_DEVTOOLSET --tty --detach -v "${GITHUB_WORKSPACE}/pytorch:/pytorch" -v "${GITHUB_WORKSPACE}/builder:/builder" -v "${RUNNER_TEMP}/artifacts:/artifacts" -w / "${DOCKER_IMAGE}" ) // build conda wheel as usual, // and the built wheel file name looks like: pytorch-1.13.0.dev20220616-py3.7_cpu_0.tar.bz2 docker exec -t -w "${PYTORCH_ROOT}" "${container_name}" bash -c "bash .circleci/scripts/binary_populate_env.sh" docker exec -t "${container_name}" bash -c "source ${BINARY_ENV_FILE} && bash /builder/conda/build.sh" // to verify the built wheel file, we'll see 'True' $ conda install pytorch-1.13.0.dev20220616-py3.7_cpu_0.tar.bz2 $ python -c 'import torch; print(torch._C._GLIBCXX_USE_CXX11_ABI)' True Co-authored-by: Zhu Hong <[email protected]> Co-authored-by: Guo Yejun <[email protected]>
Hi @malfet |
Can we also please add a manywheel package with similar CXX11 abi ? |
@zhuhong61 thanks thanks. Are the wheels being published ? |
@powderluv Sorry. I don't really understand what does the "publish" mean by. To my understandings, the manywheel package has not been pulished on pytorch offical website. Now we need to add new checks in CI system for github/pytorch/pytorch to verify the manywheel package with cxx11-abi (#990 (comment)), and we are waiting for the review of the PR: pytorch/pytorch#79409. |
cc @malfet @zhuhong61 looks like this commit breaks mac nightly conda builds https://hud.pytorch.org/hud/pytorch/pytorch/nightly I see this error when inspecting the cmake command
This is working command from before
|
Thank you for the investigation @atalman |
Hi @atalman
Thanks! |
The target of this commit is to add the support for a new linux
cpu conda wheel file built with _GLIBCXX_USE_CXX11_ABI=1.
we add a Dockerfile (conda/Dockerfile_cxx11-abi) with CentOS8 as base image to
support CXX11_ABI=1.
To build the new docker image with CXX11_ABI support, run:
CUDA_VERSION=cpu-cxx11-abi conda/build_docker.sh
or
conda/build_all_docker.sh
To build a linux cpu conda wheel with CXX11_ABI within this image, run:
// the below settings are special for this image
export DESIRED_CUDA=cpu-cxx11-abi # change from cpu for wheel name
export GPU_ARCH_TYPE=cpu-cxx11-abi # change from cpu for build.sh
export DOCKER_IMAGE=pytorch/conda-builder:cpu-cxx11-abi
export DESIRED_DEVTOOLSET=cxx11-abi
// the below settings are as usual
export BINARY_ENV_FILE=/tmp/env
export BUILDER_ROOT=/builder
export DESIRED_PYTHON=3.7 # or 3.8, 3.9, etc.
export IS_GHA=1
export PACKAGE_TYPE=conda
export PYTORCH_FINAL_PACKAGE_DIR=/artifacts
export PYTORCH_ROOT=/pytorch
export GITHUB_WORKSPACE=/your_path_to_workspace
// the '-e DESIRED_DEVTOOLSET' below is newly added for this container,
// others are as usual
set -x
mkdir -p artifacts/
container_name=$(docker run
-e BINARY_ENV_FILE
-e BUILDER_ROOT
-e DESIRED_CUDA
-e DESIRED_PYTHON
-e GPU_ARCH_TYPE
-e IS_GHA
-e PACKAGE_TYPE
-e PYTORCH_FINAL_PACKAGE_DIR
-e PYTORCH_ROOT
-e DOCKER_IMAGE
-e DESIRED_DEVTOOLSET
--tty
--detach
-v "${GITHUB_WORKSPACE}/pytorch:/pytorch"
-v "${GITHUB_WORKSPACE}/builder:/builder"
-v "${RUNNER_TEMP}/artifacts:/artifacts"
-w /
"${DOCKER_IMAGE}"
)
// build conda wheel as usual,
// and the built wheel file name looks like: pytorch-1.13.0.dev20220616-py3.7_cpu_0.tar.bz2
docker exec -t -w "${PYTORCH_ROOT}" "${container_name}" bash -c "bash .circleci/scripts/binary_populate_env.sh"
docker exec -t "${container_name}" bash -c "source ${BINARY_ENV_FILE} && bash /builder/conda/build.sh"
// to verify the built wheel file, we'll see 'True'
$ conda install pytorch-1.13.0.dev20220616-py3.7_cpu_0.tar.bz2
$ python -c 'import torch; print(torch._C._GLIBCXX_USE_CXX11_ABI)'
True
Co-authored-by: Zhu Hong [email protected]
Co-authored-by: Guo Yejun [email protected]