CppArm Meetup 1: SIMD Computing, x86 AVX2, ARM Neon and String Matching
Ash Vardanian
0:00 / 0:00
CppArm Meetup 1: SIMD Computing, x86 AVX2, ARM Neon and String Matching
1 260 просмотров · 5 лет назад
Ash Vardanian
166 подписчиков
1 260 просмотров · 5 лет назад
It's 2020 and everyone knows, that if you are doing some serious number crunching - you should do it on the GPU. But what if you can't? If you don't have one? Or the data is too big to fit into VRAM? Or if latency is more important for your application than bandwidth? The answer is - SIMD CPU instructions. We will talk about using them in production, will compare ARM (Neon) and x86 (AVX2) and will benchmark a couple of toy examples to measure the impact of "speculative out-of-order execution" on modern CPUs!
Most of the talk is based on the https://github.com/ashvardanian/CppBe... repository, so you can return to it at any time and redo the benchmarks for yourself on your own hardware.
The Speaker.
Ashot grew up in St. Petersburg, studied Astrophysics in SPbSTU, and does programming since childhood. These days he designs new algorithms and software products and invests in tech companies worldwide. He founded Unum over 5 years ago and now he moved to Armenia to start an R&D team here.
The Timeline.
2:20 Intro
16:56 Substring Search
31:50 SIMD Intrinsics
41:34 Speculative Execution
59:08 Tooling
1:03:39 Pitfalls & Recommendations
1:25:02 Firechat
The Links.
Code: https://github.com/ashvardanian/CppBe...
Intel Intrinsics Guide: https://software.intel.com/sites/land...
ARM Neon Intrinsics Guide: https://developer.arm.com/architectur...
Blog by Wojciech Muła: https://0x80.pl/articles/index.html
Blog by Daniel Lemire: https://lemire.me/blog/
Armenian C++ Community on Telegram: https://t.me/cpparm