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 Tensor struct in Rust that wraps data and gradient history, replacing the current Vec<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 PyO3 bindings 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_core to use a flattened 1D vector representation for N-dimensional tensors to maximize cache hits.
  • SIMD Kernels: Implementation of custom unsafe kernels using std::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-kafka that 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-compose setup 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)