mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 12:21:27 +01:00
The `usort` config in `pyproject.toml` has no effect due to a typo. Fixing the typo make `usort` do more and generate the changes in the PR. Except `pyproject.toml`, all changes are generated by `lintrunner -a --take UFMT --all-files`. Pull Request resolved: https://github.com/pytorch/pytorch/pull/127125 Approved by: https://github.com/Skylion007 ghstack dependencies: #127122, #127123, #127124
37 lines
762 B
Python
37 lines
762 B
Python
# Copyright (c) Facebook, Inc. and its affiliates.
|
|
# All rights reserved.
|
|
#
|
|
# This source code is licensed under the BSD-style license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
import time
|
|
|
|
import torch
|
|
|
|
from functorch import grad, make_fx
|
|
from functorch.compile import nnc_jit
|
|
|
|
|
|
def f(x):
|
|
return torch.sin(x).sum()
|
|
|
|
|
|
inp = torch.randn(100)
|
|
grad_pt = grad(f)
|
|
grad_fx = make_fx(grad_pt)(inp)
|
|
grad_nnc = nnc_jit(grad_pt)
|
|
|
|
|
|
def bench(name, f, iters=10000, warmup=3):
|
|
for _ in range(warmup):
|
|
f()
|
|
begin = time.time()
|
|
for _ in range(iters):
|
|
f()
|
|
print(f"{name}: ", time.time() - begin)
|
|
|
|
|
|
bench("Pytorch: ", lambda: grad_pt(inp))
|
|
bench("FX: ", lambda: grad_fx(inp))
|
|
bench("NNC: ", lambda: grad_nnc(inp))
|