Skip to content

Update release branch #1300

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

Merged
merged 40 commits into from
Aug 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
d6ea0d5
feat: Jetson specific workspace file
narendasan Aug 17, 2022
7f60b18
docs: Update jetson instructions
narendasan Aug 17, 2022
61adecf
docs: Update docgen task to not require a special container
narendasan Aug 17, 2022
cf54792
Checkpoint, initial test and implementation
mfeliz-cruise Jun 14, 2022
df24079
Fix error in layer conversion caused by zero/ones tensors of wrong type
mfeliz-cruise Jun 15, 2022
6aee084
Sort input values in registerSegmentsOutputs to resolve nondeterminism
mfeliz-cruise Jun 16, 2022
bf6645f
lint
mfeliz-cruise Aug 18, 2022
911ab5b
lint
mfeliz-cruise Aug 18, 2022
6b77b72
feat: Add support for aten::square
mfeliz-cruise Jul 1, 2022
e74dbd7
chore(deps): bump @actions/core in /.github/actions/assigner
dependabot[bot] Aug 18, 2022
0591a8d
fix: fix misleading skipping partitioning msg
bowang007 Aug 18, 2022
6f09709
Merge pull request #1287 from pytorch/dependabot/npm_and_yarn/dot-git…
narendasan Aug 19, 2022
b6b690c
Changes done internally at Facebook (#1288)
Aug 19, 2022
3b910ca
chore: Truncate long and double for ptq CPP path
andi4191 Aug 19, 2022
149033c
chore: Fix dataloader in finetune_qat script
andi4191 Aug 19, 2022
b8a122f
Merge pull request #1292 from pytorch/anuragd/fix_finetune_qat_datalo…
peri044 Aug 19, 2022
09a857f
Merge pull request #1291 from pytorch/anuragd/float64_truncate_ptq
peri044 Aug 19, 2022
abf3d47
Merge pull request #1286 from mfeliz-cruise/michael.feliz/square
peri044 Aug 19, 2022
2fc413b
Merge pull request #1289 from pytorch/fix_misleading_msg
bowang007 Aug 19, 2022
1395110
Merge pull request #1283 from mfeliz-cruise/michael.feliz/constant_pa…
peri044 Aug 19, 2022
ec2e2bf
docs: Update docgen task
narendasan Aug 19, 2022
12f39ac
chore: apply linting
narendasan Aug 19, 2022
8236218
Merge pull request #1284 from mfeliz-cruise/michael.feliz/determinism
narendasan Aug 19, 2022
0b4888b
Merge pull request #1294 from pytorch/docgen_update
narendasan Aug 19, 2022
cfd816f
Update docgen.yml
narendasan Aug 19, 2022
5d8b2a7
Update docgen.yml
narendasan Aug 19, 2022
7215a67
Update docgen.yml
narendasan Aug 19, 2022
69ba6f8
Update docgen.yml
narendasan Aug 19, 2022
110d425
Update docgen.yml
narendasan Aug 19, 2022
7836ce2
Update docgen.yml
narendasan Aug 19, 2022
10325f1
Update docgen.yml
narendasan Aug 19, 2022
d7fd691
update fx notebook (#1297)
Aug 22, 2022
6e467f2
Changes done internally at Facebook (#1299)
Aug 22, 2022
fbdffdc
Update docgen.yml
narendasan Aug 22, 2022
399c763
Update docgen.yml
narendasan Aug 22, 2022
d2a8143
Update docgen.yml
narendasan Aug 22, 2022
0baf50a
Update docgen.yml
narendasan Aug 22, 2022
0005137
docs: [Automated] Regenerating documenation for 0baf50a
Aug 22, 2022
ef0042b
Merge branch 'release/1.2' into release-branch-update
narendasan Aug 23, 2022
5248768
fix(tools): Fix linter to not depend on docker (#1301) (#1302)
narendasan Aug 23, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 24 additions & 9 deletions .github/actions/assigner/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .github/actions/assigner/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"license": "BSD-3-Clause",
"repository": "https://www.github.com/pytorch/TensorRT",
"dependencies": {
"@actions/core": "^1.8.2",
"@actions/core": "^1.9.1",
"@actions/github": "^5.0.3",
"fs": "^0.0.1-security",
"js-yaml": "^4.1.0"
Expand Down
51 changes: 47 additions & 4 deletions .github/workflows/docgen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ on:

jobs:
build-docs:
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
container:
image: docker.pkg.github.com/pytorch/tensorrt/docgen:latest
image: ghcr.io/pytorch/tensorrt/docgen:latest
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -22,23 +22,66 @@ jobs:
rm -rf /usr/share/dotnet
rm -rf /opt/ghc
rm -rf "/usr/local/share/boost"
rm -rf /usr/local/cuda/cuda-*
- name: Install base deps
run: |
apt update
DEBIAN_FRONTEND=noninteractive apt install -y software-properties-common gcc git curl wget make zlib1g-dev bzip2 libbz2-dev lzma lzma-dev libreadline-dev libsqlite3-dev libssl-dev libffi-dev doxygen pandoc
git config --global --add safe.directory '*'
- name: Set up Python 3.9.4
uses: actions/setup-python@v2
with:
python-version: 3.9.4
- uses: actions/checkout@v2
with:
ref: ${{github.head_ref}}
- name: Get HEAD SHA
id: vars
run: echo "::set-output name=sha::$(git rev-parse --short HEAD)"
- name: Get Bazel version
id: bazel_info
run: echo "::set-output name=version::$(cat .bazelversion)"
- name: Install Bazel
run: |
wget -q https://github.com/bazelbuild/bazel/releases/download/${{ steps.bazel_info.outputs.version }}/bazel-${{ steps.bazel_info.outputs.version }}-linux-x86_64 -O /usr/bin/bazel
chmod a+x /usr/bin/bazel
- name: Install cudnn + tensorrt
run: |
apt-get update
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 536F8F1DE80F6A35
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A4B469963BF863CC
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
apt-get update
apt-get install -y libcudnn8 libcudnn8-dev

apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
apt-get update

apt-get install -y libnvinfer8 libnvinfer-plugin8 libnvinfer-dev libnvinfer-plugin-dev
- name: Install Torch
run: |
python3 -m pip install -r py/requirements.txt
- name: Build Python Package
run: |
cp docker/WORKSPACE.docker WORKSPACE
cp toolchains/ci_workspaces/WORKSPACE.x86_64 WORKSPACE
cd py
echo $(which python3)
echo $(python3 -c 'import site; print(site.getsitepackages()[0])')
mkdir -p /opt/circleci/.pyenv/versions/3.9.4/lib/python3.9/
ln -s $(python3 -c 'import site; print(site.getsitepackages()[0])') /opt/circleci/.pyenv/versions/3.9.4/lib/python3.9/site-packages
python3 setup.py install
cd ..
- name: Generate New Docs
run: |
cd docsrc
pip3 install -r requirements.txt
python3 -m pip install -r requirements.txt
python3 -c "import torch_tensorrt; print(torch_tensorrt.__version__)"
make html
cd ..
- uses: stefanzweifel/git-auto-commit-action@v4
with:
# Required
Expand Down
44 changes: 25 additions & 19 deletions .github/workflows/linter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,25 +25,25 @@ jobs:
- uses: actions/checkout@v2
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Docker login
uses: docker/login-action@v1
- name: Set up Python 3.9.4
uses: actions/setup-python@v2
with:
registry: docker.pkg.github.com
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Run image
python-version: 3.9.4
- name: Setup env
run: |
docker pull docker.pkg.github.com/pytorch/tensorrt/docgen:latest
docker run -it -d --name cpplinter -e GITHUB_TOKEN=$GITHUB_TOKEN -v $GITHUB_WORKSPACE:/workspace -v $GITHUB_EVENT_PATH:/GITHUB_EVENT.json -w /workspace docker.pkg.github.com/pytorch/tensorrt/docgen:latest
docker exec cpplinter bash -c "cp /workspace/docker/WORKSPACE.docker /workspace/WORKSPACE"
sudo ln -s $GITHUB_EVENT_PATH /GITHUB_EVENT.json
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
- name: Install dependencies
run: |
docker exec cpplinter bash -c "pip3 install -r /workspace/.github/scripts/requirements.txt"
docker exec cpplinter bash -c "pip3 install -r /workspace/requirements-dev.txt"
pip3 install -r $GITHUB_WORKSPACE/.github/scripts/requirements.txt
pip3 install -r $GITHUB_WORKSPACE/requirements-dev.txt
- name: Lint C++
run: docker exec cpplinter bash -c "cd /workspace && python3 /workspace/.github/scripts/run_cpp_linter.py"
run: |
cd $GITHUB_WORKSPACE
python3 $GITHUB_WORKSPACE/.github/scripts/run_cpp_linter.py
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

py-linting:
name: Python Linting
Expand All @@ -65,22 +65,28 @@ jobs:
- uses: actions/checkout@v2
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Set up Python 3.9.4
uses: actions/setup-python@v2
with:
python-version: 3.9.4
- name: Docker login
uses: docker/login-action@v1
with:
registry: docker.pkg.github.com
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Run image
- name: Setup env
run: |
docker pull docker.pkg.github.com/pytorch/tensorrt/docgen:latest
docker run -it -d --name pylinter -e GITHUB_TOKEN=$GITHUB_TOKEN -v $GITHUB_WORKSPACE:/workspace -v $GITHUB_EVENT_PATH:/GITHUB_EVENT.json -w /workspace docker.pkg.github.com/pytorch/tensorrt/docgen:latest
docker exec pylinter bash -c "cp /workspace/docker/WORKSPACE.docker /workspace/WORKSPACE"
sudo ln -s $GITHUB_EVENT_PATH /GITHUB_EVENT.json
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
- name: Install dependencies
run: |
docker exec pylinter bash -c "pip3 install -r /workspace/.github/scripts/requirements.txt"
docker exec pylinter bash -c "pip3 install -r /workspace/requirements-dev.txt"
pip3 install -r $GITHUB_WORKSPACE/.github/scripts/requirements.txt
pip3 install -r $GITHUB_WORKSPACE/requirements-dev.txt
- name: Lint Python
run: docker exec pylinter bash -c "cd /workspace && python3 /workspace/.github/scripts/run_py_linter.py"
run: |
cd $GITHUB_WORKSPACE
python3 $GITHUB_WORKSPACE/.github/scripts/run_py_linter.py
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
3 changes: 2 additions & 1 deletion core/compiler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,8 @@ torch::jit::Module CompileGraph(const torch::jit::Module& mod, CompileSpec cfg)
auto outputIsCollection = conversion::OutputIsCollection(g->block());
if (cfg.partition_info.enabled &&
(cfg.lower_info.forced_fallback_modules.size() == 0 &&
cfg.partition_info.forced_fallback_operators.size() == 0 && isBlockConvertible)) {
cfg.partition_info.forced_fallback_operators.size() == 0 && isBlockConvertible) &&
!outputIsCollection) {
LOG_INFO("Skipping partitioning since model is fully supported");
}

Expand Down
19 changes: 6 additions & 13 deletions core/conversion/converters/impl/constant_pad.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ auto constant_pad_registrations TORCHTRT_UNUSED = RegisterNodeConversionPatterns
auto padding = args[1].unwrapToIntList().vec();
int64_t padSize = padding.size();
auto value = args[2].unwrapToScalar().to<float>();

at::Tensor value_tensor = torch::tensor(value, util::TRTDataTypeToScalarType(in->getType()));
auto valueTensor = tensor_to_const(ctx, value_tensor);
TORCHTRT_CHECK(padSize % 2 == 0, "Length of pad must be even but instead it equals " << padSize);

int64_t l_pad = padSize / 2;
Expand Down Expand Up @@ -55,10 +56,8 @@ auto constant_pad_registrations TORCHTRT_UNUSED = RegisterNodeConversionPatterns
auto fill_layer = ctx->net->addFill(nvinfer1::Dims{1, {1}}, nvinfer1::FillOperation::kLINSPACE);
auto shape_gather_out = ctx->net->addShape(*left_gather_out)->getOutput(0);
fill_layer->setInput(0, *shape_gather_out);
at::Tensor value_tensor = torch::tensor(value, torch::kFloat32);
auto valueTensor = tensor_to_const(ctx, value_tensor);
fill_layer->setInput(1, *valueTensor);
at::Tensor delta_tensor = torch::zeros(inRank);
at::Tensor delta_tensor = torch::zeros(inRank, util::TRTDataTypeToScalarType(in->getType()));
auto deltaTensor = tensor_to_const(ctx, delta_tensor);
fill_layer->setInput(2, *deltaTensor);
auto padTensor = fill_layer->getOutput(0);
Expand All @@ -69,10 +68,8 @@ auto constant_pad_registrations TORCHTRT_UNUSED = RegisterNodeConversionPatterns
} else {
inDims.d[axis] = padding[padding_index];
auto fill_layer = ctx->net->addFill(inDims, nvinfer1::FillOperation::kLINSPACE);
at::Tensor value_tensor = torch::tensor(value, torch::kFloat32);
auto valueTensor = tensor_to_const(ctx, value_tensor);
fill_layer->setInput(1, *valueTensor);
at::Tensor delta_tensor = torch::zeros(inRank);
at::Tensor delta_tensor = torch::zeros(inRank, util::TRTDataTypeToScalarType(in->getType()));
auto deltaTensor = tensor_to_const(ctx, delta_tensor);
fill_layer->setInput(2, *deltaTensor);
auto padTensor = fill_layer->getOutput(0);
Expand Down Expand Up @@ -112,10 +109,8 @@ auto constant_pad_registrations TORCHTRT_UNUSED = RegisterNodeConversionPatterns
auto fill_layer = ctx->net->addFill(nvinfer1::Dims{1, {1}}, nvinfer1::FillOperation::kLINSPACE);
auto shape_gather_out = ctx->net->addShape(*right_gather_out)->getOutput(0);
fill_layer->setInput(0, *shape_gather_out);
at::Tensor value_tensor = torch::tensor(value, torch::kFloat32);
auto valueTensor = tensor_to_const(ctx, value_tensor);
fill_layer->setInput(1, *valueTensor);
at::Tensor delta_tensor = torch::zeros(inRank);
at::Tensor delta_tensor = torch::zeros(inRank, util::TRTDataTypeToScalarType(in->getType()));
auto deltaTensor = tensor_to_const(ctx, delta_tensor);
fill_layer->setInput(2, *deltaTensor);
auto padTensor = fill_layer->getOutput(0);
Expand All @@ -126,10 +121,8 @@ auto constant_pad_registrations TORCHTRT_UNUSED = RegisterNodeConversionPatterns
} else {
inDims.d[axis] = padding[padding_index + 1];
auto fill_layer = ctx->net->addFill(inDims, nvinfer1::FillOperation::kLINSPACE);
at::Tensor value_tensor = torch::tensor(value, torch::kFloat32);
auto valueTensor = tensor_to_const(ctx, value_tensor);
fill_layer->setInput(1, *valueTensor);
at::Tensor delta_tensor = torch::zeros(inRank);
at::Tensor delta_tensor = torch::zeros(inRank, util::TRTDataTypeToScalarType(in->getType()));
auto deltaTensor = tensor_to_const(ctx, delta_tensor);
fill_layer->setInput(2, *deltaTensor);
auto padTensor = fill_layer->getOutput(0);
Expand Down
12 changes: 12 additions & 0 deletions core/conversion/converters/impl/element_wise.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,18 @@ auto element_wise_registrations TORCHTRT_UNUSED =
LOG_DEBUG("Output tensor shape: " << out->getDimensions());
return true;
}})
.pattern(
{"aten::square(Tensor self) -> Tensor",
[](ConversionCtx* ctx, const torch::jit::Node* n, args& args) -> bool {
auto self = args[0].ITensorOrFreeze(ctx);
auto mul = add_elementwise(ctx, nvinfer1::ElementWiseOperation::kPROD, self, self, util::node_info(n));
TORCHTRT_CHECK(mul, "Unable to create mul layer from node: " << *n);

mul->setName(util::node_info(n).c_str());
auto out = ctx->AssociateValueAndTensor(n->outputs()[0], mul->getOutput(0));
LOG_DEBUG("Output tensor shape: " << out->getDimensions());
return true;
}})
.pattern(
{"aten::mul.Tensor(Tensor self, Tensor other) -> Tensor",
[](ConversionCtx* ctx, const torch::jit::Node* n, args& args) -> bool {
Expand Down
3 changes: 2 additions & 1 deletion core/partitioning/partitioning.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,8 @@ void resolveTRTNonTensorInputs(PartitionedGraph& segmented_blocks) {

void registerSegmentsOutputs(PartitionedGraph& segmented_blocks, torch::jit::Block* block) {
// find the corresponding raw values in original global graph for this segmented block's inputs/outputs
std::set<torch::jit::Value*> input_values;
auto cmp = [](torch::jit::Value* a, torch::jit::Value* b) { return a->unique() < b->unique(); };
std::set<torch::jit::Value*, decltype(cmp)> input_values(cmp);
for (auto& seg_block : segmented_blocks) {
for (auto& input : seg_block.raw_inputs()) {
input_values.insert(input);
Expand Down
Loading