BEAM There, Done That

Numerical Elixir and Machine Learning with Paulo Valente

10 snips
Mar 13, 2026
Paulo Valente, maintainer of NX and Elixir gRPC library and platform engineer at TV Labs with eight years of Elixir experience. He walks through the NX ecosystem and how defn/backends compile to CPU, GPU, or WebAssembly. They compare when to use NX versus Python, explore zero-copy Python and GPU interop, and outline NX 1.0 goals, versioning, and getting started resources.
Ask episode
AI Snips
Chapters
Books
Transcript
Episode notes
INSIGHT

NX Ecosystem Layers And Key Libraries

  • NX is a layered numerical ecosystem: core NX defines defn/deftransform, backends (EXLA, EMLX, TorchX, NXEigen) provide CPU/GPU acceleration, and higher-level libs (Axon, Bumblebee, Scholar, eVision) sit on top.
  • Paulo highlighted concrete backends: EMLX for Apple GPUs, EXLA/TorchX for CUDA, NXEigen for lightweight CPU embedding, and Bumblebee for Hugging Face model loading.
ADVICE

Train In Python Deploy With NX

  • Use NX when Elixir already fits your system and you need to add ML inference or numerical work within the BEAM process space.
  • Train models in Python for exploration, then deploy with Axon/Bumblebee or port NumPy/PyTorch code to NX for runtime on the BEAM.
ANECDOTE

TV Labs Uses NX For Real Time Video Work

  • Paulo uses NX in production at TV Labs for real-time video pre-stream calibrations and internal data analysis tooling.
  • He mentioned porting Python tools to NX after required features landed in NX 0.11 for better integration and performance.
Get the Snipd Podcast app to discover more snips from this episode
Get the app