Combining the incompatible, accelerating the unacceleratable, using Go assembler ☠️
summary
Shows how to speed up Go programs by writing Go assembler routines (abstract Go assembler) and using SIMD instructions, including techniques for using CPU instructions not exposed by the standard toolchain. Covers interaction with gccgo and cgo and walks through concrete code examples demonstrating these optimizations.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 1:30Go compilation
- 3:15Registers and vector instructions
- 7:51Go assembler: features and syntax
- 18:00Example: slice addition
- 22:33Contains function in assembler
- 27:25Go assembler alternatives
- 30:57Other CPU extensions
- 34:08Summary and optimization tips
- 36:13Testing assembler code
- 37:58Resources
- 38:46Q&A
related talks
46mWhat C and C++ can do and when do you need Assembly?
31m“Enough x86 Assembly to Be Dangerous”
01h 37mAn Overview of Program Optimization Techniques
01h 21mCPU optimized data structures - more fun with assembler
53mOptimizing C for Microcontrollers - Best Practices
51mHow Profile-Guided Optimization Makes Your Code Faster Without Any Code Changes
01h 27mDangerous Optimizations! in C++ - Part Deux
01h 06m“Improving Performance Through Compiler Switches..."
