Update to Highway 1.2 for topology/VQSelect

Also fix unused-warning in compress-inl.

PiperOrigin-RevId: 639116915
This commit is contained in:
Jan Wassenberg 2024-05-31 12:27:42 -07:00 committed by Copybara-Service
parent 5feacf120c
commit a44cbdadc2
6 changed files with 9 additions and 19 deletions

View File

@ -22,7 +22,7 @@ set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
FetchContent_Declare(highway GIT_REPOSITORY https://github.com/google/highway.git GIT_TAG da250571a45826b21eebbddc1e50d0c1137dee5f EXCLUDE_FROM_ALL)
FetchContent_Declare(highway GIT_REPOSITORY https://github.com/google/highway.git GIT_TAG 457c891775a7397bdb0376bb1031e6e027af1c48 EXCLUDE_FROM_ALL)
FetchContent_MakeAvailable(highway)
## Note: absl needs to be installed by sentencepiece. This will only happen if

View File

@ -15,9 +15,8 @@ http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "ht
http_archive(
name = "hwy",
urls = ["https://github.com/google/highway/archive/refs/tags/1.1.0.zip"],
integrity = "sha256-zkJX2SwL4wQ0nHMsURW7MDLEf43vFSnqhSUsUM6eQmY=",
strip_prefix = "highway-1.1.0",
urls = ["https://github.com/google/highway/archive/refs/tags/1.2.0.zip"],
integrity = "sha256-fbtKAGj5hhhBr5Bggtsrj4aIodC2OHb1njB8LGfom8A=", strip_prefix = "highway-1.2.0",
)
http_archive(

View File

@ -244,10 +244,6 @@ struct CompressTraits<hwy::bfloat16_t> {
VF32 sum2 = Zero(df32);
VF32 sum3 = Zero(df32);
const hn::RebindToUnsigned<decltype(df32)> du32;
using VU32 = hn::VFromD<decltype(du32)>;
const VU32 odd = Set(du32, 0xFFFF0000u);
for (size_t i = 0; i < num; /* i += 2 * N */) {
const auto interleaved0 = hn::LoadU(dbf16, in + in_ofs + i);
const VF32 ae0 = Load(df32, vec_aligned + i);

View File

@ -161,12 +161,8 @@ class DistortionStats {
std::vector<float> weights(l1_); // copy so we can modify
const float median = [&weights]() {
const size_t mid = weights.size() / 2;
// We just want the median; partial sort is faster if available (v1.2).
#if HWY_MAJOR > 1 || HWY_MINOR >= 2
// We just want the median; partial sort is faster.
hwy::VQSelect(weights.data(), weights.size(), mid, hwy::SortAscending());
#else
hwy::VQSort(weights.data(), weights.size(), hwy::SortAscending());
#endif
return weights[mid];
}();
weights = l1_; // restore original order

View File

@ -637,13 +637,9 @@ class SfpCodec {
const hn::Repartition<uint8_t, DBF> d8;
V8 lo, hi;
DecBytes(d8, packed, lo, hi);
#if HWY_MAJOR > 1 || HWY_MINOR >= 2
// (Supported since Highway 1.2)
even = hn::BitCast(dbf, hn::InterleaveEven(d8, lo, hi));
odd = hn::BitCast(dbf, hn::InterleaveOdd(d8, lo, hi));
#else
even = hn::BitCast(dbf, hn::OddEven(hn::DupEven(hi), lo));
odd = hn::BitCast(dbf, hn::OddEven(hi, hn::DupOdd(lo)));
#endif
}
template <class DF, HWY_IF_F32_D(DF),

View File

@ -33,7 +33,10 @@
#include "hwy/highway.h"
#include "hwy/per_target.h"
#include "hwy/profiler.h"
#include "hwy/timer.h"
#if (!defined(HWY_VERSION_LT) || HWY_VERSION_LT(1, 2)) && !HWY_IDE
#error "Please update to version 1.2 of github.com/google/highway."
#endif
static constexpr bool kVerboseLogTokens = false;