“Go's CUDA binding: less 'paradigm shift,' more 'clever engineering.'”
What happened: A new open-source Go CUDA binding, `gocudrv`, avoids cgo. `gocudrv` loads CUDA dynamically at runtime, removing build-time dependencies. It solves thread affinity issues and achieves 434μs GPU time for a 10M vector add. `gocudrv` is open-source, supports Graphs and multi-GPU (early stage).
This Neural Toon is based on the story “Working on a cgo-free CUDA binding in Go for ML stuff Week 3 - open source [P]”.
Read our summary of the story · original source
Panel 1 – Sam: GO AND CUDA, TOGETHER! A PARADIGM SHIFT!
Panel 1 – Casey: It's `gocudrv`. A Go binding for CUDA. No Cgo.
Panel 1 – Fact: A new open-source Go CUDA binding, `gocudrv`, avoids cgo.
Panel 2 – Sam: PURE GO! TOTAL DISRUPTION OF BUILD PROCESSES!
Panel 2 – Casey: Loads `libcuda.so` at runtime. No build toolkit needed.
Panel 2 – Fact: `gocudrv` loads CUDA dynamically at runtime, removing build-time dependencies.
Panel 3 – Sam: UNBELIEVABLE SPEED! GPU PERFORMANCE UNLOCKED!
Panel 3 – Casey: Thread locking, channels. 434μs for 10M vector add.
Panel 3 – Fact: It solves thread affinity issues and achieves 434μs GPU time for a 10M vector add.
Panel 4 – Sam: THE FUTURE OF ML IS HERE! OPEN SOURCE REVOLUTION!
Panel 4 – Casey: Open source, multi-GPU support. A solid, practical tool.
Panel 4 – Fact: `gocudrv` is open-source, supports Graphs and multi-GPU (early stage).
More Neural Toons · Neural Snaps · The Neural Feed
One email a day, no spam, unsubscribe anytime.