onnxruntime/orttraining/orttraining
pengwa 5eda79bdd3
Improve perf for stage3 training (#18099)
### Improve perf for stage3 training - first wave

Port existing PythonOp/PythonOpGrad python runner to C++, also introduce
an unsafe run mode (to skip inplace, save for backward, materrialized
grad detection on the fly).

This reduce the overhead from XX~XXX us to X ~ lower end of XX us . In
LLAMA2 7B training with 8x32GV100, we have observed 6.7% gains over
PyTorch. (1.59 v.s. 1.49it/s)

Peak memory also dropped from 31GB to 28GB.

### Motivation and Context
<!-- - Why is this change required? What problem does it solve?
- If it fixes an open issue, please link to the issue here. -->
2023-12-15 13:32:19 +08:00
..
core Improve perf for stage3 training (#18099) 2023-12-15 13:32:19 +08:00
lazy_tensor NVTX windows include and link fixes (#16831) 2023-08-16 11:53:58 -07:00
models Handle string initializers in constant folding (#17422) 2023-09-27 21:15:58 +10:00
python Improve perf for stage3 training (#18099) 2023-12-15 13:32:19 +08:00
test Improve perf for stage3 training (#18099) 2023-12-15 13:32:19 +08:00
training_api [On-Device Training] Expose Parameters through the Training API (#17364) 2023-09-25 20:03:24 -07:00
training_ops Improve perf for stage3 training (#18099) 2023-12-15 13:32:19 +08:00