maximum Class — pytorch Architecture
Architecture documentation for the maximum class in vec256_half.h from the pytorch codebase.
Entity Profile
Source Code
aten/src/ATen/cpu/vec/vec256/vec256_half.h lines 111–127
template <>
Vectorized<Half> inline maximum(
const Vectorized<Half>& a,
const Vectorized<Half>& b) {
__m256 a_lo, a_hi;
__m256 b_lo, b_hi;
cvtfp16_fp32(__m256i(a), a_lo, a_hi);
cvtfp16_fp32(__m256i(b), b_lo, b_hi);
auto max_lo = _mm256_max_ps(a_lo, b_lo);
auto max_hi = _mm256_max_ps(a_hi, b_hi);
auto nan_lo = _mm256_cmp_ps(a_lo, b_lo, _CMP_UNORD_Q);
auto nan_hi = _mm256_cmp_ps(a_hi, b_hi, _CMP_UNORD_Q);
// Exploit the fact that all-ones is a NaN.
auto o1 = _mm256_or_ps(max_lo, nan_lo);
auto o2 = _mm256_or_ps(max_hi, nan_hi);
return cvtfp32_fp16(o1, o2);
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free