Полный текст

🔥 PromeTorch — свой PyTorch с нуля за 5 недель🔗 GitHub: github.com/barometech/PromeTorchОдин разработчик. Россия. C++17/CUDA. 137 000 строк. Нативно собирается и работает на Эльбрус E8C2 (VLIW), НТЦ Модуль NM Card Mini и NVIDIA A100.━━━━━━━━━━━━━━━━━━━━TL;DR для простых людей:Если коротко — это альтернатива PyTorch. На ней можно обучать нейросети и запускать LLM. Главное: работает на российских чипах. Не эмуляция, не обёртка — нативная сборка, верифицированная на железе.TL;DR для спецов:~35–45% практической площади PyTorch, runtime-verified на реальном железе. Real BFS autograd (не trace-based), 119 backward functions, forward-mode AD, vmap, double backward, gradient checkpointing, hooks. 16 оптимизаторов, 16 LR schedulers, 64+ NN модулей. 720+ gtest.━━━━━━━━━━━━━━━━━━━━📊 Inference на A100-SXM4-40GB (Ollama-compatible)qwen3:4b 82.6 tok/s (50% от Ollama)gemma3:4b 81.4 tok/s (56%)deepseek-r1:8b 51.1 tok/s (40%)10-мин stress: 46.5 tok/s ±0.19. Peak 25.4 GB VRAM / 135 W.📊 Training на CPU vs PyTorch 2.6 (10 задач)Все MNIST — match within 0.5pp. LSTM seq cls +1.56pp. VAE MNIST 50 эпох — на 0.35 nats tighter чем PyTorch на identical arch.📊 Российское железо- Эльбрус E8C2 — production, MNIST 6.1× быстрее PyTorch 2.7.1 на этой задаче, EML_MT BLAS 1840 GFLOPS (92% пика), NUMA-aware, 4 процесса × 8 ядер Local SGD. 38/38 тестов.- NM Card Mini K1879VM8YA — emulator production + 1-core real, MNIST MLP 88.94% на Q16.16 fixed-point. 32/32 тестов.- NM Quad (4×NM6408, 64 NMC4) — 16 cores stable, 100× SIMD.- Байкал-М/С — cross-compile готов.🧩 СтекЯдро: c10 (Allocator/Device/Storage/TensorImpl) + ATen ~150 tensor ops. Dtype dispatch: FP32/64, Half, BFloat16, FP8 e4m3fn/e5m2, Complex, Bool, int8-64.Autograd: real BFS engine, 119 backward functions, register_hook, anomaly detection, create_graph=True, forward-mode AD (dual numbers + JVP), single-axis bit-exact vmap.NN (64+): Linear/Bilinear/LazyLinear, Conv1d/2d/3d + ConvTranspose2d, 20+ активаций, BatchNorm/LayerNorm/RMSNorm/GroupNorm/InstanceNorm, RNN/LSTM/GRU, TransformerEncoder/Decoder/MultiheadAttention, 12 loss functions (включая полный CTC Graves DP), PIR architecture (Mamba-родственник).Optim: SGD, Adam, AdamW, RMSprop, Adagrad, Adadelta, Adamax, AdamKiller, ASGD, Lion, SophiaG, LAMB, Adafactor, NAdam, RAdam, LBFGS + ParamGroups + EMA + clip_grad.Distributed: real TCP DDP, FSDP/ZeRO-3 bit-exact, TensorParallel, Pipeline (GPipe + 1F1B), DDP.no_sync, ZeRO-Offload.Export/interop: ONNX (zero-dep manual protobuf, проходит onnx.checker), MLIR (tosa + linalg), torch.jit.compile (trace + fusion + C++ codegen), bi-directional .pt I/O.Shims: HuggingFace (AutoModel.from_pretrained для Bert/GPT2/Llama + safetensors), torchvision, torchaudio (STFT max |err| 1.79e-7), torchtext, Lightning Trainer.Serving — PromeServe: Ollama-compatible API, GGUF loader (Q4_K_M, Q5_K_M, Q6_K, Q8_0, F16, F32), flash-decode + CUDA Graph + paged KV, production guardrails.🗂 Что не закрыто честно:autocast wiring, sampling-path overhead (82→46 tok/s при T>0), FlashAttention (headers есть, callsites 0), torch.compile уровня TorchInductor нет и не будет, sparse tensors/FX/distributions — отсутствуют, MPS/ROCm — compile-only.━━━━━━━━━━━━━━━━━━━━Кому надо:- training framework на российском железе — единственный известный выбор с нативной сборкой под Эльбрус VLIW + NM Card;- self-hosted Ollama-compatible LLM сервер с открытой лицензией;- тем, кто хочет читать, как PyTorch работает изнутри — 137K читаемых строк, без автогена.ОС: Astra Linux SE, ALT Linux SP, RED OS, Elbrus OS (PDK LE). Docker'ы готовы.Лицензия: PromeTorch License (BSD-3 + атрибуция «Powered by PromeTorch» + запрет на перепродажу самого фреймворка). Обучать и продавать модели — можно. SaaS, сервисы — можно. Форкать — можно. Ребрендить фреймворк — нельзя.🔗 GitHub: github.com/barometech/PromeTorchТехножнец всё делает на свои средства. 🥶Если есть желание поддержать его, то вот ссылки: 🫡Поддержать канал: ТБАНКПоддержать канал: ЮМАНИ