mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 00:21:07 +01:00
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/42629 How to approach reviewing this diff: - The new codegen itself lives in `tools/codegen`. Start with `gen.py`, then read `model.py` and them the `api/` folder. The comments at the top of the files describe what is going on. The CLI interface of the new codegen is similar to the old one, but (1) it is no longer necessary to explicitly specify cwrap inputs (and now we will error if you do so) and (2) the default settings for source and install dir are much better; to the extent that if you run the codegen from the root source directory as just `python -m tools.codegen.gen`, something reasonable will happen. - The old codegen is (nearly) entirely deleted; every Python file in `aten/src/ATen` was deleted except for `common_with_cwrap.py`, which now permanently finds its home in `tools/shared/cwrap_common.py` (previously cmake copied the file there), and `code_template.py`, which now lives in `tools/codegen/code_template.py`. We remove the copying logic for `common_with_cwrap.py`. - All of the inputs to the old codegen are deleted. - Build rules now have to be adjusted to not refer to files that no longer exist, and to abide by the (slightly modified) CLI. - LegacyTHFunctions files have been generated and checked in. We expect these to be deleted as these final functions get ported to ATen. The deletion process is straightforward; just delete the functions of the ones you are porting. There are 39 more functions left to port. Signed-off-by: Edward Z. Yang <ezyang@fb.com> Test Plan: Imported from OSS Reviewed By: bhosmer Differential Revision: D23183978 Pulled By: ezyang fbshipit-source-id: 6073ba432ad182c7284a97147b05f0574a02f763
95 lines
2.3 KiB
Bash
Executable File
95 lines
2.3 KiB
Bash
Executable File
# =================== The following code **should** be executed inside Docker container ===================
|
|
|
|
# Install dependencies
|
|
sudo apt-get -y update
|
|
sudo apt-get -y install expect-dev
|
|
|
|
# This is where the local pytorch install in the docker image is located
|
|
pt_checkout="/var/lib/jenkins/workspace"
|
|
|
|
# Since we're cat-ing this file, we need to escape all $'s
|
|
echo "cpp_doc_push_script.sh: Invoked with $*"
|
|
|
|
# Argument 1: Where to copy the built documentation for Python API to
|
|
# (pytorch.github.io/$install_path)
|
|
install_path="$1"
|
|
if [ -z "$install_path" ]; then
|
|
echo "error: cpp_doc_push_script.sh: install_path (arg1) not specified"
|
|
exit 1
|
|
fi
|
|
|
|
# Argument 2: What version of the Python API docs we are building.
|
|
version="$2"
|
|
if [ -z "$version" ]; then
|
|
echo "error: cpp_doc_push_script.sh: version (arg2) not specified"
|
|
exit 1
|
|
fi
|
|
|
|
is_master_doc=false
|
|
if [ "$version" == "master" ]; then
|
|
is_master_doc=true
|
|
fi
|
|
|
|
echo "install_path: $install_path version: $version"
|
|
|
|
# ======================== Building PyTorch C++ API Docs ========================
|
|
|
|
echo "Building PyTorch C++ API docs..."
|
|
|
|
# Clone the cppdocs repo
|
|
rm -rf cppdocs
|
|
git clone https://github.com/pytorch/cppdocs
|
|
|
|
set -ex
|
|
|
|
sudo apt-get -y install doxygen
|
|
|
|
# Generate ATen files
|
|
pushd "${pt_checkout}"
|
|
pip install -r requirements.txt
|
|
time python -m tools.codegen.gen \
|
|
-s aten/src/ATen \
|
|
-d build/aten/src/ATen
|
|
|
|
# Copy some required files
|
|
cp torch/_utils_internal.py tools/shared
|
|
|
|
# Generate PyTorch files
|
|
time python tools/setup_helpers/generate_code.py \
|
|
--declarations-path build/aten/src/ATen/Declarations.yaml \
|
|
--nn-path aten/src/
|
|
|
|
# Build the docs
|
|
pushd docs/cpp
|
|
pip install -r requirements.txt
|
|
time make VERBOSE=1 html -j
|
|
|
|
popd
|
|
popd
|
|
|
|
pushd cppdocs
|
|
|
|
# Purge everything with some exceptions
|
|
mkdir /tmp/cppdocs-sync
|
|
mv _config.yml README.md /tmp/cppdocs-sync/
|
|
rm -rf *
|
|
|
|
# Copy over all the newly generated HTML
|
|
cp -r "${pt_checkout}"/docs/cpp/build/html/* .
|
|
|
|
# Copy back _config.yml
|
|
rm -rf _config.yml
|
|
mv /tmp/cppdocs-sync/* .
|
|
|
|
# Make a new commit
|
|
git add . || true
|
|
git status
|
|
git config user.email "soumith+bot@pytorch.org"
|
|
git config user.name "pytorchbot"
|
|
# If there aren't changes, don't make a commit; push is no-op
|
|
git commit -m "Automatic sync on $(date)" || true
|
|
git status
|
|
|
|
popd
|
|
# =================== The above code **should** be executed inside Docker container ===================
|