mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Summary: This PR suppresses clang-tidy warnings in the codebase (for now) so that we can re-enable clang-tidy checks on master. I ran this script to add the `NOLINTNEXTLINE` comments (on a devserver): ```bash python3 setup.py develop # Uses same script that's run on CI and adds the -j (parallel), -s (add comments), -k (continue if diagnostic errors are found) options python3 tools/clang_tidy.py \ -j \ -s \ -k \ -v \ --paths torch/csrc/ \ -g"-torch/csrc/jit/passes/onnx/helper.cpp" \ -g"-torch/csrc/jit/passes/onnx/shape_type_inference.cpp" \ -g"-torch/csrc/jit/serialization/onnx.cpp" \ -g"-torch/csrc/jit/serialization/export.cpp" \ -g"-torch/csrc/jit/serialization/import.cpp" \ -g"-torch/csrc/jit/serialization/import_legacy.cpp" \ -g"-torch/csrc/onnx/init.cpp" \ -g"-torch/csrc/cuda/nccl.*" \ -g"-torch/csrc/cuda/python_nccl.cpp" \ -g"-torch/csrc/autograd/FunctionsManual.cpp" \ -g"-torch/csrc/generic/*.cpp" \ -g"-torch/csrc/jit/codegen/cuda/runtime/*" \ -g"-torch/csrc/deploy/interpreter/interpreter.cpp" \ -g"-torch/csrc/deploy/interpreter/interpreter.h" \ -g"-torch/csrc/deploy/interpreter/interpreter_impl.h" \ -g"-torch/csrc/deploy/interpreter/test_main.cpp" ``` Pull Request resolved: https://github.com/pytorch/pytorch/pull/60649 Test Plan: Verified changes by re-running the script (without the `-s` option) and seeing no warnings/errors. Reviewed By: walterddr, janeyx99 Differential Revision: D29504258 Pulled By: 1ntEgr8 fbshipit-source-id: 78310b30ee8213b73ddb4771ad874665323e7a4e
49 lines
1.6 KiB
C++
49 lines
1.6 KiB
C++
#pragma once
|
|
|
|
// The InputBuffer class accumulates a list of Variables for use by a
|
|
// function. It implements logic to avoid modifying the passed
|
|
// values in-place (adding an input twice will accumulate the result).
|
|
// This behaviour is needed and used only in backward graphs.
|
|
|
|
#include <vector>
|
|
#include <utility>
|
|
#include <memory>
|
|
#include <ATen/ATen.h>
|
|
|
|
#include <torch/csrc/autograd/variable.h>
|
|
#include <c10/util/Optional.h>
|
|
#include <c10/core/Stream.h>
|
|
|
|
namespace torch { namespace autograd {
|
|
|
|
struct InputBuffer {
|
|
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-member-init)
|
|
explicit InputBuffer(size_t size)
|
|
: buffer(size) {}
|
|
InputBuffer(const InputBuffer& other) = delete;
|
|
InputBuffer(InputBuffer&& other) = default;
|
|
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-member-init)
|
|
explicit InputBuffer(variable_list&& inputs): buffer(std::move(inputs)) {};
|
|
InputBuffer& operator=(InputBuffer&& other) = default;
|
|
|
|
// Accumulates the variable at a specified index.
|
|
// The optional CUDA streams determine which stream the accumulation
|
|
// is run on and how the addition is synchronized.
|
|
void add(size_t pos,
|
|
Variable&& var,
|
|
const c10::optional<c10::Stream>& opt_producer_stream,
|
|
const c10::optional<c10::Stream>& opt_consumer_stream);
|
|
|
|
at::Device device() const;
|
|
|
|
Variable operator[](size_t pos) { return buffer[pos]; }
|
|
|
|
// Returns the inputs as a list of variables. Destroys given InputBuffer.
|
|
static std::vector<Variable> variables(InputBuffer&& g);
|
|
|
|
private:
|
|
std::vector<Variable> buffer;
|
|
};
|
|
|
|
}} // namespace torch::autograd
|