Перейти к содержимому

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