PyGo: A Deep Learning Framework Where Go Calls Python Calls C++
PyGo: A Deep Learning Framework Where Go Calls Python Calls C++
[Project] PyGo - embedding CPython inside a Go process to build a deep learning framework.
I've been working on something a bit unusual: a deep learning framework where Go is the top-level API, Python handles autograd and the model zoo, and C++/CUDA does the raw compute.
The architecture looks like this:
Go API โ CGo bridge โ CPython (embedded) โ pybind11 โ CUDA/AVX-512 kernels
The key insight: instead of a Python sidecar in every pod, CPython runs inside the Go binary. Tensors live in shared memory - zero-copy across all three layers.
Why Go on top?
Go is already running most ML infrastructure (K8s, Prometheus, etcd). PyGo makes models first-class citizens there, without rewriting your ops stack. Goroutines make dynamic batching trivial.
Current state
- LLaMA-3, GPT-2, BERT, ViT, Whisper partially implemented
- Flash Attention v2, GPTQ/AWQ quantisation
- FSDP, DPO, SFT trainers
Early stage - looking for Go + C++/CUDA contributors.
The main unsolved problem is CGo call overhead at the tensor boundary. If anyone has experience embedding CPython in a Go process, I'd love to talk.
Looking for core contributors - especially Go devs with CGo experience, Python autograd engineers, and C++/CUDA kernel writers.
Interested in joining? Email: ami***********@gmail.com
Comments
No comments yet. Start the discussion.