[Hardware][CPU][bugfix] Fix half dtype support on AVX2-only target (#10108)
Signed-off-by: jiang1.li <jiang1.li@intel.com>
This commit is contained in:
parent
0dfba97b42
commit
a6f332d0d9
@ -93,7 +93,7 @@ if (AVX512_FOUND AND NOT AVX512_DISABLED)
|
|||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
oneDNN
|
oneDNN
|
||||||
GIT_REPOSITORY https://github.com/oneapi-src/oneDNN.git
|
GIT_REPOSITORY https://github.com/oneapi-src/oneDNN.git
|
||||||
GIT_TAG v3.5.3
|
GIT_TAG v3.6
|
||||||
GIT_PROGRESS TRUE
|
GIT_PROGRESS TRUE
|
||||||
GIT_SHALLOW TRUE
|
GIT_SHALLOW TRUE
|
||||||
)
|
)
|
||||||
|
|||||||
@ -432,6 +432,16 @@ struct FP32Vec16 : public Vec<FP32Vec16> {
|
|||||||
explicit FP32Vec16(const FP32Vec8 &data)
|
explicit FP32Vec16(const FP32Vec8 &data)
|
||||||
: reg_low(data.reg), reg_high(data.reg) {}
|
: reg_low(data.reg), reg_high(data.reg) {}
|
||||||
|
|
||||||
|
explicit FP32Vec16(const FP16Vec16 &v) {
|
||||||
|
__m128i low = _mm256_extractf128_si256(v.reg, 0);
|
||||||
|
__m128i high = _mm256_extractf128_si256(v.reg, 1);
|
||||||
|
|
||||||
|
reg_low = _mm256_cvtph_ps(low);
|
||||||
|
reg_high = _mm256_cvtph_ps(high);
|
||||||
|
}
|
||||||
|
|
||||||
|
explicit FP32Vec16(const FP16Vec8 &v) : FP32Vec16(FP32Vec8(v)) {}
|
||||||
|
|
||||||
explicit FP32Vec16(const BF16Vec16 &v) {
|
explicit FP32Vec16(const BF16Vec16 &v) {
|
||||||
__m128i low = _mm256_extractf128_si256(v.reg, 0);
|
__m128i low = _mm256_extractf128_si256(v.reg, 0);
|
||||||
__m128i high = _mm256_extractf128_si256(v.reg, 1);
|
__m128i high = _mm256_extractf128_si256(v.reg, 1);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user