SIMD & Go
Speed and software should go hand in hand, but with Moore's Law coming to an end and CPU clock speeds remaining steady over the last 20 years, software engineers need to turn to new techniques to improve the efficiency of their code. In this episode, Matt and Angelica and joined by Clement Jean to discuss one of these techniques: SIMD. They'll discuss what SIMD is, how it can be used from languages like Go, the various proposals to get better support for SIMD directly into Go and its compiler, and a bunch of other related topics.
Supporters get even more conversation and higher quality audio! Get access by signing up at https://fallthrough.fm/subscribe.
Thanks for tuning in and happy listening!
Notes:
Supporters get even more conversation and higher quality audio! Get access by signing up at https://fallthrough.fm/subscribe.
Thanks for tuning in and happy listening!
Notes:
- ARM Neon
- SVE
- SSE
- AVX, AVX-256, AVX-512
- Parsing Gigabytes of JSON Per Second
- Proposal #67520
- Proposal #73787
- Compiler Explorer
- Designing Data Intensive Applications, Chapter 4
Table of Contents:
- Prologue (03:36)
- Chapter 1: What is SIMD? (04:56)
- Chapter 2: SIMD in Go (13:20)
- Chapter 3: When should one use SIMD? (18:43)
- Chapter 4: Clement's journey to SIMD [Supporter Only] (21:19)
- Chapter 5: SIMD Intrinsics in Go (21:32)
- Chapter 6: SIMD in other languages (35:47)
- Chapter 7: Measuring SIMD performance (43:00)
- Chapter 8: Data Oriented Design [Supporter Only] (52:52)
- Chapter 9: SIMD-JSON (52:59)
- Chapter 10: Protocol Buffers, gRPC, and cURL [Supporter Only] (58:11)
- Epilogue (01:01:50)
Socials:
- (03:36) - Prologue
- (04:56) - Chapter 1: What is SIMD?
- (13:20) - Chapter 2: SIMD in Go
- (18:43) - Chapter 3: When should one use SIMD?
- (21:19) - Chapter 4: Clement's journey to SIMD [Supporter Only]
- (21:32) - Chapter 5: SIMD Intrinsics in Go
- (35:47) - Chapter 6: SIMD in other languages
- (43:00) - Chapter 7: Measuring SIMD performance
- (52:52) - Chapter 8: Data Oriented Design [Supporter Only]
- (52:59) - Chapter 9: SIMD-JSON
- (58:11) - Chapter 10: Protocol Buffers, gRPC, and cURL [Supporter Only]
- (01:01:50) - Epilogue
Creators and Guests

Host
Matthew Sanabria
Matthew is an engineering leader focused on building reliable, scalable, and observable systems. Matthew is known for using his breadth and depth of experience to add value in minimal context situations and help great people become great engineers through mentoring. Matthew serves the Go community as a member of GoBridge. In his spare time, Matthew spends time with his family, helps grow his wife's chocolate business, works on home improvement projects, and reads technical resources to learn and tinker.
