Hacker GitHub

← All repos

google/highway

View on GitHub ↗ ★ 5,952 C++

Performance-portable, length-agnostic SIMD with runtime dispatch

107 mentions on Hacker News by 37 people: 7 stories, 100 comments · first 2020-08-04 · latest 2026-09-25

Mentions per year 107 mentions · busiest year 2023 (30)
20082026
  1. https://github.com/google/highway
    comment by genxy · 2026-09-25 · in Platform-independent SIMD in Go
  2. We recently published another: https://github.com/google/highway/blob/master/g3doc/tutorial...
    comment by janwas · 2026-09-25 · in Platform-independent SIMD in Go
  3. Would anyone be able to compare this library's design to https://github.com/google/highway ?
    comment by skavi · 2026-09-25 · in Fearless SIMD v1.0
  4. I would love to have an open source Rust SIMD library with the scope and maturity that https://github.com/google/highway brings to C++.
    comment by grokcodec · 2026-08-10 · in Rust SIMD on the GPU
  5. …manual SIMD code for every possible architecture you may target? Use a library like Highway? https://github.com/google/highway
    comment by spider-mario · 2026-07-24 · in Everyone should know SIMD
  6. There is some discussion of the possible options here: https://github.com/google/highway#strip-mining-loops
    comment by spider-mario · 2026-07-23 · in Everyone should know SIMD
  7. we make extensive use of simd at work, usually through highway: https://github.com/google/highway imo this is one of the greatest libs ever written. it handles dynamic dispatching of correct simd instructions / lane widths for various…
    comment by dupontcyborg · 2026-07-23 · in Everyone should know SIMD
  8. …or libs that's preventing it? No plans to port it. For others, this is referencing highway: https://github.com/google/highway The major limitation of Zig's vectors is that they're compile-time only. So if you're building redistributed…
    comment by mitchellh · 2026-07-22 · in Everyone should know SIMD
  9. ▲ 4
    We recommend Highway over std::simd
    story by coffeeaddict1 · 2026-06-13 · 0 comments
  10. ▲ 6
    We recommend Highway over std:SIMD
    story by ndiddy · 2026-06-13 · 1 comment
  11. …it's not public: https://groups.google.com/g/v8-s390-ports Elsewhere, some people interpreted https://github.com/google/highway/issues/1895 as meaning that Highway code does not work on z13 at all.
  12. …list of Highway ops [2]? [1]: https://gist.github.com/camel-cdr/99a41367d6529f390d25e36ca3... [2]: https://github.com/google/highway/blob/master/g3doc/quick_re...
    comment by janwas · 2026-03-14 · in RISC-V Is Sloooow
  13. …as multiversion...it is still very hard to design an interface that scales. Take Google's highway ( https://github.com/google/highway/blob/master/g3doc/quick_re... ) for example, it is the library to write portable SIMD code with dynamic…
    comment by stevefan1999 · 2025-11-06 · in The state of SIMD in Rust in 2025
  14. In C++, this can be achieved portably using the Highway library: https://github.com/google/highway (Disclaimer: I work at Google, but not on this, and I am writing this in my personal capacity.)
    comment by spider-mario · 2025-11-05 · in Vectorizing for Fun and Performance
  15. …. We recently implemented the same idea without requiring context-switch events: https://github.com/google/highway/blob/master/hwy/profiler.h...
    comment by janwas · 2025-09-14 · in Java 25's new CPU-Time Profiler
  16. :) Yes indeed, it's about 500 LOC in https://github.com/google/highway/blob/master/hwy/ops/generi... .
  17. …the intrinsic definitions themselves have in several cases had bugs. Here's one AVX-512 example: https://github.com/google/highway/commit/7da2b760c012db04103... . When using a wrapper library, these can be fixed in one spot, but every…
  18. …slow. I tried to replicate it yesterday, but noticed that vqsort is now disabled for RVV: https://github.com/google/highway/blob/400fbf20f2e40b984be12... Does highway support sorting networks for non-128-bit vector registers? When I tried…
    comment by camel-cdr · 2025-04-26 · in Fundamental flaws of SIMD ISAs (2021)
  19. …so 4 for NEON/SSE, 8 for AVX and 16 for AVX512. I can recommens lookig at the highway library: https://github.com/google/highway
    comment by camel-cdr · 2025-03-31 · in Towards fearless SIMD, 7 years later
  20. Or also getauxval? Highway has code to check for this, including that vectors are at least 128 bits: https://github.com/google/highway/blob/master/hwy/targets.cc...
    comment by janwas · 2025-03-31 · in Towards fearless SIMD, 7 years later
  21. What about Highway? https://github.com/google/highway I suppose that's C++ not C though.
    comment by wffurr · 2025-02-22 · in FFmpeg School of Assembly Language
  22. C++ does OK. Google's highway [1] Microsoft DirectXMath [2] [1] https://github.com/google/highway [2] https://github.com/microsoft/DirectXMath
    comment by npalli · 2025-01-27 · in C is not suited to SIMD (2019)
  23. I also found this looking for portable SIMD: https://github.com/google/highway
    comment by nickpsecurity · 2025-01-08 · in Expressive Vector Engine – SIMD in C++
  24. Yeah, Compare to highway as well https://github.com/google/highway
  25. …original article seems to be a translation of the excellent algorithmica site which had it in C++. https://github.com/google/highway
  26. …for their missing instructions), do you not agree that the benefit is still nonzero? [1]: https://github.com/google/highway/tree/master/hwy/contrib/so... [2]: https://github.com/Voultapher/sort-research-rs/blob/38f37eef...
  27. …such as unrolling :) [1]: https://www.reddit.com/r/cpp/comments/1gzob1g/understanding_... [2]: https://github.com/google/highway/blob/master/hwy/contrib/do...
  28. …where you write separate versions of a function and the right one is selected at runtime. https://github.com/google/highway https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Function-Multiv...
    comment by sorenjan · 2024-10-26 · in Why those particular integer multiplies?
  29. …Image viewers, Information retrieval, Machine learning, Numpy, and Robotics... (copied from: https://github.com/google/highway ) I derived the name from the CityHash, FarmHash, and then HighwayHash series, and considered that Highway would…
  30. ▲ 3
    Highway – Portable SIMD Library
    story by synergy20 · 2024-08-22 · 1 comment
  31. …CPU features :) Since many years, performance-critical libraries have used runtime/dynamic dispatch. Our github.com/google/highway intrinsics even automate this. You can write your code once and it is compiled for each instruction set, and…
    comment by janwas · 2024-08-08 · in Zen5's AVX512 Teardown and More
  32. ▲ 6
    Highway: C++ library that provides portable SIMD/vector intrinsics
    story by ingve · 2024-06-08 · 2 comments
  33. Nice :) Our github.com/google/highway also uses this technique to compile your code multiple times, once per target CPU.
  34. …stomping on subsequent elements, or in a sorting network, only updating every second element. [1] https://github.com/google/highway/tree/master/hwy/contrib/so...
  35. Nice result, congrats Justine! The bf16 dot instruction replaces 6 instructions: https://github.com/google/highway/blob/master/hwy/ops/x86_12... A 3-4x speedup vs SKX sounds quite plausible :)
  36. I believe these drawbacks are mostly solved with our github.com/google/highway library which provides portable intrinsics, reasonably documented and grouped into categories :)
  37. …DSL like Highway developed by Google [0] can help. Hopefully it'll gain traction and usage. [0] https://github.com/google/highway
    comment by charleshn · 2024-03-16 · in Algorithms for Modern Hardware
  38. …being portable across all modern CPU architectures. Below we discuss how we achieved this. [0] https://github.com/google/highway [1] https://opensource.googleblog.com/2022/06/Vectorized%20and%2... , which has an associated paper at…
    comment by jhalstead · 2024-03-01 · in JPEG XL and the Pareto Front
  39. …quantization (SFP), it's what we recommend. At 16 bit, we do bfloat16 instead of fp16 thanks to https://github.com/google/highway , even on CPU. Other quants - stay tuned. python wrapper - if you want to run the model in python I feel like…
  40. …of it less as my team than ... a team? Specifically want to call out: Jan Wassenberg (author of https://github.com/google/highway ) and I started gemma.cpp as a small project just a few months ago + Phil Culliton, Dan Zheng, and Paul Chang…
  41. …with another project and do not have any coding time for new undertakings :) The closest we have is https://github.com/google/highway/blob/master/hwy/contrib/al... but that is much simpler and less-optimized than what you are describing.
  42. Great to see SIMD used in string algorithms :) For porting, have you considered using github.com/google/highway? This allows you to write the code once using 'portable' intrinsics, and run on >20 instruction sets. Disclosure: I am the main…
  43. C++ users can enjoy Highway [1]. [1] https://github.com/google/highway/
    comment by lifthrasiir · 2024-01-24 · in From slow to SIMD: A Go optimization story
  44. …or (GPU) SIMD FWICS? NumPy does SIMD: https://numpy.org/doc/stable/reference/simd/ google/highway: https://github.com/google/highway xtensor-stack/xsimd: https://github.com/xtensor-stack/xsimd GH topics > HashMap:…
    comment by westurner · 2023-12-05 · in GDlog: A GPU-accelerated deductive engine
  45. …and I even once attempted to recreate it in Rust, but it is still a bit far from my ideal. [1] https://github.com/google/highway
    comment by lifthrasiir · 2023-11-28 · in Designing a SIMD Algorithm from Scratch
  46. …only path you see to default? Compare the activity level of https://github.com/VcDevel/std-simd vs https://github.com/google/highway . As to open-source usage, after years of std::experimental, I see <200 search hits [1], vs >400 for…
  47. …has by now sailed on this? [1]: https://en.cppreference.com/w/cpp/header/experimental/simd [2]: https://github.com/google/highway/blob/master/g3doc/quick_re...
  48. …to dynamically detect the hardware and dispatch it to the hardware like the project you shared ( https://github.com/google/highway ). So technically it sounds feasible but all of the languages like Zig, C++ and Rust picked a simpler…
  49. …256-bit, 512-bit, or more. (SVE supports up to 1024-bit, RVV - up to 65536-bit) There is Highway ( https://github.com/google/highway ) however, that does support dynamically-sized SIMD.
  50. Highway ( https://github.com/google/highway ), Google's SIMD library, lets you write length-agnostic SIMD code. It has excellent support for a wide range of targets, including both RISC-V and Arm vector extensions.