File size: 1,552 Bytes
d4c2896 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | [project]
name = "speculative-decoding-lab"
version = "0.1.0"
description = "Empirical study of speculative decoding on an RTX 4060 Ti 16 GB: Gemma-4/Qwen-3 GGUF with modern drafters (EAGLE-3, DFlash, DSpark)"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"numpy>=2.0",
# matplotlib: figures for the analysis/paper (F1a-F4); pinned in uv.lock.
"matplotlib>=3.9",
# NVIDIA wheels for Python runtime. NOTE: the nvcc binary is NOT distributed
# on PyPI (only ptxas) — the real CUDA toolkit is installed with the runfile
# in $HOME/cuda without sudo (see scripts/spec-env.sh). Verified 2026-08-03.
"nvidia-cuda-runtime-cu12>=12.4,<12.5",
"nvidia-cublas-cu12>=12.4,<12.5",
"nvidia-nvjitlink-cu12>=12.4,<12.5",
"safetensors>=0.8.0",
"sentencepiece>=0.2.2",
"tiktoken>=0.13.0",
"torch>=2.13.0",
"pyyaml>=6.0.3",
"transformers>=5.14.1",
]
[dependency-groups]
dev = [
"ruff>=0.8",
"pyright>=1.1",
"cmake>=4.4.0",
"ninja>=1.13.0",
]
[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "W", "I", "B", "UP", "S"]
# S-* = bandit: false positives in download utilities (fixed repo URLs,
# read-only arXiv feed; S603/S607 are pdftotext with owned paths).
[tool.ruff.lint.per-file-ignores]
"scripts/dl.py" = ["S310"]
[tool.pyright]
pythonVersion = "3.12"
typeCheckingMode = "basic"
exclude = ["models", "papers", "notes"]
# scripts/ is a root module without a package; pyright needs it as extraPaths.
extraPaths = ["scripts"]
|