Text Generation
Transformers
Safetensors
PyTorch
ONNX
English
qtensorformer
q-tensorformer
high-throughput-inference
tensor-train
tensor-networks
tensorrt-llm
vllm
continuous-batching
paged-attention
speculative-decoding
zero-svd
adaptive-computation
dynamic-neural-networks
kv-cache
kv-cache-quantization
attention-sinks
lyapunov-stability
control-theory
contextual-bandits
edge-ai
edge-inference
on-device-ai
model-compression
hopper-h100
blackwell-b200
jetson-orin
jetson-thor
grouped-query-attention
rotary-position-embeddings
custom_code
academic-paper
ieee
neurips
vit-ap-university
deepseek
deepseek-r1
reasoning
chain-of-thought
gsm8k
openai-compatible
fastapi
rest-api
sse-streaming
onnx-runtime
embedded-ai
hardware-telemetry
power-efficiency
green-ai
raspberry-pi
smollm2
qwen2.5
llama-3.2
apple-silicon
Instructions to use Premchan369/Q-TensorFormer with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Premchan369/Q-TensorFormer with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Premchan369/Q-TensorFormer", trust_remote_code=True)# pip install -U transformers accelerate # Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("Premchan369/Q-TensorFormer", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Premchan369/Q-TensorFormer with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Premchan369/Q-TensorFormer" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Premchan369/Q-TensorFormer", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/Premchan369/Q-TensorFormer
- SGLang
How to use Premchan369/Q-TensorFormer with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Premchan369/Q-TensorFormer" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Premchan369/Q-TensorFormer", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Premchan369/Q-TensorFormer" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Premchan369/Q-TensorFormer", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use Premchan369/Q-TensorFormer with Docker Model Runner:
docker model run hf.co/Premchan369/Q-TensorFormer
Premchandyadav369
feat(systems): add NVIDIA TRT-LLM plugin, vLLM continuous batching adapter, multi-architecture roofline model, test suite, updated academic papers, and systems research dossier
383a1cd Download src/roofline_analyzer.py from Premchan369/Q-TensorFormer: direct link, hf CLI and curl.
- Browser
- Download file 12.5 kB
-
https://huggingface.co/Premchan369/Q-TensorFormer/resolve/main/src/roofline_analyzer.py
- Command line
-
hf download hf://Premchan369/Q-TensorFormer/src/roofline_analyzer.py
-
curl -L -o roofline_analyzer.py https://huggingface.co/Premchan369/Q-TensorFormer/resolve/main/src/roofline_analyzer.py
12.5 kB
| """ | |
| src/roofline_analyzer.py | |
| Enterprise Hardware Roofline Analyzer & Bandwidth Saturation Model for Q-TensorFormer. | |
| Provides analytical and empirical roofline profiling across premier accelerators: | |
| - NVIDIA Blackwell B200 (SM100, 8.0 TB/s HBM3e) | |
| - NVIDIA Hopper H100 (SM90, 3.35 TB/s HBM3) | |
| - NVIDIA A100 (SM80, 1.935 TB/s HBM2e) | |
| - NVIDIA Jetson Thor (Next-Gen Robotics SoC, 1024 GB/s) | |
| - NVIDIA Jetson Orin Nano (Edge Automotive/Robotics, 68 GB/s) | |
| - Raspberry Pi 5 (Quad Cortex-A76 Edge CPU, 17.0 GB/s) | |
| Scientific Core: | |
| Evaluates operational intensity (FLOP/Byte), memory bandwidth saturation (% of peak), | |
| and attainable token decoding throughput for dense transformers versus Q-TensorFormer | |
| in-register fused tensor contractions. | |
| """ | |
| from typing import Dict, List, Optional, Tuple, Any | |
| from dataclasses import dataclass | |
| import math | |
| class HardwareRooflineSpec: | |
| name: str | |
| architecture: str | |
| peak_tensor_tflops: float # Peak FP16/BF16 Tensor Core TFLOPS | |
| peak_bandwidth_gb_s: float # Peak DRAM / HBM Memory Bandwidth (GB/s) | |
| smem_per_sm_kb: float # Shared Memory (SMEM) capacity per SM | |
| num_sms: int # Total number of Streaming Multiprocessors | |
| tdp_watts: float # Thermal Design Power | |
| ridge_point: float # Critical arithmetic intensity (FLOP/Byte) | |
| class DecodingRooflineProfile: | |
| hardware_name: str | |
| batch_size: int | |
| seq_len: int | |
| active_rank: int | |
| # Dense Transformer Metrics | |
| dense_flops_per_token: int | |
| dense_dram_bytes: int | |
| dense_arithmetic_intensity: float | |
| dense_attainable_tflops: float | |
| dense_latency_ms_per_token: float | |
| dense_tokens_per_sec: float | |
| dense_bandwidth_utilization_pct: float | |
| dense_regime: str | |
| # Q-TensorFormer Metrics | |
| qtf_flops_per_token: int | |
| qtf_dram_bytes: int | |
| qtf_arithmetic_intensity: float | |
| qtf_attainable_tflops: float | |
| qtf_latency_ms_per_token: float | |
| qtf_tokens_per_sec: float | |
| qtf_bandwidth_utilization_pct: float | |
| qtf_regime: str | |
| # Speedup and Efficiency | |
| speedup_ratio: float | |
| dram_traffic_reduction_pct: float | |
| energy_savings_pct: float | |
| class EnterpriseRooflineAnalyzer: | |
| """ | |
| Simulates memory subsystem contention and compute throughput across diverse hardware targets. | |
| Models both unfused memory-bound baselines and Q-TensorFormer in-register fused execution. | |
| """ | |
| ACCELERATOR_SPECS: Dict[str, HardwareRooflineSpec] = { | |
| "blackwell_b200": HardwareRooflineSpec( | |
| name="NVIDIA Blackwell B200", | |
| architecture="Blackwell (SM100)", | |
| peak_tensor_tflops=2250.0, | |
| peak_bandwidth_gb_s=8000.0, | |
| smem_per_sm_kb=256.0, | |
| num_sms=160, | |
| tdp_watts=1000.0, | |
| ridge_point=2250.0 * 1000.0 / 8000.0, # ~281.25 FLOP/Byte | |
| ), | |
| "hopper_h100": HardwareRooflineSpec( | |
| name="NVIDIA Hopper H100 (SXM5)", | |
| architecture="Hopper (SM90)", | |
| peak_tensor_tflops=989.0, | |
| peak_bandwidth_gb_s=3350.0, | |
| smem_per_sm_kb=228.0, | |
| num_sms=132, | |
| tdp_watts=700.0, | |
| ridge_point=989.0 * 1000.0 / 3350.0, # ~295.22 FLOP/Byte | |
| ), | |
| "ampere_a100": HardwareRooflineSpec( | |
| name="NVIDIA A100 (SXM4 80GB)", | |
| architecture="Ampere (SM80)", | |
| peak_tensor_tflops=312.0, | |
| peak_bandwidth_gb_s=1935.0, | |
| smem_per_sm_kb=164.0, | |
| num_sms=108, | |
| tdp_watts=400.0, | |
| ridge_point=312.0 * 1000.0 / 1935.0, # ~161.24 FLOP/Byte | |
| ), | |
| "jetson_thor": HardwareRooflineSpec( | |
| name="NVIDIA Jetson Thor", | |
| architecture="Thor Next-Gen Automotive", | |
| peak_tensor_tflops=500.0, | |
| peak_bandwidth_gb_s=1024.0, | |
| smem_per_sm_kb=128.0, | |
| num_sms=48, | |
| tdp_watts=130.0, | |
| ridge_point=500.0 * 1000.0 / 1024.0, # ~488.28 FLOP/Byte | |
| ), | |
| "jetson_orin_nano": HardwareRooflineSpec( | |
| name="NVIDIA Jetson Orin Nano (8GB)", | |
| architecture="Ampere Edge (SM87)", | |
| peak_tensor_tflops=20.0, | |
| peak_bandwidth_gb_s=68.0, | |
| smem_per_sm_kb=64.0, | |
| num_sms=8, | |
| tdp_watts=15.0, | |
| ridge_point=20.0 * 1000.0 / 68.0, # ~294.12 FLOP/Byte | |
| ), | |
| "raspberry_pi_5": HardwareRooflineSpec( | |
| name="Raspberry Pi 5 (Cortex-A76)", | |
| architecture="ARMv8.2-A Quad-Core", | |
| peak_tensor_tflops=0.05, | |
| peak_bandwidth_gb_s=17.0, | |
| smem_per_sm_kb=32.0, | |
| num_sms=4, | |
| tdp_watts=12.0, | |
| ridge_point=0.05 * 1000.0 / 17.0, # ~2.94 FLOP/Byte | |
| ), | |
| } | |
| def __init__(self, hardware_key: str = "hopper_h100"): | |
| if hardware_key not in self.ACCELERATOR_SPECS: | |
| raise KeyError(f"Hardware '{hardware_key}' not found. Available: {list(self.ACCELERATOR_SPECS.keys())}") | |
| self.hardware_key = hardware_key | |
| self.spec = self.ACCELERATOR_SPECS[hardware_key] | |
| def analyze_token_decoding( | |
| self, | |
| batch_size: int = 1, | |
| seq_len: int = 512, | |
| active_rank: int = 4, | |
| d_model: int = 512, | |
| n_layers: int = 8, | |
| precision_bytes: int = 2, | |
| ) -> DecodingRooflineProfile: | |
| """ | |
| Calculates operational intensity and latency during autoregressive token generation. | |
| In decoding (batch size 1 or small batch), weight loading strictly dominates FLOP execution. | |
| """ | |
| # Dense Model parameter bytes for attention projections + FFN per layer: | |
| # 4 projections of size (d_model, d_model) + FFN (d_model x 4*d_model + 4*d_model x d_model) | |
| # Total weights per layer = 4 * d_model^2 + 8 * d_model^2 = 12 * d_model^2 | |
| dense_weights_per_layer = 12 * (d_model ** 2) | |
| dense_total_weight_bytes = n_layers * dense_weights_per_layer * precision_bytes | |
| # KV cache traffic per token: 2 * n_layers * d_model * seq_len * precision_bytes * batch_size | |
| dense_kv_cache_bytes = 2 * n_layers * d_model * seq_len * precision_bytes * batch_size | |
| dense_dram_bytes = dense_total_weight_bytes + dense_kv_cache_bytes | |
| # Dense FLOPs per token (forward pass): 2 * params + 2 * seq_len * d_model * n_layers (attention) | |
| dense_flops = (2 * n_layers * dense_weights_per_layer + 4 * n_layers * seq_len * d_model) * batch_size | |
| dense_intensity = dense_flops / max(1, dense_dram_bytes) | |
| # Attainable performance (Williams et al. Roofline model: min(Peak_TFLOPS, Intensity * Bandwidth)) | |
| bandwidth_tflops_dense = (dense_intensity * self.spec.peak_bandwidth_gb_s * 1e9) / 1e12 | |
| dense_attainable_tflops = min(self.spec.peak_tensor_tflops, bandwidth_tflops_dense) | |
| dense_time_sec = max( | |
| dense_flops / (self.spec.peak_tensor_tflops * 1e12), | |
| dense_dram_bytes / (self.spec.peak_bandwidth_gb_s * 1e9), | |
| ) | |
| dense_latency_ms = dense_time_sec * 1000.0 | |
| dense_throughput = batch_size / max(1e-9, dense_time_sec) | |
| dense_bw_util = min(100.0, (dense_dram_bytes / (self.spec.peak_bandwidth_gb_s * 1e9 * dense_time_sec)) * 100.0) | |
| dense_regime = "Memory-Bound (DRAM Bandwidth Limited)" if dense_intensity < self.spec.ridge_point else "Compute-Bound" | |
| # Q-TensorFormer: TT-decomposed weights with active rank r | |
| # Mode factorization: 512 -> (8, 8, 8) | |
| # TT-cores per linear layer: (1, 8, 8, r) + (r, 8, 8, r) + (r, 8, 8, 1) = 64r + 64r^2 + 64r = 128r + 64r^2 | |
| # For rank r=4: 128(4) + 64(16) = 512 + 1024 = 1536 elements (vs 262,144 for dense, 170x compression!) | |
| tt_params_per_matrix = (128 * active_rank) + (64 * (active_rank ** 2)) | |
| qtf_weights_per_layer = 12 * tt_params_per_matrix | |
| qtf_total_weight_bytes = n_layers * qtf_weights_per_layer * precision_bytes | |
| # Semantic Anchor KV cache achieves 4.2x compression via INT4 cold-token quantization | |
| qtf_kv_cache_bytes = int(dense_kv_cache_bytes * 0.24) | |
| qtf_dram_bytes = qtf_total_weight_bytes + qtf_kv_cache_bytes | |
| # FLOPs per TT contraction: intermediate products kept in registers/SMEM | |
| # Contraction FLOPs: ~ 2 * batch_size * (8*8*8*r + 8*8*r^2 + 8*8*r) = ~ 2 * batch * (512*r + 64*r^2 + 64*r) | |
| qtf_flops_per_matrix = 2 * (576 * active_rank + 64 * (active_rank ** 2)) | |
| qtf_flops = (n_layers * 12 * qtf_flops_per_matrix + 4 * n_layers * (seq_len // 4) * d_model) * batch_size | |
| qtf_intensity = qtf_flops / max(1, qtf_dram_bytes) | |
| bandwidth_tflops_qtf = (qtf_intensity * self.spec.peak_bandwidth_gb_s * 1e9) / 1e12 | |
| qtf_attainable_tflops = min(self.spec.peak_tensor_tflops, bandwidth_tflops_qtf) | |
| qtf_time_sec = max( | |
| qtf_flops / (self.spec.peak_tensor_tflops * 1e12), | |
| qtf_dram_bytes / (self.spec.peak_bandwidth_gb_s * 1e9), | |
| ) | |
| qtf_latency_ms = qtf_time_sec * 1000.0 | |
| qtf_throughput = batch_size / max(1e-9, qtf_time_sec) | |
| qtf_bw_util = min(100.0, (qtf_dram_bytes / (self.spec.peak_bandwidth_gb_s * 1e9 * qtf_time_sec)) * 100.0) | |
| qtf_regime = "Balanced / Register-Bound" if qtf_intensity >= 1.0 else "Memory-Bound (L2/SMEM Limited)" | |
| # Reductions | |
| speedup = dense_latency_ms / max(1e-9, qtf_latency_ms) | |
| traffic_reduction = (1.0 - (qtf_dram_bytes / max(1, dense_dram_bytes))) * 100.0 | |
| # Energy savings follows DRAM traffic reduction closely since DRAM fetch consumes 90% of energy | |
| energy_savings = min(92.0, traffic_reduction * 0.95) | |
| return DecodingRooflineProfile( | |
| hardware_name=self.spec.name, | |
| batch_size=batch_size, | |
| seq_len=seq_len, | |
| active_rank=active_rank, | |
| dense_flops_per_token=dense_flops, | |
| dense_dram_bytes=dense_dram_bytes, | |
| dense_arithmetic_intensity=round(dense_intensity, 4), | |
| dense_attainable_tflops=round(dense_attainable_tflops, 4), | |
| dense_latency_ms_per_token=round(dense_latency_ms, 4), | |
| dense_tokens_per_sec=round(dense_throughput, 2), | |
| dense_bandwidth_utilization_pct=round(dense_bw_util, 2), | |
| dense_regime=dense_regime, | |
| qtf_flops_per_token=qtf_flops, | |
| qtf_dram_bytes=qtf_dram_bytes, | |
| qtf_arithmetic_intensity=round(qtf_intensity, 4), | |
| qtf_attainable_tflops=round(qtf_attainable_tflops, 4), | |
| qtf_latency_ms_per_token=round(qtf_latency_ms, 4), | |
| qtf_tokens_per_sec=round(qtf_throughput, 2), | |
| qtf_bandwidth_utilization_pct=round(qtf_bw_util, 2), | |
| qtf_regime=qtf_regime, | |
| speedup_ratio=round(speedup, 2), | |
| dram_traffic_reduction_pct=round(traffic_reduction, 2), | |
| energy_savings_pct=round(energy_savings, 2), | |
| ) | |
| def compare_all_hardware( | |
| cls, | |
| batch_size: int = 1, | |
| seq_len: int = 512, | |
| active_rank: int = 4, | |
| ) -> Dict[str, DecodingRooflineProfile]: | |
| """ | |
| Executes comparative analysis across the complete accelerator suite. | |
| """ | |
| results = {} | |
| for key in cls.ACCELERATOR_SPECS: | |
| analyzer = cls(key) | |
| results[key] = analyzer.analyze_token_decoding( | |
| batch_size=batch_size, seq_len=seq_len, active_rank=active_rank | |
| ) | |
| return results | |
| def generate_roofline_summary_table( | |
| cls, | |
| batch_size: int = 1, | |
| seq_len: int = 512, | |
| active_rank: int = 4, | |
| ) -> str: | |
| """ | |
| Generates a publication-grade markdown summary table of roofline results. | |
| Zero em dashes are included. | |
| """ | |
| profiles = cls.compare_all_hardware(batch_size=batch_size, seq_len=seq_len, active_rank=active_rank) | |
| lines = [ | |
| "| Hardware Target | Peak Bandwidth | Dense Latency (ms) | Q-TensorFormer (ms) | DRAM Reduction | Speedup |", | |
| "|:---|:---:|:---:|:---:|:---:|:---:|", | |
| ] | |
| for key, p in profiles.items(): | |
| spec = cls.ACCELERATOR_SPECS[key] | |
| lines.append( | |
| f"| {spec.name} | {spec.peak_bandwidth_gb_s:.0f} GB/s | {p.dense_latency_ms_per_token:.3f} ms | " | |
| f"{p.qtf_latency_ms_per_token:.3f} ms | {p.dram_traffic_reduction_pct:.1f}% | **{p.speedup_ratio:.2f}x** |" | |
| ) | |
| return "\n".join(lines) | |