range Class — pytorch Architecture
Architecture documentation for the range class in DistributionsHelper.h from the pytorch codebase.
Entity Profile
Source Code
aten/src/ATen/core/DistributionsHelper.h lines 36–62
template <typename T>
struct uniform_int_from_to_distribution {
C10_HOST_DEVICE inline uniform_int_from_to_distribution(uint64_t range, int64_t base) : range_(range), base_(base) {}
template <typename RNG>
C10_HOST_DEVICE inline T operator()(RNG* generator) const {
#ifdef FBCODE_CAFFE2
if ((
std::is_same_v<T, int64_t> ||
std::is_same_v<T, double> ||
std::is_same_v<T, float> ||
std::is_same_v<T, at::BFloat16>) && range_ >= 1ULL << 32)
#else
if (range_ >= 1ULL << 28) // allow approx 5% skew in uniform int generation using %
#endif
{
return transformation::uniform_int_from_to<T>(generator->random64(), range_, base_);
} else {
return transformation::uniform_int_from_to<T>(generator->random(), range_, base_);
}
}
private:
uint64_t range_;
int64_t base_;
};
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free