pytorch/torch/csrc/jit
zeshengzong 97272e4b49 Fix torch.nn.functional.hardswish gradients corner case (#148049)
Fixes #147801

## Changes

- Change hardswish gradient compute condition as [torch.nn.functional.hardswish](https://pytorch.org/docs/stable/generated/torch.nn.functional.hardswish.html)
- Enable cuda for test `test_hardswish_grad_corner`
- Add test case for value=-3

## Test Result

```bash
pytest test/test_nn.py -k test_hardswish
pytest test/test_unary_ufuncs.py -k test_hardswish
pytest test/inductor/test_torchinductor.py -k test_hardswish
```

![image](https://github.com/user-attachments/assets/000cb5c4-15f5-4bfd-ab45-f52bf810ff3d)
![image](https://github.com/user-attachments/assets/38b08cf8-ea84-47a2-8e37-0a213da3e0c8)
![image](https://github.com/user-attachments/assets/54bc57be-2c57-46cc-ab90-94ea6cbe1c34)

Pull Request resolved: https://github.com/pytorch/pytorch/pull/148049
Approved by: https://github.com/soulitzer
2025-03-14 18:53:10 +00:00
..
api Use Wextra-semi (#140236) 2024-11-13 02:15:16 +00:00
backends Fix crash in -[PTMCoreMLCompiler _compileModel:atPath:] (#147809) 2025-02-25 20:56:16 +00:00
codegen Fix compile errors (#148758) 2025-03-08 04:56:42 +00:00
cuda [4/N] Avoid copy in std::get (#142285) 2024-12-09 07:59:35 +00:00
docs Add None return type to init (#132335) 2024-08-01 15:26:45 +00:00
frontend c10::string_view -> std::string_view in caffe2/jit (#142383) 2024-12-10 15:42:28 +00:00
ir Fix compile errors (#148758) 2025-03-08 04:56:42 +00:00
mobile Fix clang-tidy warnings in torch/jit (#146963) 2025-02-15 03:36:59 +00:00
operator_upgraders Add None return type to init (#132335) 2024-08-01 15:26:45 +00:00
passes Fix clang-tidy warnings in torch/jit (#146963) 2025-02-15 03:36:59 +00:00
python Make record/storage alignment in torch.save configurable (#147788) 2025-03-06 12:04:46 +00:00
runtime Fix torch.nn.functional.hardswish gradients corner case (#148049) 2025-03-14 18:53:10 +00:00
serialization Turn onnx functions into static (#147598) 2025-02-21 07:40:28 +00:00
tensorexpr [pytorch] Fix duplicated Malloc/Free insertation when using IRBuilderBase::CreateMalloc/CreateFree in LLVM 18+ (#149058) 2025-03-13 20:37:47 +00:00
testing Fix clang-tidy warnings in torch/jit (#146963) 2025-02-15 03:36:59 +00:00
jit_log.cpp Revert "[Environment Variable][6/N] Use thread-safe getenv functions (#140200)" 2024-11-13 15:33:23 +00:00
jit_log.h [8/N] Fix clang-tidy warnings in jit (#131997) 2024-07-29 12:40:42 +00:00
jit_opt_limit.cpp Revert "[Environment Variable][6/N] Use thread-safe getenv functions (#140200)" 2024-11-13 15:33:23 +00:00
jit_opt_limit.h [8/N] Fix clang-tidy warnings in jit (#131997) 2024-07-29 12:40:42 +00:00
JIT-AUTOCAST.md Fix missing mandatory device_type argument in autocast docstring (#97223) 2023-06-27 01:54:54 +00:00
OVERVIEW.md c10::optional -> std::optional in PyTorch (#137333) 2024-10-11 00:16:10 +00:00
README.md
resource_guard.h [8/N] Fix clang-tidy warnings in jit (#131997) 2024-07-29 12:40:42 +00:00

PyTorch JIT

This folder contains (most of) the C++ code for the PyTorch JIT, a language and compiler stack for executing PyTorch models portably and efficiently. To learn more about the JIT from a user perspective, please consult our reference documentation and tutorials.

A brief summary of the source tree:

  • OVERVIEW.md: High-level technical overview of the JIT.
  • frontend/: Taking PyTorch modules in Python and translating them into the JIT IR.
  • ir/: Core IR abstractions.
  • runtime/: Interpreter, graph execution, and JIT operators.
  • codegen/: Generating efficient, hardware-specific code for JIT subgraphs.
  • serialization/: Saving and loading modules.
  • api/: Any user-facing C++ or Python interfaces.
  • python/: Binding stuff into Python or accessing information from the Python environment.
  • testing/: Utilities and helpers for testing.
  • mobile/: Mobile-specific implementations of runtime components.
  • passes/: IR-to-IR passes, generally for optimization and lowering.
  • generated/: This folder is generated by the PyTorch build, and contains bindings for native PyTorch operators into the JIT.

Refer to each folder for more in-depth documentation.

Other relevant parts of the codebase not contained here:

  • aten/src/ATen/core: contains JIT code re-used by other elements of the runtime system (eager, mobile, etc.)