mirror of https://github.com/llvm/torch-mlir
Remove some more old stray files.
parent
a0ccfcf581
commit
3dc9b4ee2f
|
@ -1,33 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ -z "$PYTHON" ]; then
|
|
||||||
PYTHON="$(which python)"
|
|
||||||
fi
|
|
||||||
version="$("$PYTHON" --version)"
|
|
||||||
echo "Using python: $PYTHON (version $version)"
|
|
||||||
|
|
||||||
repo_root="$(cd $(dirname $0)/.. && pwd)"
|
|
||||||
wheelhouse="$repo_root/wheelhouse"
|
|
||||||
mkdir -p $wheelhouse
|
|
||||||
cd $wheelhouse
|
|
||||||
|
|
||||||
echo "---- BUILDING npcomp-core ----"
|
|
||||||
CMAKE_GENERATOR=Ninja CMAKE_C_COMPILER_LAUNCHER=ccache CMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
|
||||||
$PYTHON -m pip wheel "${repo_root}" \
|
|
||||||
--use-feature=in-tree-build \
|
|
||||||
-w "$wheelhouse" -v
|
|
||||||
|
|
||||||
echo "---- INSTALLING npcomp-core ----"
|
|
||||||
$PYTHON -m pip install -f "$wheelhouse" --force-reinstall npcomp-core
|
|
||||||
|
|
||||||
echo "---- BUILDING npcomp-torch ----"
|
|
||||||
$PYTHON -m pip wheel "${repo_root}/frontends/pytorch" \
|
|
||||||
--use-feature=in-tree-build \
|
|
||||||
-w "$wheelhouse" -v
|
|
||||||
|
|
||||||
echo "---- INSTALLING npcomp-torch ----"
|
|
||||||
$PYTHON -m pip install -f "$wheelhouse" --force-reinstall npcomp-torch
|
|
||||||
|
|
||||||
echo "---- QUICK SMOKE TEST ----"
|
|
||||||
$PYTHON $repo_root/frontends/pytorch/test/torchscript_e2e_test/basic.py
|
|
|
@ -1,63 +0,0 @@
|
||||||
# No shebang, please `source` this file!
|
|
||||||
# For example, add this to your `.bashrc`:
|
|
||||||
# ```
|
|
||||||
# source $WHERE_YOU_CHECKED_OUT_NPCOMP/build_tools/docker_shell_funcs.sh
|
|
||||||
# ```
|
|
||||||
|
|
||||||
__npcomp_dir="$(realpath $(dirname "${BASH_SOURCE[0]}")/..)"
|
|
||||||
|
|
||||||
# Build the docker images for npcomp:
|
|
||||||
# npcomp:build-pytorch-nightly
|
|
||||||
# me/npcomp:build-pytorch-nightly (additional dev packages and current user)
|
|
||||||
function npcomp_docker_build() {
|
|
||||||
if ! [ -f "docker/pytorch-nightly/Dockerfile" ]; then
|
|
||||||
echo "Please run out of mlir-npcomp/ source directory..."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
echo "Building out of $(pwd)..."
|
|
||||||
docker build docker/pytorch-nightly --tag npcomp:build-pytorch-nightly
|
|
||||||
npcomp_docker_build_for_me npcomp:build-pytorch-nightly
|
|
||||||
}
|
|
||||||
|
|
||||||
# Start a container named "npcomp" in the background with the current-user
|
|
||||||
# dev image built above.
|
|
||||||
function npcomp_docker_start() {
|
|
||||||
local host_src_dir="${1-$__npcomp_dir}"
|
|
||||||
if ! [ -d "$host_src_dir" ]; then
|
|
||||||
echo "mlir-npcomp source directory not found:"
|
|
||||||
echo "Pass path to host source directory as argument (default=$host_src_dir)."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
docker volume create npcomp-build
|
|
||||||
docker run -d --rm --name "npcomp" \
|
|
||||||
--mount source=npcomp-build,target=/build \
|
|
||||||
--mount type=bind,source=$host_src_dir,target=/src/mlir-npcomp \
|
|
||||||
me/npcomp:build-pytorch-nightly tail -f /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# Stop the container named "npcomp".
|
|
||||||
function npcomp_docker_stop() {
|
|
||||||
docker stop npcomp
|
|
||||||
}
|
|
||||||
|
|
||||||
# Get an interactive bash shell to the "npcomp" container.
|
|
||||||
function npcomp_docker_login() {
|
|
||||||
docker exec --user $USER -it npcomp /bin/bash
|
|
||||||
}
|
|
||||||
|
|
||||||
### Implementation helpers below.
|
|
||||||
# From a root image, build an image just for me, hard-coded with a user
|
|
||||||
# matching the host user and a home directory that mirrors that on the host.
|
|
||||||
function npcomp_docker_build_for_me() {
|
|
||||||
local root_image="$1"
|
|
||||||
echo "
|
|
||||||
FROM $root_image
|
|
||||||
|
|
||||||
USER root
|
|
||||||
RUN apt install -y sudo byobu git procps lsb-release
|
|
||||||
RUN addgroup --gid $(id -g $USER) $USER
|
|
||||||
RUN mkdir -p $(dirname $HOME) && useradd -m -d $HOME --gid $(id -g $USER) --uid $(id -u $USER) $USER
|
|
||||||
RUN echo '$USER ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
|
||||||
USER $USER
|
|
||||||
" | docker build --tag me/${root_image} -
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# Formats all source files.
|
|
||||||
|
|
||||||
set +e
|
|
||||||
td="$(dirname $0)/.."
|
|
||||||
|
|
||||||
function find_cc_sources() {
|
|
||||||
local dir="$1"
|
|
||||||
find "$dir" -name "*.h"
|
|
||||||
find "$dir" -name "*.cpp"
|
|
||||||
}
|
|
||||||
# C/C++ sources.
|
|
||||||
set -o xtrace
|
|
||||||
clang-format -i \
|
|
||||||
$(find_cc_sources include) \
|
|
||||||
$(find_cc_sources lib) \
|
|
||||||
$(find_cc_sources frontends/pytorch/csrc)
|
|
||||||
|
|
||||||
# Python sources.
|
|
||||||
yapf --recursive -i "$td/python" "$td/pytest"
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/usr/bin/python3
|
|
||||||
# Simple script to run and verify python path and ability to find
|
|
||||||
# modules. Run/debug this from your terminal or IDE to make sure things
|
|
||||||
# are setup correctly.
|
|
||||||
|
|
||||||
import sys
|
|
||||||
print("PYTHONPATH =", sys.path)
|
|
||||||
print("SYS VERSION =", sys.version)
|
|
||||||
print("PYTHON EXE =", sys.executable)
|
|
||||||
|
|
||||||
try:
|
|
||||||
import npcomp
|
|
||||||
print("Loaded npcomp module")
|
|
||||||
except ImportError:
|
|
||||||
print("ERROR: Could not load the npcomp module.",
|
|
||||||
"Ensure that build/python is on your PYTHONPATH")
|
|
||||||
|
|
||||||
try:
|
|
||||||
import _npcomp
|
|
||||||
print("Loaded (native) _npcomp module")
|
|
||||||
except ImportError:
|
|
||||||
print("ERROR: Could not load the _npcomp native module.",
|
|
||||||
"Ensure that build/python_native is on your PYTHONPATH")
|
|
|
@ -1,18 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Script for invoking all test tests. It also prints out a banner in case
|
|
||||||
# of success.
|
|
||||||
# TODO: I think we can just remove this.
|
|
||||||
|
|
||||||
set -euo pipefail
|
|
||||||
td="$(realpath $(dirname $0)/..)"
|
|
||||||
|
|
||||||
cd $td/build
|
|
||||||
|
|
||||||
ninja
|
|
||||||
ninja check-npcomp-all
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "========"
|
|
||||||
echo "ALL PASS"
|
|
||||||
echo "========"
|
|
|
@ -1,12 +0,0 @@
|
||||||
[build-system]
|
|
||||||
requires = [
|
|
||||||
"setuptools>=42",
|
|
||||||
"wheel",
|
|
||||||
"cmake>=3.12",
|
|
||||||
# MLIR build depends.
|
|
||||||
"numpy",
|
|
||||||
# Version 2.7.0 excluded: https://github.com/pybind/pybind11/issues/3136
|
|
||||||
"pybind11>=2.6.0,!=2.7.0",
|
|
||||||
"PyYAML",
|
|
||||||
]
|
|
||||||
build-backend = "setuptools.build_meta"
|
|
113
setup.py
113
setup.py
|
@ -1,113 +0,0 @@
|
||||||
# Build/install the npcomp-core python package.
|
|
||||||
# Note that this includes a relatively large build of LLVM (~2400 C++ files)
|
|
||||||
# and can take a considerable amount of time, especially with defaults.
|
|
||||||
# To install:
|
|
||||||
# pip install . --use-feature=in-tree-build
|
|
||||||
# To build a wheel:
|
|
||||||
# pip wheel . --use-feature=in-tree-build
|
|
||||||
#
|
|
||||||
# It is recommended to build with Ninja and ccache. To do so, set environment
|
|
||||||
# variables by prefixing to above invocations:
|
|
||||||
# CMAKE_GENERATOR=Ninja CMAKE_C_COMPILER_LAUNCHER=ccache CMAKE_CXX_COMPILER_LAUNCHER=ccache
|
|
||||||
#
|
|
||||||
# On CIs, it is often advantageous to re-use/control the CMake build directory.
|
|
||||||
# This can be set with the NPCOMP_CMAKE_BUILD_DIR env var.
|
|
||||||
import os
|
|
||||||
import shutil
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
|
|
||||||
from distutils.command.build import build as _build
|
|
||||||
from setuptools import find_namespace_packages, setup, Extension
|
|
||||||
from setuptools.command.build_ext import build_ext
|
|
||||||
from setuptools.command.build_py import build_py
|
|
||||||
|
|
||||||
|
|
||||||
# Build phase discovery is unreliable. Just tell it what phases to run.
|
|
||||||
class CustomBuild(_build):
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
self.run_command("build_py")
|
|
||||||
self.run_command("build_ext")
|
|
||||||
self.run_command("build_scripts")
|
|
||||||
|
|
||||||
|
|
||||||
class CMakeExtension(Extension):
|
|
||||||
|
|
||||||
def __init__(self, name, sourcedir=""):
|
|
||||||
Extension.__init__(self, name, sources=[])
|
|
||||||
self.sourcedir = os.path.abspath(sourcedir)
|
|
||||||
|
|
||||||
|
|
||||||
class CMakeBuild(build_py):
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
target_dir = self.build_lib
|
|
||||||
cmake_build_dir = os.getenv("NPCOMP_CMAKE_BUILD_DIR")
|
|
||||||
if not cmake_build_dir:
|
|
||||||
cmake_build_dir = os.path.join(target_dir, "..", "cmake_build")
|
|
||||||
cmake_install_dir = os.path.join(target_dir, "..", "cmake_install")
|
|
||||||
src_dir = os.path.abspath(os.path.dirname(__file__))
|
|
||||||
cfg = "Release"
|
|
||||||
cmake_args = [
|
|
||||||
"-DCMAKE_INSTALL_PREFIX={}".format(os.path.abspath(cmake_install_dir)),
|
|
||||||
"-DPython3_EXECUTABLE={}".format(sys.executable),
|
|
||||||
"-DNPCOMP_VERSION_INFO={}".format(self.distribution.get_version()),
|
|
||||||
"-DCMAKE_BUILD_TYPE={}".format(cfg), # not used on MSVC, but no harm
|
|
||||||
"-DLLVM_TARGETS_TO_BUILD=host",
|
|
||||||
]
|
|
||||||
build_args = []
|
|
||||||
os.makedirs(cmake_build_dir, exist_ok=True)
|
|
||||||
if os.path.exists(cmake_install_dir):
|
|
||||||
shutil.rmtree(cmake_install_dir)
|
|
||||||
cmake_cache_file = os.path.join(cmake_build_dir, "CMakeCache.txt")
|
|
||||||
if os.path.exists(cmake_cache_file):
|
|
||||||
os.remove(cmake_cache_file)
|
|
||||||
subprocess.check_call(["cmake", src_dir] + cmake_args, cwd=cmake_build_dir)
|
|
||||||
subprocess.check_call(["cmake", "--build", ".", "--target", "install"] +
|
|
||||||
build_args,
|
|
||||||
cwd=cmake_build_dir)
|
|
||||||
shutil.copytree(os.path.join(cmake_install_dir, "python_packages",
|
|
||||||
"npcomp_core"),
|
|
||||||
target_dir,
|
|
||||||
symlinks=False,
|
|
||||||
dirs_exist_ok=True)
|
|
||||||
|
|
||||||
|
|
||||||
class NoopBuildExtension(build_ext):
|
|
||||||
|
|
||||||
def build_extension(self, ext):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
setup(
|
|
||||||
name="npcomp-core",
|
|
||||||
version="0.0.1",
|
|
||||||
author="Stella Laurenzo",
|
|
||||||
author_email="stellaraccident@gmail.com",
|
|
||||||
description="NPComp Core",
|
|
||||||
long_description="",
|
|
||||||
include_package_data=True,
|
|
||||||
ext_modules=[
|
|
||||||
CMakeExtension("npcomp._mlir_libs._mlir"),
|
|
||||||
CMakeExtension("npcomp._mlir_libs._npcomp"),
|
|
||||||
# TODO: We don't really want these but they are along for the ride.
|
|
||||||
CMakeExtension("npcomp._mlir_libs._mlirAsyncPasses"),
|
|
||||||
CMakeExtension("npcomp._mlir_libs._mlirConversions"),
|
|
||||||
CMakeExtension("npcomp._mlir_libs._mlirTransforms"),
|
|
||||||
CMakeExtension("npcomp._mlir_libs._mlirSparseTensorPasses"),
|
|
||||||
CMakeExtension("npcomp._mlir_libs._mlirAllPassesRegisration"),
|
|
||||||
CMakeExtension("npcomp._mlir_libs._mlirLinalgPasses"),
|
|
||||||
CMakeExtension("npcomp._mlir_libs._mlirGPUPasses"),
|
|
||||||
],
|
|
||||||
cmdclass={
|
|
||||||
"build": CustomBuild,
|
|
||||||
"built_ext": NoopBuildExtension,
|
|
||||||
"build_py": CMakeBuild,
|
|
||||||
},
|
|
||||||
zip_safe=False,
|
|
||||||
packages=find_namespace_packages(include=[
|
|
||||||
"npcomp",
|
|
||||||
"npcomp.*",
|
|
||||||
]),
|
|
||||||
)
|
|
|
@ -1,38 +0,0 @@
|
||||||
# No shebang, please `source` this file!
|
|
||||||
# For example, add this to your `.bashrc`:
|
|
||||||
# ```
|
|
||||||
# source $WHERE_YOU_CHECKED_OUT_NPCOMP/tools/bash_helpers.sh
|
|
||||||
# ```
|
|
||||||
|
|
||||||
td="$(realpath $(dirname "${BASH_SOURCE[0]}")/..)"
|
|
||||||
build_dir="$td/build"
|
|
||||||
|
|
||||||
npcomp-opt() {
|
|
||||||
# Helper for building and invoking npcomp-opt.
|
|
||||||
# Usage:
|
|
||||||
# $ npcomp-opt <regular npcomp-opt options>
|
|
||||||
ninja -C "$build_dir" npcomp-opt 1>&2 || return 1
|
|
||||||
# Also produce a reproducer by default.
|
|
||||||
"${build_dir}/bin/npcomp-opt" \
|
|
||||||
"-pass-pipeline-crash-reproducer=/tmp/reproducer.mlir" \
|
|
||||||
"$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Go to the root of your npcomp checkout.
|
|
||||||
alias npd="cd $td"
|
|
||||||
# Handy so that `npctest -v` runs lit with -v and thus prints out errors,
|
|
||||||
# which `check-npcomp` does not.
|
|
||||||
npctest() {
|
|
||||||
(npd && tools/run_lit.sh test "$@")
|
|
||||||
}
|
|
||||||
npctall() {
|
|
||||||
(npd && build_tools/test_all.sh "$@")
|
|
||||||
}
|
|
||||||
|
|
||||||
# Don't autocomplete `install-mlir` which conflicts with `include` in our
|
|
||||||
# typical build setup.
|
|
||||||
#
|
|
||||||
# See here for more info about the incantation:
|
|
||||||
# https://stackoverflow.com/a/34272881
|
|
||||||
# https://superuser.com/q/253068
|
|
||||||
export FIGNORE=$FIGNORE:nstall-mlir
|
|
|
@ -1,36 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# Runs lit-based tests by properly translating paths to the build directory.
|
|
||||||
# Example:
|
|
||||||
# ./tools/run_lit.sh test/Dialect -v
|
|
||||||
set -e
|
|
||||||
|
|
||||||
td="$(realpath $(dirname $0)/..)"
|
|
||||||
build_dir="$td/build"
|
|
||||||
build_mlir="$build_dir/llvm"
|
|
||||||
|
|
||||||
lit_exe="$build_mlir/bin/llvm-lit"
|
|
||||||
if ! [ -f "$lit_exe" ]; then
|
|
||||||
echo "Could not find lit: $lit_exe"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
declare -a lit_args
|
|
||||||
for i in "$@"; do
|
|
||||||
if [[ ${i:0:1} = "-" ]] || [[ ${i:0:1} = "/" ]]; then
|
|
||||||
lit_args+=("$i")
|
|
||||||
else
|
|
||||||
if ! [ -e "$i" ]; then
|
|
||||||
echo "Specified lit input does not exist: $i"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
test_local_path="$(realpath $i)"
|
|
||||||
# Replace the src prefix with the build dir.
|
|
||||||
test_build_path="$build_dir/${test_local_path##$td/}"
|
|
||||||
lit_args+=("$test_build_path")
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
set -x
|
|
||||||
cd $build_dir
|
|
||||||
ninja
|
|
||||||
cd test && python3 "$lit_exe" ${lit_args[@]}
|
|
|
@ -1,12 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
src_dir="$(realpath $(dirname $0)/..)"
|
|
||||||
|
|
||||||
cd "$src_dir"
|
|
||||||
|
|
||||||
# Ensure PYTHONPATH is set for export to child processes, even if empty.
|
|
||||||
export PYTHONPATH=${PYTHONPATH-}
|
|
||||||
source .env
|
|
||||||
|
|
||||||
python -m e2e_testing.torchscript.main "$@"
|
|
Loading…
Reference in New Issue