Skip to content

Commit 9d38b8d

Browse files
Nicoshevmeta-codesync[bot]
authored andcommitted
Remove AVX compilation on aarch64 (#5065)
Summary: X-link: https://github.com/facebookresearch/FBGEMM/pull/2072 Pull Request resolved: #5065 We are removing AVX2/AVX512 compilation of fbgemm for aarch64. These modules are no longer used, thus removing them should decrease build time and code size. Reviewed By: mcfi, YifanYuan3 Differential Revision: D85603930 fbshipit-source-id: 42ed869c5ba406bdc1430d8e94b3726440eeb904
1 parent f849dcd commit 9d38b8d

18 files changed

+92
-37
lines changed

include/fbgemm/Fbgemm.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -616,7 +616,7 @@ class FBGEMM_API PackWeightsForConv {
616616
return W_im2col_packed_;
617617
}
618618

619-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
619+
#if !defined(__aarch64__)
620620
std::shared_ptr<PackedDepthWiseConvMatrix> getPackedWForDepthwise() {
621621
return W_dw_packed_;
622622
}
@@ -672,7 +672,7 @@ class FBGEMM_API PackWeightsForConv {
672672
const conv_param_t<SPATIAL_DIM> conv_param_;
673673
// Packed weights if we use im2col based convolution implementation
674674
std::shared_ptr<PackBMatrix<T, accT>> W_im2col_packed_;
675-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
675+
#if !defined(__aarch64__)
676676
// Packed weights if we use depthwise convolution implementation
677677
std::shared_ptr<PackedDepthWiseConvMatrix> W_dw_packed_;
678678
#endif // __aarch64__

include/fbgemm/FbgemmConvert.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ FloatToBfloat16_simd(const float* src, bfloat16* dst, size_t size);
4747
FBGEMM_API void
4848
Bfloat16ToFloat_simd(const bfloat16* src, float* dst, size_t size);
4949

50+
#if !defined(__aarch64__)
5051
/**
5152
* @brief AVX2 implementation to convert fp32 numbers to bf16 numbers.
5253
*
@@ -58,10 +59,8 @@ FloatToBfloat16_avx2(const float* src, bfloat16* dst, size_t size);
5859
* @brief AVX512 implementation to convert fp32 numbers to bf16 numbers.
5960
*
6061
*/
61-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
6262
FBGEMM_API void
6363
FloatToBfloat16_avx512(const float* src, bfloat16* dst, size_t size);
64-
#endif
6564

6665
/**
6766
* @brief AVX2 implementation to convert bf16 numbers to fp32 numbers.
@@ -74,7 +73,6 @@ Bfloat16ToFloat_avx2(const bfloat16* src, float* dst, size_t size);
7473
* @brief AVX512 implementation to convert bf16 numbers to fp32 numbers.
7574
*
7675
*/
77-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
7876
FBGEMM_API void
7977
Bfloat16ToFloat_avx512(const bfloat16* src, float* dst, size_t size);
8078
#endif
@@ -124,6 +122,7 @@ Float16ToFloat_simd(const float16* src, float* dst, size_t size);
124122
* @brief AVX2 implementation to convert fp32 numbers to fp16 numbers.
125123
*
126124
*/
125+
#if !defined(__aarch64__)
127126
FBGEMM_API void FloatToFloat16_avx2(
128127
const float* src,
129128
float16* dst,
@@ -134,7 +133,6 @@ FBGEMM_API void FloatToFloat16_avx2(
134133
* @brief AVX512 implementation to convert fp32 numbers to fp16 numbers.
135134
*
136135
*/
137-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
138136
FBGEMM_API void FloatToFloat16_avx512(
139137
const float* src,
140138
float16* dst,
@@ -152,6 +150,7 @@ FBGEMM_API void FloatToFloat16_sve2(
152150
size_t size,
153151
bool do_clip = false);
154152

153+
#if !defined(__aarch64__)
155154
/**
156155
* @brief AVX2 implementation to convert fp16 numbers to fp32 numbers.
157156
*
@@ -163,7 +162,6 @@ Float16ToFloat_avx2(const float16* src, float* dst, size_t size);
163162
* @brief AVX512 implementation to convert fp16 numbers to fp32 numbers.
164163
*
165164
*/
166-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
167165
FBGEMM_API void
168166
Float16ToFloat_avx512(const float16* src, float* dst, size_t size);
169167
#endif

include/fbgemm/FbgemmEmbedding.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ FBGEMM_API bool EmbeddingSpMDMBlockSize1_(
349349
bool use_offsets = true,
350350
bool is_bf16 = false);
351351

352-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
352+
#if !defined(__aarch64__)
353353
template <typename IndexType, bool HAS_WEIGHTS>
354354
void compressed_indices_remap_avx512(
355355
std::int32_t offsets_numel,

include/fbgemm/FbgemmI8DepthwiseAvx2.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
#pragma once
1010

11+
#if !defined(__aarch64__)
12+
1113
#include <cstdint>
1214
#include "fbgemm/ConvUtils.h"
1315
#include "fbgemm/FbgemmBuild.h"
@@ -110,3 +112,5 @@ FBGEMM_API void depthwise_3d_same_pad(
110112
int num_threads = 1);
111113

112114
} // namespace fbgemm
115+
116+
#endif // !defined(__aarch64__)

include/fbgemm/FbgemmSparse.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ void SparseDenseMMAvx2(
166166
int ldc,
167167
bool accum = false);
168168

169-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
169+
#if !defined(__aarch64__)
170170
void SparseDenseMMAvx512(
171171
int M,
172172
int N,

include/fbgemm/OutputProcessing-inl.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ ReQuantizeOutput<FUSE_RELU, Q_GRAN, BIAS_TYPE, outT, inT, nextOPType>::f(
125125
}
126126
}
127127

128-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
128+
#if !defined(__aarch64__)
129129

130130
} else if constexpr (
131131
instSet == inst_set_t::avx2 || instSet == inst_set_t::avx512) {
@@ -249,7 +249,7 @@ inline int ReQuantizeForFloat<FUSE_RELU, Q_GRAN, outT, inT, nextOPType>::f(
249249
}
250250
}
251251

252-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
252+
#if !defined(__aarch64__)
253253
} else if constexpr (
254254
instSet == inst_set_t::avx2 || instSet == inst_set_t::avx512) {
255255
bool b_symmetric =

include/fbgemm/QuantUtilsAvx2.h

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,13 @@ struct FBGEMM_API RequantizationParams {
5252
TensorQuantizationParams target_qparams;
5353
};
5454

55+
/// @ingroup fbgemm-quant-utils-avx2
56+
///
57+
/// @brief Find the min and max value in a float matrix.
58+
void FBGEMM_API FindMinMax(const float* m, float* min, float* max, int64_t len);
59+
60+
#if !defined(__aarch64__)
61+
5562
////////////////////////////////////////////////////////////////////////////////
5663
// Utility functions
5764
////////////////////////////////////////////////////////////////////////////////
@@ -77,11 +84,6 @@ void FusedQuantizeDequantizeAvx2(
7784
/// <a href="https://www.jstatsoft.org/v08/i14/paper">this paper</a>.
7885
uint32_t FBGEMM_API Xor128();
7986

80-
/// @ingroup fbgemm-quant-utils-avx2
81-
///
82-
/// @brief Find the min and max value in a float matrix.
83-
void FBGEMM_API FindMinMax(const float* m, float* min, float* max, int64_t len);
84-
8587
void RequantizeFixedPointAvx2(
8688
const std::int32_t* src,
8789
std::uint8_t* dst,
@@ -176,4 +178,6 @@ void Fused8BitRowwiseQuantizedSBFloatToFloatOrHalfAvx2(
176178
int input_columns,
177179
OutputType* output);
178180

181+
#endif // !defined(__aarch64__)
182+
179183
} // namespace fbgemm

include/fbgemm/QuantUtilsAvx512.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#pragma once
1010

1111
#include "Types.h"
12-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
12+
#if !defined(__aarch64__)
1313

1414
#include <cstdint>
1515
#include "./FbgemmBuild.h" // @manual

src/FbgemmBfloat16Convert.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ namespace fbgemm {
2929
void FloatToBfloat16_simd(const float* src, bfloat16* dst, size_t size) {
3030
// Run time CPU detection
3131
if (cpuinfo_initialize()) {
32-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
32+
#if !defined(__aarch64__)
3333
if (fbgemmHasAvx512Support()) {
3434
FloatToBfloat16_avx512(src, dst, size);
3535
} else if (fbgemmHasAvx2Support()) {
@@ -48,7 +48,7 @@ void FloatToBfloat16_simd(const float* src, bfloat16* dst, size_t size) {
4848
void Bfloat16ToFloat_simd(const bfloat16* src, float* dst, size_t size) {
4949
// Run time CPU detection
5050
if (cpuinfo_initialize()) {
51-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
51+
#if !defined(__aarch64__)
5252
if (fbgemmHasAvx512Support()) {
5353
Bfloat16ToFloat_avx512(src, dst, size);
5454
} else if (fbgemmHasAvx2Support()) {

src/FbgemmFP16.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ namespace {
3535
// the restrictions of ymm register numbers (16).
3636
constexpr kernel_array_t<float16> kernel_fp16_avx2 = {
3737
nullptr,
38-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
38+
#if !defined(__aarch64__)
3939
gemmkernel_1x2_Avx2_fp16_fA0fB0fC0,
4040
gemmkernel_2x2_Avx2_fp16_fA0fB0fC0,
4141
gemmkernel_3x2_Avx2_fp16_fA0fB0fC0,
@@ -79,7 +79,7 @@ constexpr kernel_array_t<float16> kernel_fp16_neon = {
7979

8080
constexpr kernel_array_t<float16> kernel_fp16_avx512_256 = {
8181
nullptr,
82-
#if defined(FBGEMM_FBCODE) || !defined(__aarch64__)
82+
#if !defined(__aarch64__)
8383
gemmkernel_1x2_Avx2_fp16_fA0fB0fC0,
8484
gemmkernel_2x2_Avx2_fp16_fA0fB0fC0,
8585
gemmkernel_3x2_Avx2_fp16_fA0fB0fC0,

0 commit comments

Comments
 (0)