pytorch/torch/csrc/jit/codegen/cuda
Christian Sarofeen 8e69c3be17 [nvFuser] Reduction support in codegen, fp16 support (#38627)
Summary:
Adds reduction  support for the code generator. Reductions are fully supported with split/merge/reorder/rfactor/computeAt/unroll operators. There is also cross thread (intra-block) reduction support.

The two remaining pieces missing for reduction support is:
- Safety: If cross thread reduction was used, child operators shouldn't be able to bind that thread dim anymore
- Cross block reduction: we will want inter-block reduction support to match parity with tensor iterator

PR also provides FP16 support for fusions now. We insert casts on FP16 inputs to FP32, and we insert casts to FP16 on FP16 outputs.

Also working towards reductions and shape inference for reductions in the fusion pass.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/38627

Reviewed By: albanD

Differential Revision: D21663196

Pulled By: soumith

fbshipit-source-id: 3ff2df563f86c39cd5821ab9c1148149e5172a9e
2020-05-21 17:18:39 -07:00
..
arith.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
arith.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
dispatch.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
dispatch.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
fusion.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
fusion.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
graph_fuser.cpp [CUDA_FUSER] Expand operation support for cuda fuser (#37849) 2020-05-07 09:21:09 -07:00
index_compute.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
index_compute.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
interface.cpp [pytorch] Fix fblearner flow compiling errors (#35902) 2020-04-02 14:52:48 -07:00
interface.h
ir_all_nodes.h New CUDA Fuser code lowering refactor (#36199) 2020-04-09 14:27:05 -07:00
ir_base_nodes.cpp [CUDA_FUSER] Expand operation support for cuda fuser (#37849) 2020-05-07 09:21:09 -07:00
ir_base_nodes.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
ir_interface_nodes.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
ir_internal_nodes.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
ir_iostream.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
ir_iostream.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
ir_nodes.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
ir_printer.h
iter_visitor.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
iter_visitor.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
kernel_arg.h [CUDA_FUSER] Expand operation support for cuda fuser (#37849) 2020-05-07 09:21:09 -07:00
kernel_cache.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
kernel_cache.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
kernel_resource_strings.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
kernel.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
kernel.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
lower_loops.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
lower_loops.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
lower_utils.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
lower_utils.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
lower2device.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
lower2device.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
manager.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
manager.h
mutator.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
mutator.h New CUDA Fuser: Unrolling support, interface refactor (#36435) 2020-04-16 09:20:24 -07:00
parser.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
parser.h [CUDA_FUSER] Expand operation support for cuda fuser (#37849) 2020-05-07 09:21:09 -07:00
partition.cpp [CUDA_FUSER] Expand operation support for cuda fuser (#37849) 2020-05-07 09:21:09 -07:00
partition.h
predicate_compute.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
predicate_compute.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
register_interface.cpp
shape_inference.cpp [CUDA_FUSER] Expand operation support for cuda fuser (#37849) 2020-05-07 09:21:09 -07:00
shape_inference.h [CUDA_FUSER] Expand operation support for cuda fuser (#37849) 2020-05-07 09:21:09 -07:00
tensor_meta.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
tensor_meta.h
tensor_view.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
transform_iter.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
transform_iter.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
transform_replay.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
transform_replay.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
transform_rfactor.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
transform_rfactor.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
type.cpp [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
type.h [nvFuser] Reduction support in codegen, fp16 support (#38627) 2020-05-21 17:18:39 -07:00
utils.cpp Adding symbolic sizes, contiguity, stride indices (#36101) 2020-05-01 02:01:25 -07:00
utils.h Adding symbolic sizes, contiguity, stride indices (#36101) 2020-05-01 02:01:25 -07:00