Nx — это библиотека для численных вычислений, разработанная для использования на виртуальной машине Erlang/BEAM и тесно интегрируемая с экосистемой языка Elixir. Она предоставляет абстракции для работы с многомерными массивами (тензорами), базовыми линейно-алгебраическими операциями и вычислениями с использованием как центрального процессора (CPU), так и ускорителей, когда это поддерживается. Nx ориентирована на выражение численных задач в функциональном стиле, сохраняя свойства конкурентности и отказоустойчивости, характерные для платформы BEAM.
Проект возник как ответ на потребность в инструменте для научных и машинно-обучающих вычислений в экосистеме Erlang/Elixir, где традиционные библиотеки на C/C++ или Python тяжело интегрируются с моделью акторов и легковесных процессов. Nx обеспечивает базовый набор операций для создания и трансформации массивов, автоматического дифференцирования и компиляции вычислительных выражений в оптимизированные подцелевые бэкэнды представления. В документации и реализациях уделяется внимание совместимости с другими библиотеками в сообществе Elixir для построения моделей и конвейеров обработки данных.
- Многомерные массивы: поддержка тензоров различной размерности с явным указанием типов элементов и размеров.
 - Базовые операции: арифметические, матричные и поэлементные операции, агрегации и редукции.
 - Автоматическое дифференцирование: инструменты для вычисления градиентов и производных, применимые в задачах оптимизации и обучения моделей.
 - Бэкэнды исполнения: абстракция для работы с различными механизмами выполнения (локальный CPU, внешние ускорители или компилируемые представления).
 - Компиляция выражений: преобразование высокоуровневых вычислительных графов в оптимизированные планы выполнения для выбранного бэкэнда.
 - Интеграция с BEAM: проект учитывает модель многозадачности, лёгкие процессы и устойчивость к ошибкам, типичные для среды Erlang/Elixir.
 - Функциональный интерфейс: декларативное описание вычислений, сочетающееся с возможностью последовательного и параллельного исполнения.
 - Совместимость с экосистемой: адаптеры и вспомогательные инструменты для связи с библиотеками визуализации, загрузки данных и построения моделей на Elixir.