High-Performance Computer Vision & Deep Learning Framework in C++ & CUDA with PyTorch Parity
Project description
🌌 newton-vision
PyTorch ekosistemiyle birlikte çalışabilen, deneysel araştırmalar ve eğitim amacıyla geliştirilen, C++17 ve CUDA çekirdekli hafif bir derin öğrenme framework'üdür.
❓ 5 Temel Soruda newton-vision
1. Bu Proje Nedir?
newton-vision, yönlü türev grafı (Autograd), evrişimsel sinir ağları (CNN), Vision Transformer (ViT) ve INT8 Kuantizasyon motorunu sıfırdan C++17, CUDA ve Python ile gerçekleyen şeffaf bir derin öğrenme framework'üdür.
2. Neden Var?
Derin öğrenme algoritmalarının arkasındaki matematiksel ve donanımsal mantığı (L1/L2 Cache Locality, SIMD AVX2, Topolojik Autograd Sıralaması) şeffaf bir şekilde göstermek, deneyler yapmak ve C++ ortamında bağımsız hızlı çıkarım (inference) çalıştırmak için geliştirilmiştir.
3. Kim Kullanmalı?
- Derin öğrenme motorlarının mutfağını ve C++ donanım ivmelendirmesini öğrenmek isteyen araştırmacılar ve öğrenciler.
- PyTorch'ta eğittiği modelleri Python bağımlılığı olmadan C++ ortamında veya INT8 kuantize olarak çalıştırmak isteyen mühendisler.
4. Kim Kullanmamalı?
- Petabaytlarca veri üzerinde binlerce GPU ile devasa LLM (Large Language Model) veya üretim dağıtık eğitimi yapmayı hedefleyen büyük endüstriyel dağıtık sistem ekipleri (PyTorch / JAX kullanmaya devam etmelidirler).
5. PyTorch İle İlişkisi Ne?
newton-vision, PyTorch'un bir rakibi veya "katili" değildir. PyTorch .pth state_dict ağırlıklarını birebir yükleyebilen, PyTorch ekosistemiyle uyumlu çalışan bir kardeş altyapıdır.
🔬 Araştırma & Deney Notları (research/)
- 0001-im2col-vs-direct-conv.md:
im2col + GEMML1/L2 Önbellek Verimliliği ve 10x Hızlanma Analizi. - 0003-int8-quantization.md: Per-Channel INT8 Kuantizasyon ve Outlier İzolasyon Matematiği.
📊 Şeffaf & Bilimsel Benchmark Sonuçları
Intel64 Family 6 (12 Threads) üzerinde PyTorch v2.6.0 CPU ile dürüst ve istatistiksel karşılaştırma:
| Model | Framework | Mean (ms) | Std (ms) | Min (ms) | Max (ms) | FPS | Karşılaştırma |
|---|---|---|---|---|---|---|---|
| ViT-Tiny (Transformer) | newton-vision | 210.62 | ±18.33 | 174.47 | 240.62 | 4.7 | 2.28x Hızlı 🚀 |
| PyTorch CPU | 472.23 | ±29.48 | 458.22 | 585.02 | 2.1 | Base | |
| ResNet-18 | newton-vision | 119.95 | ±12.37 | 98.28 | 146.52 | 8.3 | 4.63x Yavaş |
| PyTorch CPU | 25.90 | ±0.77 | 24.97 | 27.74 | 38.6 | Base | |
| MobileNetV2 | newton-vision | 4842.70 | ±819.54 | 3619.07 | 7078.85 | 0.2 | 81.01x Yavaş |
| PyTorch CPU | 59.78 | ±2.94 | 54.99 | 66.91 | 16.7 | Base |
🚀 Hızlı Başlangıç (Quick Start)
pip install newton-vision
import newton_vision as nv
import numpy as np
# 1. Tensör Tanımlama
x = nv.Tensor(np.random.randn(1, 3, 224, 224), requires_grad=True)
# 2. Vision Transformer Modeli
model = nv.models.vit_tiny(num_classes=1000)
# 3. İleri Geçiş (Forward Pass)
logits = model(x)
print("Logits Shape:", logits.data.shape) # (1, 1000)
📂 Örnekler & Öğreticiler (Examples vs Tutorials)
⚡ Örnek Projeler (examples/):
- 01_image_classification_lenet.py — MNIST Görsel Sınıflandırma
- 02_resnet18_pytorch_weights.py — PyTorch Ağırlık Aktarımı
- 03_vit_transformer_inference.py — Vision Transformer (ViT) Çıkarımı
- 04_int8_quantization_demo.py — INT8 Kuantizasyon Demosu
- 05_onnx_export_guide.py — ONNX Export Rehberi
🎓 Derin Öğreticiler (tutorials/):
- 01_train_mnist.py — Tekrarlanabilir MNIST Eğitimi & INT8 Accuracy Drop Deneyi
- live_3stage_demo.py — 3 Aşamalı Canlı Karşılaştırma, Hibrit Kullanım & Saf Eğitim
📜 Yönetişim & Dokümantasyon
- CONTRIBUTING.md: Katkı Sağlama Rehberi
- SECURITY.md: Güvenlik Politikası
- CHANGELOG.md: Semantik Sürüm Geçmişi
- WIKI.md: GitHub Wiki & Kullanım Rehberi
📜 Lisans
Bu proje MIT Lisansı ile lisanslanmıştır.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file newton_vision-1.1.2.tar.gz.
File metadata
- Download URL: newton_vision-1.1.2.tar.gz
- Upload date:
- Size: 70.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d475495196b04cfa9e661175041275d1bd301e595e782920ee95cc94323f3e41
|
|
| MD5 |
b9493b90b50bd1a7b72e1a2a47c3cee6
|
|
| BLAKE2b-256 |
5c751c0bf3e992565a30f3e1ae6e35ee2955a3d6e6d871ede11c67a102d55d35
|
File details
Details for the file newton_vision-1.1.2-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: newton_vision-1.1.2-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 225.6 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ce9586ac6586a49096ab4065a822631f34b6bb685c8139cdb8bbcbd375ca9f1
|
|
| MD5 |
e24636e1688c462900bc92b81bb1480e
|
|
| BLAKE2b-256 |
26f6a803c28beec9c6491351ba7755aa2302951f48f61757d93bf4d9e96e8b01
|