mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-06 12:20:52 +01:00
Remove caffe2 mobile (#84338)
We're no longer building Caffe2 mobile as part of our CI, and it adds a lot of clutter to our make files. Any lingering internal dependencies will use the buck build and so wont be effected. Pull Request resolved: https://github.com/pytorch/pytorch/pull/84338 Approved by: https://github.com/dreiss
This commit is contained in:
parent
9669e3c6ec
commit
e0229d6517
|
|
@ -1,54 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# shellcheck source=./common.sh
|
|
||||||
source "$(dirname "${BASH_SOURCE[0]}")/common.sh"
|
|
||||||
|
|
||||||
# Anywhere except $ROOT_DIR should work. This is so the python import doesn't
|
|
||||||
# get confused by any 'caffe2' directory in cwd
|
|
||||||
cd "$INSTALL_PREFIX"
|
|
||||||
|
|
||||||
if [[ $BUILD_ENVIRONMENT == *-cuda* ]]; then
|
|
||||||
num_gpus=$(nvidia-smi -L | wc -l)
|
|
||||||
elif [[ $BUILD_ENVIRONMENT == *-rocm* ]]; then
|
|
||||||
num_gpus=$(rocminfo | grep 'Device Type.*GPU' | wc -l)
|
|
||||||
else
|
|
||||||
num_gpus=0
|
|
||||||
fi
|
|
||||||
|
|
||||||
caffe2_pypath="$(cd /usr && $PYTHON -c 'import os; import caffe2; print(os.path.dirname(os.path.realpath(caffe2.__file__)))')"
|
|
||||||
# Resnet50
|
|
||||||
if (( $num_gpus == 0 )); then
|
|
||||||
"$PYTHON" "$caffe2_pypath/python/examples/imagenet_trainer.py" --train_data null --batch_size 128 --epoch_size 12800 --num_epochs 2 --use_cpu
|
|
||||||
fi
|
|
||||||
if (( $num_gpus >= 1 )); then
|
|
||||||
"$PYTHON" "$caffe2_pypath/python/examples/imagenet_trainer.py" --train_data null --batch_size 128 --epoch_size 12800 --num_epochs 2 --num_gpus 1
|
|
||||||
# Let's skip the fp16 bench runs for now, as it recompiles the miopen kernels and can take 10+min to run.
|
|
||||||
# We can resume when we (1) bindmount the miopen cache folder in jenkins; (2) install the pre-compiled miopen kernel library in the docker
|
|
||||||
# "$PYTHON" "$caffe2_pypath/python/examples/imagenet_trainer.py" --train_data null --batch_size 256 --epoch_size 25600 --num_epochs 2 --num_gpus 1 --float16_compute --dtype float16
|
|
||||||
fi
|
|
||||||
if (( $num_gpus >= 4 )); then
|
|
||||||
"$PYTHON" "$caffe2_pypath/python/examples/imagenet_trainer.py" --train_data null --batch_size 512 --epoch_size 51200 --num_epochs 2 --num_gpus 4
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ResNext
|
|
||||||
if (( $num_gpus == 0 )); then
|
|
||||||
"$PYTHON" "$caffe2_pypath/python/examples/imagenet_trainer.py" --resnext_num_groups 32 --resnext_width_per_group 4 --num_layers 101 --train_data null --batch_size 32 --epoch_size 3200 --num_epochs 2 --use_cpu
|
|
||||||
fi
|
|
||||||
if (( $num_gpus >= 1 )); then
|
|
||||||
"$PYTHON" "$caffe2_pypath/python/examples/imagenet_trainer.py" --resnext_num_groups 32 --resnext_width_per_group 4 --num_layers 101 --train_data null --batch_size 32 --epoch_size 3200 --num_epochs 2 --num_gpus 1
|
|
||||||
# "$PYTHON" "$caffe2_pypath/python/examples/imagenet_trainer.py" --resnext_num_groups 32 --resnext_width_per_group 4 --num_layers 101 --train_data null --batch_size 64 --epoch_size 3200 --num_epochs 2 --num_gpus 1 --float16_compute --dtype float16
|
|
||||||
fi
|
|
||||||
if (( $num_gpus >= 4 )); then
|
|
||||||
"$PYTHON" "$caffe2_pypath/python/examples/imagenet_trainer.py" --resnext_num_groups 32 --resnext_width_per_group 4 --num_layers 101 --train_data null --batch_size 128 --epoch_size 12800 --num_epochs 2 --num_gpus 4
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Shufflenet
|
|
||||||
if (( $num_gpus == 0 )); then
|
|
||||||
"$PYTHON" "$caffe2_pypath/python/examples/imagenet_trainer.py" --train_data null --batch_size 32 --epoch_size 3200 --num_epochs 2 --use_cpu --model shufflenet
|
|
||||||
fi
|
|
||||||
if (( $num_gpus >= 1 )); then
|
|
||||||
"$PYTHON" "$caffe2_pypath/python/examples/imagenet_trainer.py" --train_data null --batch_size 32 --epoch_size 3200 --num_epochs 2 --num_gpus 1 --model shufflenet
|
|
||||||
fi
|
|
||||||
if (( $num_gpus >= 4 )); then
|
|
||||||
"$PYTHON" "$caffe2_pypath/python/examples/imagenet_trainer.py" --train_data null --batch_size 128 --epoch_size 12800 --num_epochs 2 --num_gpus 4 --model shufflenet
|
|
||||||
fi
|
|
||||||
|
|
@ -1,231 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
# shellcheck source=./common.sh
|
|
||||||
source "$(dirname "${BASH_SOURCE[0]}")/common.sh"
|
|
||||||
|
|
||||||
# CMAKE_ARGS are only passed to 'cmake' and the -Dfoo=bar does not work with
|
|
||||||
# setup.py, so we build a list of foo=bars and then either convert it to
|
|
||||||
# -Dfoo=bars or export them before running setup.py
|
|
||||||
build_args=()
|
|
||||||
build_to_cmake () {
|
|
||||||
cmake_args=()
|
|
||||||
for build_arg in $*; do
|
|
||||||
cmake_args+=("-D$build_arg")
|
|
||||||
done
|
|
||||||
echo ${cmake_args[@]}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
SCCACHE="$(which sccache)"
|
|
||||||
|
|
||||||
# Setup ccache if configured to use it (and not sccache)
|
|
||||||
if [ -z "${SCCACHE}" ] && which ccache > /dev/null; then
|
|
||||||
mkdir -p ./ccache
|
|
||||||
ln -sf "$(which ccache)" ./ccache/cc
|
|
||||||
ln -sf "$(which ccache)" ./ccache/c++
|
|
||||||
ln -sf "$(which ccache)" ./ccache/gcc
|
|
||||||
ln -sf "$(which ccache)" ./ccache/g++
|
|
||||||
ln -sf "$(which ccache)" ./ccache/x86_64-linux-gnu-gcc
|
|
||||||
if [[ "${BUILD_ENVIRONMENT}" == *-cuda* ]]; then
|
|
||||||
mkdir -p ./ccache/cuda
|
|
||||||
ln -sf "$(which ccache)" ./ccache/cuda/nvcc
|
|
||||||
fi
|
|
||||||
export CACHE_WRAPPER_DIR="$PWD/ccache"
|
|
||||||
export PATH="$CACHE_WRAPPER_DIR:$PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# sccache will fail for CUDA builds if all cores are used for compiling
|
|
||||||
if [ -z "$MAX_JOBS" ]; then
|
|
||||||
if [[ "${BUILD_ENVIRONMENT}" == *-cuda* ]] && [ -n "${SCCACHE}" ]; then
|
|
||||||
MAX_JOBS=`expr $(nproc) - 1`
|
|
||||||
else
|
|
||||||
MAX_JOBS=$(nproc)
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
report_compile_cache_stats() {
|
|
||||||
if [[ -n "${SCCACHE}" ]]; then
|
|
||||||
"$SCCACHE" --show-stats
|
|
||||||
elif which ccache > /dev/null; then
|
|
||||||
ccache -s
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Use special scripts for Android and setup builds
|
|
||||||
###############################################################################
|
|
||||||
if [[ "${BUILD_ENVIRONMENT}" == *-android* ]]; then
|
|
||||||
export ANDROID_NDK=/opt/ndk
|
|
||||||
build_args+=("BUILD_BINARY=ON")
|
|
||||||
build_args+=("BUILD_TEST=ON")
|
|
||||||
build_args+=("USE_OBSERVERS=ON")
|
|
||||||
build_args+=("USE_ZSTD=ON")
|
|
||||||
BUILD_CAFFE2_MOBILE=1 "${ROOT_DIR}/scripts/build_android.sh" $(build_to_cmake ${build_args[@]}) "$@"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Set parameters
|
|
||||||
###############################################################################
|
|
||||||
if [[ "$BUILD_ENVIRONMENT" == *cmake* ]]; then
|
|
||||||
build_args+=("BUILD_PYTHON=OFF")
|
|
||||||
else
|
|
||||||
build_args+=("BUILD_PYTHON=ON")
|
|
||||||
build_args+=("PYTHON_EXECUTABLE=${PYTHON}")
|
|
||||||
fi
|
|
||||||
if [[ $BUILD_ENVIRONMENT == *mkl* ]]; then
|
|
||||||
build_args+=("BLAS=MKL")
|
|
||||||
build_args+=("USE_MKLDNN=ON")
|
|
||||||
fi
|
|
||||||
build_args+=("BUILD_BINARY=ON")
|
|
||||||
build_args+=("BUILD_TEST=ON")
|
|
||||||
build_args+=("INSTALL_TEST=ON")
|
|
||||||
build_args+=("USE_ZSTD=ON")
|
|
||||||
|
|
||||||
if [[ $BUILD_ENVIRONMENT == *cuda* ]]; then
|
|
||||||
build_args+=("USE_CUDA=ON")
|
|
||||||
build_args+=("USE_NNPACK=OFF")
|
|
||||||
|
|
||||||
# Target only our CI GPU machine's CUDA arch to speed up the build
|
|
||||||
build_args+=("TORCH_CUDA_ARCH_LIST=Maxwell")
|
|
||||||
|
|
||||||
# Explicitly set path to NVCC such that the symlink to ccache or sccache is used
|
|
||||||
if [ -n "${CACHE_WRAPPER_DIR}" ]; then
|
|
||||||
build_args+=("CUDA_NVCC_EXECUTABLE=${CACHE_WRAPPER_DIR}/cuda/nvcc")
|
|
||||||
build_args+=("CMAKE_CUDA_COMPILER_LAUNCHER=${CACHE_WRAPPER_DIR}/ccache")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Ensure FindCUDA.cmake can infer the right path to the CUDA toolkit.
|
|
||||||
# Setting PATH to resolve to the right nvcc alone isn't enough.
|
|
||||||
# See /usr/share/cmake-3.5/Modules/FindCUDA.cmake, block at line 589.
|
|
||||||
export CUDA_PATH="/usr/local/cuda"
|
|
||||||
|
|
||||||
# Ensure the ccache symlink can still find the real nvcc binary.
|
|
||||||
export PATH="/usr/local/cuda/bin:$PATH"
|
|
||||||
fi
|
|
||||||
if [[ $BUILD_ENVIRONMENT == *rocm* ]]; then
|
|
||||||
if [[ -n "$CI" && -z "$PYTORCH_ROCM_ARCH" ]]; then
|
|
||||||
# Set ROCM_ARCH to gfx900 and gfx906 for CI builds, if user doesn't override.
|
|
||||||
echo "Limiting PYTORCH_ROCM_ARCH to gfx90[06] for CI builds"
|
|
||||||
export PYTORCH_ROCM_ARCH="gfx900;gfx906"
|
|
||||||
fi
|
|
||||||
# This is needed to enable ImageInput operator in resnet50_trainer
|
|
||||||
build_args+=("USE_OPENCV=ON")
|
|
||||||
# This is needed to read datasets from https://download.caffe2.ai/databases/resnet_trainer.zip
|
|
||||||
build_args+=("USE_LMDB=ON")
|
|
||||||
# hcc used to run out of memory, silently exiting without stopping
|
|
||||||
# the build process, leaving undefined symbols in the shared lib,
|
|
||||||
# causing undefined symbol errors when later running tests.
|
|
||||||
# We used to set MAX_JOBS to 4 to avoid, but this is no longer an issue.
|
|
||||||
if [ -z "$MAX_JOBS" ]; then
|
|
||||||
export MAX_JOBS=$(($(nproc) - 1))
|
|
||||||
fi
|
|
||||||
|
|
||||||
########## HIPIFY Caffe2 operators
|
|
||||||
${PYTHON} "${ROOT_DIR}/tools/amd_build/build_amd.py"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Try to include Redis support for Linux builds
|
|
||||||
if [ "$(uname)" == "Linux" ]; then
|
|
||||||
build_args+=("USE_REDIS=ON")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use a specialized onnx namespace in CI to catch hardcoded onnx namespace
|
|
||||||
build_args+=("ONNX_NAMESPACE=ONNX_NAMESPACE_FOR_C2_CI")
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Configure and make
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
if [[ "$BUILD_ENVIRONMENT" == *cmake* ]]; then
|
|
||||||
# cmake-only non-setup.py build, to test cpp only bits. This installs into
|
|
||||||
# /usr/local/caffe2 and installs no Python tests
|
|
||||||
build_args+=("CMAKE_INSTALL_PREFIX=${INSTALL_PREFIX}")
|
|
||||||
|
|
||||||
# Run cmake from ./build_caffe2 directory so it doesn't conflict with
|
|
||||||
# standard PyTorch build directory. Eventually these won't need to
|
|
||||||
# be separate.
|
|
||||||
rm -rf build_caffe2
|
|
||||||
mkdir build_caffe2
|
|
||||||
cd ./build_caffe2
|
|
||||||
|
|
||||||
# We test the presence of cmake3 (for platforms like Centos and Ubuntu 14.04)
|
|
||||||
# and use that if so.
|
|
||||||
if [[ -x "$(command -v cmake3)" ]]; then
|
|
||||||
CMAKE_BINARY=cmake3
|
|
||||||
else
|
|
||||||
CMAKE_BINARY=cmake
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Configure
|
|
||||||
${CMAKE_BINARY} "${ROOT_DIR}" $(build_to_cmake ${build_args[@]}) "$@"
|
|
||||||
|
|
||||||
# Build
|
|
||||||
if [ "$(uname)" == "Linux" ]; then
|
|
||||||
make "-j${MAX_JOBS}" install
|
|
||||||
else
|
|
||||||
echo "Don't know how to build on $(uname)"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# This is to save test binaries for testing
|
|
||||||
mv "$INSTALL_PREFIX/test/" "$INSTALL_PREFIX/cpp_test/"
|
|
||||||
|
|
||||||
ls -lah $INSTALL_PREFIX
|
|
||||||
|
|
||||||
else
|
|
||||||
# Python build. Uses setup.py to install into site-packages
|
|
||||||
build_args+=("USE_LEVELDB=ON")
|
|
||||||
build_args+=("USE_LMDB=ON")
|
|
||||||
build_args+=("USE_OPENCV=ON")
|
|
||||||
build_args+=("BUILD_TEST=ON")
|
|
||||||
# These flags preserve the flags that were used before this refactor (blame
|
|
||||||
# me)
|
|
||||||
build_args+=("USE_GLOG=ON")
|
|
||||||
build_args+=("USE_GFLAGS=ON")
|
|
||||||
build_args+=("USE_FBGEMM=OFF")
|
|
||||||
build_args+=("USE_MKLDNN=OFF")
|
|
||||||
build_args+=("USE_DISTRIBUTED=ON")
|
|
||||||
for build_arg in "${build_args[@]}"; do
|
|
||||||
export $build_arg
|
|
||||||
done
|
|
||||||
|
|
||||||
# sccache will be stuck if all cores are used for compiling
|
|
||||||
# see https://github.com/pytorch/pytorch/pull/7361
|
|
||||||
if [[ -n "${SCCACHE}" && $BUILD_ENVIRONMENT != *rocm* ]]; then
|
|
||||||
export MAX_JOBS=`expr $(nproc) - 1`
|
|
||||||
fi
|
|
||||||
|
|
||||||
pip install --user dataclasses typing_extensions
|
|
||||||
|
|
||||||
$PYTHON setup.py install --user
|
|
||||||
|
|
||||||
report_compile_cache_stats
|
|
||||||
fi
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Install ONNX
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# Install ONNX into a local directory
|
|
||||||
pip install --user "file://${ROOT_DIR}/third_party/onnx#egg=onnx"
|
|
||||||
|
|
||||||
report_compile_cache_stats
|
|
||||||
|
|
||||||
if [[ $BUILD_ENVIRONMENT == *rocm* ]]; then
|
|
||||||
# remove sccache wrappers post-build; runtime compilation of MIOpen kernels does not yet fully support them
|
|
||||||
sudo rm -f /opt/cache/bin/cc
|
|
||||||
sudo rm -f /opt/cache/bin/c++
|
|
||||||
sudo rm -f /opt/cache/bin/gcc
|
|
||||||
sudo rm -f /opt/cache/bin/g++
|
|
||||||
pushd /opt/rocm/llvm/bin
|
|
||||||
if [[ -d original ]]; then
|
|
||||||
sudo mv original/clang .
|
|
||||||
sudo mv original/clang++ .
|
|
||||||
fi
|
|
||||||
sudo rm -rf original
|
|
||||||
popd
|
|
||||||
fi
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -ex
|
|
||||||
upstream="$1"
|
|
||||||
pr="$2"
|
|
||||||
git diff --name-only "$upstream" "$pr"
|
|
||||||
# For safety, unconditionally trigger for any changes.
|
|
||||||
#git diff --name-only "$upstream" "$pr" | grep -Eq '^(CMakeLists.txt|Makefile|.gitmodules|.jenkins/caffe2|binaries|caffe|caffe2|cmake|conda|docker|docs/caffe2|modules|scripts|third_party)'
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -ex
|
|
||||||
upstream="$1"
|
|
||||||
pr="$2"
|
|
||||||
git diff --name-only "$upstream" "$pr"
|
|
||||||
# Now that PyTorch build depends on Caffe2, unconditionally trigger
|
|
||||||
# for any changes.
|
|
||||||
# TODO: Replace this with a NEGATIVE regex that allows us to skip builds when they are unnecessary
|
|
||||||
#git diff --name-only "$upstream" "$pr" | grep -Eq '^(aten/|caffe2/|.jenkins/pytorch|docs/(make.bat|Makefile|requirements.txt|source)|mypy|requirements.txt|setup.py|test/|third_party/|tools/|\.gitmodules|torch/)'
|
|
||||||
|
|
@ -165,9 +165,6 @@ option(BUILD_LITE_INTERPRETER "Master flag to build Lite Interpreter" OFF)
|
||||||
cmake_dependent_option(
|
cmake_dependent_option(
|
||||||
BUILD_CAFFE2_OPS "Build Caffe2 operators" ON
|
BUILD_CAFFE2_OPS "Build Caffe2 operators" ON
|
||||||
"BUILD_CAFFE2" OFF)
|
"BUILD_CAFFE2" OFF)
|
||||||
cmake_dependent_option(
|
|
||||||
BUILD_CAFFE2_MOBILE "Build libcaffe2 for mobile (deprecating)" OFF
|
|
||||||
"BUILD_CAFFE2" OFF)
|
|
||||||
option(BUILD_SHARED_LIBS "Build libcaffe2.so" ON)
|
option(BUILD_SHARED_LIBS "Build libcaffe2.so" ON)
|
||||||
cmake_dependent_option(
|
cmake_dependent_option(
|
||||||
CAFFE2_LINK_LOCAL_PROTOBUF "If set, build protobuf inside libcaffe2.so." ON
|
CAFFE2_LINK_LOCAL_PROTOBUF "If set, build protobuf inside libcaffe2.so." ON
|
||||||
|
|
@ -591,18 +588,11 @@ if(ANDROID OR IOS OR DEFINED ENV{BUILD_PYTORCH_MOBILE_WITH_HOST_TOOLCHAIN})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# INTERN_BUILD_ATEN_OPS is used to control whether to build ATen/TH operators.
|
# INTERN_BUILD_ATEN_OPS is used to control whether to build ATen/TH operators.
|
||||||
# It's disabled for caffe2 mobile library.
|
set(INTERN_BUILD_ATEN_OPS ON)
|
||||||
if(INTERN_BUILD_MOBILE AND BUILD_CAFFE2_MOBILE)
|
|
||||||
set(INTERN_BUILD_ATEN_OPS OFF)
|
|
||||||
else()
|
|
||||||
set(INTERN_BUILD_ATEN_OPS ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# BUILD_CAFFE2_MOBILE is the master switch to choose between libcaffe2 v.s. libtorch mobile build.
|
# Build libtorch mobile library, which contains ATen/TH ops and native support for
|
||||||
# When it's enabled it builds original libcaffe2 mobile library without ATen/TH ops nor TorchScript support;
|
|
||||||
# When it's disabled it builds libtorch mobile library, which contains ATen/TH ops and native support for
|
|
||||||
# TorchScript model, but doesn't contain not-yet-unified caffe2 ops;
|
# TorchScript model, but doesn't contain not-yet-unified caffe2 ops;
|
||||||
if(INTERN_BUILD_MOBILE AND NOT BUILD_CAFFE2_MOBILE)
|
if(INTERN_BUILD_MOBILE)
|
||||||
if(NOT BUILD_SHARED_LIBS AND NOT "${SELECTED_OP_LIST}" STREQUAL "")
|
if(NOT BUILD_SHARED_LIBS AND NOT "${SELECTED_OP_LIST}" STREQUAL "")
|
||||||
string(APPEND CMAKE_CXX_FLAGS " -DNO_EXPORT")
|
string(APPEND CMAKE_CXX_FLAGS " -DNO_EXPORT")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -1246,13 +1246,6 @@ In 2018, we merged Caffe2 into the PyTorch source repository. While the
|
||||||
steady state aspiration is that Caffe2 and PyTorch share code freely,
|
steady state aspiration is that Caffe2 and PyTorch share code freely,
|
||||||
in the meantime there will be some separation.
|
in the meantime there will be some separation.
|
||||||
|
|
||||||
If you submit a PR to only PyTorch or only Caffe2 code, CI will only
|
|
||||||
run for the project you edited. The logic for this is implemented
|
|
||||||
in `.jenkins/pytorch/dirty.sh` and `.jenkins/caffe2/dirty.sh`; you
|
|
||||||
can look at this to see what path prefixes constitute changes.
|
|
||||||
This also means if you ADD a new top-level path, or you start
|
|
||||||
sharing code between projects, you need to modify these files.
|
|
||||||
|
|
||||||
There are a few "unusual" directories which, for historical reasons,
|
There are a few "unusual" directories which, for historical reasons,
|
||||||
are Caffe2/PyTorch specific. Here they are:
|
are Caffe2/PyTorch specific. Here they are:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,8 @@
|
||||||
if(INTERN_BUILD_MOBILE)
|
if(INTERN_BUILD_MOBILE)
|
||||||
if(BUILD_CAFFE2_MOBILE)
|
caffe2_binary_target("speed_benchmark_torch.cc")
|
||||||
#caffe2_binary_target("predictor_verifier.cc")
|
caffe2_binary_target("load_benchmark_torch.cc")
|
||||||
caffe2_binary_target("speed_benchmark.cc")
|
if(NOT BUILD_LITE_INTERPRETER)
|
||||||
else()
|
caffe2_binary_target("compare_models_torch.cc")
|
||||||
caffe2_binary_target("speed_benchmark_torch.cc")
|
|
||||||
caffe2_binary_target("load_benchmark_torch.cc")
|
|
||||||
if(NOT BUILD_LITE_INTERPRETER)
|
|
||||||
caffe2_binary_target("compare_models_torch.cc")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,4 +1,4 @@
|
||||||
if((NOT BUILD_CAFFE2) OR (INTERN_BUILD_MOBILE AND NOT BUILD_CAFFE2_MOBILE))
|
if(NOT BUILD_CAFFE2 OR INTERN_BUILD_MOBILE)
|
||||||
list(APPEND Caffe2_CPU_SRCS
|
list(APPEND Caffe2_CPU_SRCS
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/common.cc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/common.cc"
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
if(INTERN_BUILD_MOBILE AND NOT BUILD_CAFFE2_MOBILE)
|
if(INTERN_BUILD_MOBILE)
|
||||||
list(APPEND Caffe2_CPU_SRCS
|
list(APPEND Caffe2_CPU_SRCS
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/embedding_lookup_idx.cc"
|
"${CMAKE_CURRENT_SOURCE_DIR}/embedding_lookup_idx.cc"
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
if((NOT BUILD_CAFFE2) OR (INTERN_BUILD_MOBILE AND NOT BUILD_CAFFE2_MOBILE))
|
if(NOT BUILD_CAFFE2 OR INTERN_BUILD_MOBILE)
|
||||||
list(APPEND Caffe2_CPU_SRCS
|
list(APPEND Caffe2_CPU_SRCS
|
||||||
utils/string_utils.cc
|
utils/string_utils.cc
|
||||||
utils/threadpool/ThreadPool.cc
|
utils/threadpool/ThreadPool.cc
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ if(USE_CUDA)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# ---[ Custom Protobuf
|
# ---[ Custom Protobuf
|
||||||
if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND (NOT INTERN_BUILD_MOBILE OR BUILD_CAFFE2_MOBILE))
|
if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_BUILD_MOBILE)
|
||||||
disable_ubsan()
|
disable_ubsan()
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/ProtoBuf.cmake)
|
include(${CMAKE_CURRENT_LIST_DIR}/ProtoBuf.cmake)
|
||||||
enable_ubsan()
|
enable_ubsan()
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@ function(caffe2_print_configuration_summary)
|
||||||
message(STATUS " CAFFE2_VERSION : ${CAFFE2_VERSION}")
|
message(STATUS " CAFFE2_VERSION : ${CAFFE2_VERSION}")
|
||||||
message(STATUS " BUILD_CAFFE2 : ${BUILD_CAFFE2}")
|
message(STATUS " BUILD_CAFFE2 : ${BUILD_CAFFE2}")
|
||||||
message(STATUS " BUILD_CAFFE2_OPS : ${BUILD_CAFFE2_OPS}")
|
message(STATUS " BUILD_CAFFE2_OPS : ${BUILD_CAFFE2_OPS}")
|
||||||
message(STATUS " BUILD_CAFFE2_MOBILE : ${BUILD_CAFFE2_MOBILE}")
|
|
||||||
message(STATUS " BUILD_STATIC_RUNTIME_BENCHMARK: ${BUILD_STATIC_RUNTIME_BENCHMARK}")
|
message(STATUS " BUILD_STATIC_RUNTIME_BENCHMARK: ${BUILD_STATIC_RUNTIME_BENCHMARK}")
|
||||||
message(STATUS " BUILD_TENSOREXPR_BENCHMARK: ${BUILD_TENSOREXPR_BENCHMARK}")
|
message(STATUS " BUILD_TENSOREXPR_BENCHMARK: ${BUILD_TENSOREXPR_BENCHMARK}")
|
||||||
message(STATUS " BUILD_NVFUSER_BENCHMARK: ${BUILD_NVFUSER_BENCHMARK}")
|
message(STATUS " BUILD_NVFUSER_BENCHMARK: ${BUILD_NVFUSER_BENCHMARK}")
|
||||||
|
|
|
||||||
|
|
@ -415,72 +415,70 @@ function(torch_compile_options libname)
|
||||||
list(APPEND private_compile_options -Werror)
|
list(APPEND private_compile_options -Werror)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT INTERN_BUILD_MOBILE OR NOT BUILD_CAFFE2_MOBILE)
|
# until they can be unified, keep these lists synced with setup.py
|
||||||
# until they can be unified, keep these lists synced with setup.py
|
if(MSVC)
|
||||||
if(MSVC)
|
|
||||||
|
|
||||||
if(MSVC_Z7_OVERRIDE)
|
if(MSVC_Z7_OVERRIDE)
|
||||||
set(MSVC_DEBINFO_OPTION "/Z7")
|
set(MSVC_DEBINFO_OPTION "/Z7")
|
||||||
else()
|
else()
|
||||||
set(MSVC_DEBINFO_OPTION "/Zi")
|
set(MSVC_DEBINFO_OPTION "/Zi")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_compile_options(${libname} PUBLIC
|
target_compile_options(${libname} PUBLIC
|
||||||
$<$<COMPILE_LANGUAGE:CXX>:
|
$<$<COMPILE_LANGUAGE:CXX>:
|
||||||
${MSVC_RUNTIME_LIBRARY_OPTION}
|
${MSVC_RUNTIME_LIBRARY_OPTION}
|
||||||
$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:${MSVC_DEBINFO_OPTION}>
|
$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:${MSVC_DEBINFO_OPTION}>
|
||||||
/EHsc
|
/EHsc
|
||||||
/DNOMINMAX
|
/DNOMINMAX
|
||||||
/wd4267
|
/wd4267
|
||||||
/wd4251
|
/wd4251
|
||||||
/wd4522
|
/wd4522
|
||||||
/wd4522
|
/wd4522
|
||||||
/wd4838
|
/wd4838
|
||||||
/wd4305
|
/wd4305
|
||||||
/wd4244
|
/wd4244
|
||||||
/wd4190
|
/wd4190
|
||||||
/wd4101
|
/wd4101
|
||||||
/wd4996
|
/wd4996
|
||||||
/wd4275
|
/wd4275
|
||||||
/bigobj>
|
/bigobj>
|
||||||
)
|
)
|
||||||
|
else()
|
||||||
|
list(APPEND private_compile_options
|
||||||
|
-Wall
|
||||||
|
-Wextra
|
||||||
|
-Wno-unused-parameter
|
||||||
|
-Wno-unused-function
|
||||||
|
-Wno-unused-result
|
||||||
|
-Wno-missing-field-initializers
|
||||||
|
-Wno-write-strings
|
||||||
|
-Wno-unknown-pragmas
|
||||||
|
-Wno-type-limits
|
||||||
|
-Wno-array-bounds
|
||||||
|
-Wno-unknown-pragmas
|
||||||
|
-Wno-sign-compare
|
||||||
|
-Wno-strict-overflow
|
||||||
|
-Wno-strict-aliasing
|
||||||
|
-Wno-error=deprecated-declarations
|
||||||
|
# Clang has an unfixed bug leading to spurious missing braces
|
||||||
|
# warnings, see https://bugs.llvm.org/show_bug.cgi?id=21629
|
||||||
|
-Wno-missing-braces
|
||||||
|
)
|
||||||
|
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||||
|
list(APPEND private_compile_options
|
||||||
|
-Wno-range-loop-analysis)
|
||||||
else()
|
else()
|
||||||
list(APPEND private_compile_options
|
list(APPEND private_compile_options
|
||||||
-Wall
|
# Considered to be flaky. See the discussion at
|
||||||
-Wextra
|
# https://github.com/pytorch/pytorch/pull/9608
|
||||||
-Wno-unused-parameter
|
-Wno-maybe-uninitialized)
|
||||||
-Wno-unused-function
|
|
||||||
-Wno-unused-result
|
|
||||||
-Wno-missing-field-initializers
|
|
||||||
-Wno-write-strings
|
|
||||||
-Wno-unknown-pragmas
|
|
||||||
-Wno-type-limits
|
|
||||||
-Wno-array-bounds
|
|
||||||
-Wno-unknown-pragmas
|
|
||||||
-Wno-sign-compare
|
|
||||||
-Wno-strict-overflow
|
|
||||||
-Wno-strict-aliasing
|
|
||||||
-Wno-error=deprecated-declarations
|
|
||||||
# Clang has an unfixed bug leading to spurious missing braces
|
|
||||||
# warnings, see https://bugs.llvm.org/show_bug.cgi?id=21629
|
|
||||||
-Wno-missing-braces
|
|
||||||
)
|
|
||||||
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
|
||||||
list(APPEND private_compile_options
|
|
||||||
-Wno-range-loop-analysis)
|
|
||||||
else()
|
|
||||||
list(APPEND private_compile_options
|
|
||||||
# Considered to be flaky. See the discussion at
|
|
||||||
# https://github.com/pytorch/pytorch/pull/9608
|
|
||||||
-Wno-maybe-uninitialized)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MSVC)
|
endif()
|
||||||
elseif(WERROR)
|
|
||||||
list(APPEND private_compile_options -Wno-strict-overflow)
|
if(MSVC)
|
||||||
endif()
|
elseif(WERROR)
|
||||||
|
list(APPEND private_compile_options -Wno-strict-overflow)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_compile_options(${libname} PRIVATE
|
target_compile_options(${libname} PRIVATE
|
||||||
|
|
|
||||||
|
|
@ -59,30 +59,20 @@ echo "Android NDK version: $ANDROID_NDK_VERSION"
|
||||||
|
|
||||||
CMAKE_ARGS=()
|
CMAKE_ARGS=()
|
||||||
|
|
||||||
if [ -z "${BUILD_CAFFE2_MOBILE:-}" ]; then
|
# Build PyTorch mobile
|
||||||
# Build PyTorch mobile
|
CMAKE_ARGS+=("-DCMAKE_PREFIX_PATH=$($PYTHON -c 'import sysconfig; print(sysconfig.get_path("purelib"))')")
|
||||||
CMAKE_ARGS+=("-DCMAKE_PREFIX_PATH=$($PYTHON -c 'import sysconfig; print(sysconfig.get_path("purelib"))')")
|
CMAKE_ARGS+=("-DPYTHON_EXECUTABLE=$($PYTHON -c 'import sys; print(sys.executable)')")
|
||||||
CMAKE_ARGS+=("-DPYTHON_EXECUTABLE=$($PYTHON -c 'import sys; print(sys.executable)')")
|
CMAKE_ARGS+=("-DBUILD_CUSTOM_PROTOBUF=OFF")
|
||||||
CMAKE_ARGS+=("-DBUILD_CUSTOM_PROTOBUF=OFF")
|
|
||||||
# custom build with selected ops
|
# custom build with selected ops
|
||||||
if [ -n "${SELECTED_OP_LIST}" ]; then
|
if [ -n "${SELECTED_OP_LIST}" ]; then
|
||||||
SELECTED_OP_LIST="$(cd $(dirname $SELECTED_OP_LIST); pwd -P)/$(basename $SELECTED_OP_LIST)"
|
SELECTED_OP_LIST="$(cd $(dirname $SELECTED_OP_LIST); pwd -P)/$(basename $SELECTED_OP_LIST)"
|
||||||
echo "Choose SELECTED_OP_LIST file: $SELECTED_OP_LIST"
|
echo "Choose SELECTED_OP_LIST file: $SELECTED_OP_LIST"
|
||||||
if [ ! -r ${SELECTED_OP_LIST} ]; then
|
if [ ! -r ${SELECTED_OP_LIST} ]; then
|
||||||
echo "Error: SELECTED_OP_LIST file ${SELECTED_OP_LIST} not found."
|
echo "Error: SELECTED_OP_LIST file ${SELECTED_OP_LIST} not found."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
|
||||||
CMAKE_ARGS+=("-DSELECTED_OP_LIST=${SELECTED_OP_LIST}")
|
|
||||||
fi
|
fi
|
||||||
else
|
CMAKE_ARGS+=("-DSELECTED_OP_LIST=${SELECTED_OP_LIST}")
|
||||||
# Build Caffe2 mobile
|
|
||||||
CMAKE_ARGS+=("-DBUILD_CAFFE2_MOBILE=ON")
|
|
||||||
# Build protobuf from third_party so we have a host protoc binary.
|
|
||||||
echo "Building protoc"
|
|
||||||
$CAFFE2_ROOT/scripts/build_host_protoc.sh
|
|
||||||
# Use locally built protoc because we'll build libprotobuf for the
|
|
||||||
# target architecture and need an exact version match.
|
|
||||||
CMAKE_ARGS+=("-DCAFFE2_CUSTOM_PROTOC_EXECUTABLE=$CAFFE2_ROOT/build_host_protoc/bin/protoc")
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If Ninja is installed, prefer it to Make
|
# If Ninja is installed, prefer it to Make
|
||||||
|
|
|
||||||
|
|
@ -11,37 +11,24 @@ CAFFE2_ROOT="$( cd "$(dirname "$0")"/.. ; pwd -P)"
|
||||||
|
|
||||||
CMAKE_ARGS=()
|
CMAKE_ARGS=()
|
||||||
|
|
||||||
if [ -z "${BUILD_CAFFE2_MOBILE:-}" ]; then
|
# Build PyTorch mobile
|
||||||
# Build PyTorch mobile
|
CMAKE_ARGS+=("-DCMAKE_PREFIX_PATH=$(python -c 'import sysconfig; print(sysconfig.get_path("purelib"))')")
|
||||||
CMAKE_ARGS+=("-DCMAKE_PREFIX_PATH=$(python -c 'import sysconfig; print(sysconfig.get_path("purelib"))')")
|
CMAKE_ARGS+=("-DPYTHON_EXECUTABLE=$(python -c 'import sys; print(sys.executable)')")
|
||||||
CMAKE_ARGS+=("-DPYTHON_EXECUTABLE=$(python -c 'import sys; print(sys.executable)')")
|
CMAKE_ARGS+=("-DBUILD_CUSTOM_PROTOBUF=OFF")
|
||||||
CMAKE_ARGS+=("-DBUILD_CUSTOM_PROTOBUF=OFF")
|
|
||||||
# custom build with selected ops
|
# custom build with selected ops
|
||||||
if [ -n "${SELECTED_OP_LIST}" ]; then
|
if [ -n "${SELECTED_OP_LIST}" ]; then
|
||||||
SELECTED_OP_LIST="$(cd $(dirname $SELECTED_OP_LIST); pwd -P)/$(basename $SELECTED_OP_LIST)"
|
SELECTED_OP_LIST="$(cd $(dirname $SELECTED_OP_LIST); pwd -P)/$(basename $SELECTED_OP_LIST)"
|
||||||
echo "Choose SELECTED_OP_LIST file: $SELECTED_OP_LIST"
|
echo "Choose SELECTED_OP_LIST file: $SELECTED_OP_LIST"
|
||||||
if [ ! -r ${SELECTED_OP_LIST} ]; then
|
if [ ! -r ${SELECTED_OP_LIST} ]; then
|
||||||
echo "Error: SELECTED_OP_LIST file ${SELECTED_OP_LIST} not found."
|
echo "Error: SELECTED_OP_LIST file ${SELECTED_OP_LIST} not found."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
|
||||||
CMAKE_ARGS+=("-DSELECTED_OP_LIST=${SELECTED_OP_LIST}")
|
|
||||||
fi
|
fi
|
||||||
# bitcode
|
CMAKE_ARGS+=("-DSELECTED_OP_LIST=${SELECTED_OP_LIST}")
|
||||||
if [ "${ENABLE_BITCODE:-}" == '1' ]; then
|
fi
|
||||||
CMAKE_ARGS+=("-DCMAKE_C_FLAGS=-fembed-bitcode")
|
|
||||||
CMAKE_ARGS+=("-DCMAKE_CXX_FLAGS=-fembed-bitcode")
|
# bitcode
|
||||||
fi
|
if [ "${ENABLE_BITCODE:-}" == '1' ]; then
|
||||||
else
|
|
||||||
# Build Caffe2 mobile
|
|
||||||
CMAKE_ARGS+=("-DBUILD_CAFFE2_MOBILE=ON")
|
|
||||||
# Build protobuf from third_party so we have a host protoc binary.
|
|
||||||
echo "Building protoc"
|
|
||||||
BITCODE_FLAGS="-DCMAKE_C_FLAGS=-fembed-bitcode -DCMAKE_CXX_FLAGS=-fembed-bitcode "
|
|
||||||
$CAFFE2_ROOT/scripts/build_host_protoc.sh --other-flags $BITCODE_FLAGS
|
|
||||||
# Use locally built protoc because we'll build libprotobuf for the
|
|
||||||
# target architecture and need an exact version match.
|
|
||||||
CMAKE_ARGS+=("-DCAFFE2_CUSTOM_PROTOC_EXECUTABLE=$CAFFE2_ROOT/build_host_protoc/bin/protoc")
|
|
||||||
# Bitcode is enabled by default for caffe2
|
|
||||||
CMAKE_ARGS+=("-DCMAKE_C_FLAGS=-fembed-bitcode")
|
CMAKE_ARGS+=("-DCMAKE_C_FLAGS=-fembed-bitcode")
|
||||||
CMAKE_ARGS+=("-DCMAKE_CXX_FLAGS=-fembed-bitcode")
|
CMAKE_ARGS+=("-DCMAKE_CXX_FLAGS=-fembed-bitcode")
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user