Practical DSA
Swiss Table Memory Layout
Rethink hash table memory layout for SIMD hardware by splitting metadata from payloads and extracting 7-bit hash signatures.
Practical DSA
Swiss Table SIMD Probing
Combine structure of arrays metadata with xsimd batch operations to search 16, 32, or 64 hash buckets in a single clock cycle.
Intro to C++ Programming
Creating Variables
Creating variables to store and update the data that describes our objects. We also introduce comments, allowing us to describe our code in plain language.
Intro to C++ Programming
Pointers
This lesson provides a thorough introduction to pointers in C++, covering their definition, usage, and the distinction between pointers and references
Practical DSA
Cache Coherency and False Sharing
Explore the performance cost of synchronization, how to mitigate it, and how to avoid it entirely with better algorithm design.
Practical DSA
SIMD and Automatic Vectorization
Learn how SIMD registers allow you to process multiple data points in a single instruction, unlocking the full power of each CPU core.
Practical DSA
Portable Vectorization with xsimd
Take direct control of the CPU's vector registers using xsimd. Implement batched loads, SIMD comparisons, and hardware bitmask extraction.
Practical DSA
Finding and Filtering with xsimd
Replace scalar loops and conditional branches with SIMD comparison masks, trailing zero counts, and Kernighan's bit-clearing trick.
Practical DSA
Linear and Arena Allocators
Bypass the OS and the global allocator. Build a custom linear arena allocator to implement fast memory allocation with zero fragmentation.
Managing C++ Projects Using CMake
Relationships Between Targets
Learn about target types, and how the PUBLIC, PRIVATE, and INTERFACE keywords control how properties are shared.
Managing C++ Projects Using CMake
Build Servers and Continuous Integration
Learn how to automate your build and test process with Continuous Integration (CI) and a build server. This lesson provides a guide to creating a GitHub Actions workflow for a CMake project.