Ryzen Optimization

Notes from a talk by Ken Mitchell of AMD Have to pay attention to cross core memory latencies in Threadripper Improvements in Windows Insider Program for TR memory interconnects Instruction set evolution: Zen+ has a ton of new features—pay attention to CLZERO, SSE3 Avoid mixing legacy SIMD and AVX instructions (has a penalty for switching)—move … Continue reading Ryzen Optimization

Advertisements

Understanding & Tracing Numerical Errors in C++

Notes on a talk by Gino van den Bergen (@dtecta) Fixed point numbers snap to a regular grid; in floating point numbers, the rounding error increases the farther you get from zero IEEE 754 single-precision (32-bit) float is: 1 bit for sign 8 bits for the exponent 23 bits for the fraction (-1)^sign * 1.fraction … Continue reading Understanding & Tracing Numerical Errors in C++

Benchmarks of Cache-Friendly Data Structures in C++

Suppose you're a savvy C++ developer who knows all about data-oriented design and the importance of optimizing for cache locality if you want a prayer of running fast on modern hardware. Now suppose you want to go beyond basics—"just use std::vector" is a good starting point, but you want more! I'm going to go over … Continue reading Benchmarks of Cache-Friendly Data Structures in C++

Conference Talk Playlists for C++ & Game Developers

I’ve put together a number of conference talk playlists for my own “professional development.” This is a list curated by going through hundreds of talks in the GDC and CppCon archives. I’ve tried to keep overlap between lists to a minimum. I’ve not watched everything (erm… obviously!), but in cases where I have watched a talk, … Continue reading Conference Talk Playlists for C++ & Game Developers

Esoteric Data Structures and Where to Find Them

This is a summary of the CppCon 2017 talk given by Allan Deutsch. Slot map An unordered, associative container similar to hash map Assigns items a unique identifier (unlike a hash map, where you provide an identifier) Similar to a pool allocator, but with a map-like interface Advantages over hash map: True constant time lookup, erase, … Continue reading Esoteric Data Structures and Where to Find Them

Notes from Andre Alexandrescu’s Modern C++ Design

Here are my highlights from Andre Alexandrescu's Modern C++ Design: Generic Programming and Design Patterns Applied. Policy-Based Class Design Overview: Policy-based class design fosters assembling a class with complex behavoir out of many little classes (called policies), each of which takes care of only one behavioral or structural aspect. The challenge in any design is … Continue reading Notes from Andre Alexandrescu’s Modern C++ Design