Home / Class/ is_standard_layout_v Class — pytorch Architecture

is_standard_layout_v Class — pytorch Architecture

Architecture documentation for the is_standard_layout_v class in ParamsHash.h from the pytorch codebase.

Entity Profile

Source Code

aten/src/ATen/native/utils/ParamsHash.h lines 14–29

template <typename Params>
struct ParamsHash {
  // Params must be a POD because we read out its memory
  // contents as char* when hashing
  static_assert(std::is_standard_layout_v<Params>, "Params is not POD");

  size_t operator()(const Params& params) const noexcept {
    auto ptr = reinterpret_cast<const uint8_t*>(&params);
    uint32_t value = 0x811C9DC5;
    for (const auto i : c10::irange(sizeof(Params))) {
      value ^= ptr[i];
      value *= 0x01000193;
    }
    return (size_t)value;
  }
};

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free