GSoC 2026 Project Ideas
Our goal for GSoC 2026 is to evolve our prototypes into production-grade systems by solving hard engineering problems in autograd engines, SIMD optimization, and distributed stream processing.
1. Etna: Dynamic Autograd Engine (The "Graph" Upgrade)
Currently, etna_core relies on a rigid, sequential list of layers
(Vec<LayerWrapper>), making it impossible to build modern non-linear
architectures like ResNets (which need skip connections), Transformers, or RNNs. This
project involves a fundamental rewrite of the Etna core to replace manual list-based
backpropagation with a define-by-run Automatic Differentiation (Autograd)
engine. The student will implement a "Tape-based" gradient tracking system in
Rust, similar to PyTorch's backend.
Project Scope
The primary objective is the full integration of a define-by-run autograd engine into Etna.
This entails implementing the core Tensor struct to wrap data and gradient
history, constructing a Wengert list (Tape) for dynamic operation recording, and completely
replacing the existing SimpleNN implementation. Furthermore, the
PyO3 bindings must be updated to expose this new Graph API, enabling the
definition of complex models (such as ResNets) in Python while maintaining efficient
execution in Rust.
Expected Outcomes
- Tensor Core: Implementation of a
Tensorstruct in Rust that wraps data and gradient history, replacing the currentVec<Vec<f32>>implementation. - Autograd Engine: A fully functional Wengert list (Tape) implementation that records operations (MatMul, Add, ReLU, Softmax) and executes backward passes dynamically.
- Complex Architectures: Proof-of-concept implementation of a ResNet Block and a Transformer Attention Head using the new engine.
- Python Integration: Updated
PyO3bindings that expose the new Graph API to Python, allowing users to define complex models in Python that execute efficiently in Rust.
Skills
Rust (Intermediate/Advanced), Graph Theory, Calculus (Chain Rule), PyO3
Difficulty
Hard
Size
350 Hours
Mentors
Aamod Kumar (aamoddev23@gmail.com)
Soham Gore (acad.soham@gmail.com)
2. Etna: SIMD-Accelerated Tensor Backend (The "Speed" Upgrade)
Etna is designed for high-performance machine learning, but the current implementation
relies on standard Rust iterators (input.iter().map(...)). While safe, this
approach fails to utilize CPU vectorization (AVX2/AVX-512) and suffers from poor cache
locality due to the nested Vec<Vec<f32>> memory layout. This
project focuses on pure performance engineering to replace the memory backend with a
flattened, contiguous array structure and implement SIMD (Single Instruction,
Multiple Data) kernels.
Project Scope
This project necessitates refactoring etna_core to utilize a flattened 1D
vector representation for N-dimensional tensors, thereby maximizing cache hits. The central
task involves writing custom unsafe Rust kernels using std::arch
intrinsics (AVX2/AVX-512) for critical operations such as Dot Product and Matrix
Multiplication. Additionally, Rayon must be integrated to parallelize operations across
mini-batches to ensure optimal core utilization, with the resulting speedup validated
through a comprehensive benchmark suite.
Expected Outcomes
- Contiguous Memory Layout: Refactoring
etna_coreto use a flattened 1D vector representation for N-dimensional tensors to maximize cache hits. - SIMD Kernels: Implementation of custom
unsafekernels usingstd::arch(AVX2/AVX-512) for critical operations: Dot Product, Matrix Multiplication, and Element-wise addition/activation. - Parallelism: Integration of Rayon to parallelize operations across mini-batches, ensuring 100% core utilization.
- Benchmark Suite: A comprehensive benchmark report comparing Etna v1 (Iterators) vs. Etna v2 (SIMD) vs. NumPy/PyTorch CPU.
Skills
Unsafe Rust, SIMD/Intrinsics, Performance Engineering, Benchmarking, Linear Algebra
Difficulty
Hard
Size
350 Hours
Mentors
Aamod Kumar (aamoddev23@gmail.com)
Soham Gore (acad.soham@gmail.com)
3. Watchdog: Streaming Drift Detection with Kafka
Currently, etsi-watchdog operates strictly on batch data (static CSVs or
DataFrames). To support modern MLOps pipelines, it must be capable of monitoring
high-throughput, real-time data streams without manual intervention. This project will
extend Watchdog to support real-time streaming drift detection by
integrating with Apache Kafka.
Project Scope
The goal is to build a robust production system that transforms Watchdog into a live
monitoring sentinel. This involves implementing a Kafka consumer to ingest feature streams
and developing an efficient "sliding window" engine (Tumbling/Hopping windows) to calculate
drift metrics incrementally. To ensure fault tolerance, Redis or
RocksDB must be integrated to persist window state, preventing data loss
during service restarts. The final solution is to be packaged within a production-ready
docker-compose environment.
Expected Outcomes
- Kafka Consumer: A robust, fault-tolerant consumer module using
confluent-kafkathat ingests feature streams. - Windowing Engine: Implementation of Tumbling and Hopping windows that maintain statistical state in memory.
- State Persistence: Integration with Redis or RocksDB to persist window state, ensuring data is not lost during service restarts.
- Docker Deployment: A production-ready
docker-composesetup containing Kafka, Zookeeper, Redis, and the Watchdog service.
Skills
Python, Apache Kafka, Async I/O, Distributed Systems, Docker
Difficulty
Medium
Size
175 Hours
Mentors
Aamod Kumar (aamoddev23@gmail.com)
Soham Gore (acad.soham@gmail.com)