rtx-5080-ti-emulator / index.html
PrinzPesia's picture
Add 3 files
9e13a89 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NVIDIA RTX 5080 Ti Emulator</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://kit.fontawesome.com/a076d05399.js" crossorigin="anonymous"></script>
<style>
@keyframes pulse {
0% { opacity: 0.6; }
50% { opacity: 1; }
100% { opacity: 0.6; }
}
@keyframes coreActivity {
0% { background-color: #00ff00; }
50% { background-color: #76ff03; }
100% { background-color: #00ff00; }
}
@keyframes tensorActivity {
0% { background-color: #ff4081; }
50% { background-color: #ff80ab; }
100% { background-color: #ff4081; }
}
@keyframes rtActivity {
0% { background-color: #40c4ff; }
50% { background-color: #80d8ff; }
100% { background-color: #40c4ff; }
}
.core-active {
animation: coreActivity 0.5s infinite;
}
.tensor-active {
animation: tensorActivity 0.3s infinite;
}
.rt-active {
animation: rtActivity 0.4s infinite;
}
.status-pulse {
animation: pulse 2s infinite;
}
.gpu-visualization {
background: linear-gradient(135deg, #121212 0%, #1a1a1a 100%);
border-radius: 12px;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
}
.performance-meter {
background: linear-gradient(to right, #00c853, #ffd600, #ff3d00);
}
.vram-bar {
background: linear-gradient(to right, #5c6bc0, #3949ab);
}
.cooling-fan {
transition: transform 0.1s linear;
}
</style>
</head>
<body class="bg-gray-900 text-gray-100 min-h-screen">
<div class="container mx-auto px-4 py-8">
<!-- Header -->
<header class="flex items-center justify-between mb-8">
<div class="flex items-center">
<div class="w-12 h-12 bg-green-500 rounded-full flex items-center justify-center mr-4">
<i class="fas fa-microchip text-white text-xl"></i>
</div>
<h1 class="text-3xl font-bold bg-gradient-to-r from-green-400 to-blue-500 bg-clip-text text-transparent">
NVIDIA RTX 5080 Ti Emulator
</h1>
</div>
<div class="flex items-center space-x-2">
<span class="px-3 py-1 bg-gray-800 rounded-full text-sm font-medium flex items-center">
<span class="w-2 h-2 rounded-full bg-green-500 mr-2"></span>
<span>EMULATION ACTIVE</span>
</span>
<button class="px-4 py-2 bg-red-600 hover:bg-red-700 rounded-lg font-medium transition">
<i class="fas fa-power-off mr-2"></i>Stop Emulation
</button>
</div>
</header>
<!-- Main Dashboard -->
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-8">
<!-- GPU Visualization -->
<div class="gpu-visualization lg:col-span-2 p-6">
<div class="flex justify-between items-center mb-6">
<h2 class="text-xl font-semibold">RTX 5080 Ti Core Simulation</h2>
<div class="flex items-center">
<span class="text-sm mr-4">DLSS 4.0: <span class="font-bold text-green-400">ACTIVE</span></span>
<span class="text-sm">Ray Tracing: <span class="font-bold text-blue-400">GEN4</span></span>
</div>
</div>
<!-- Core Visualization -->
<div class="grid grid-cols-12 gap-2 mb-6">
<!-- CUDA Cores -->
<div class="col-span-8">
<div class="flex justify-between mb-2">
<span class="text-sm font-medium">15,360 CUDA Cores</span>
<span class="text-sm">Utilization: <span id="cuda-util">78</span>%</span>
</div>
<div class="grid grid-cols-16 gap-1">
<!-- This will be filled with JS -->
</div>
</div>
<!-- RT Cores -->
<div class="col-span-2">
<div class="flex justify-between mb-2">
<span class="text-sm font-medium">RT Cores</span>
<span class="text-sm"><span id="rt-util">65</span>%</span>
</div>
<div class="grid grid-cols-2 gap-1">
<!-- This will be filled with JS -->
</div>
</div>
<!-- Tensor Cores -->
<div class="col-span-2">
<div class="flex justify-between mb-2">
<span class="text-sm font-medium">Tensor Cores</span>
<span class="text-sm"><span id="tensor-util">82</span>%</span>
</div>
<div class="grid grid-cols-2 gap-1">
<!-- This will be filled with JS -->
</div>
</div>
</div>
<!-- Cooling System -->
<div class="flex items-center justify-between bg-gray-800 rounded-lg p-4">
<div class="flex items-center">
<div class="cooling-fan mr-4" id="fan1">
<i class="fas fa-fan text-blue-400 text-2xl"></i>
</div>
<div>
<div class="flex items-center mb-1">
<span class="text-sm font-medium mr-2">GPU Temp:</span>
<span class="text-green-400 font-medium" id="gpu-temp">64</span>
<span class="text-gray-400 ml-1">°C</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-1.5">
<div class="bg-gradient-to-r from-green-400 to-yellow-500 h-1.5 rounded-full" style="width: 64%"></div>
</div>
</div>
</div>
<div class="text-right">
<div class="text-sm font-medium mb-1">Power Draw</div>
<div class="text-xl font-bold text-yellow-400" id="power-draw">320</div>
<div class="text-xs text-gray-400">Watts</div>
</div>
</div>
</div>
<!-- Performance Stats -->
<div class="bg-gray-800 rounded-lg p-6">
<h2 class="text-xl font-semibold mb-6">Performance Metrics</h2>
<div class="space-y-5">
<div>
<div class="flex justify-between mb-1">
<span class="text-sm font-medium">FP32 Performance</span>
<span class="text-sm font-bold text-green-400" id="fp32-perf">68.4</span>
</div>
<div class="performance-meter w-full h-2 rounded-full overflow-hidden">
<div class="h-full" style="width: 90%"></div>
</div>
<div class="text-xs text-gray-400 mt-1">TFLOPS (Estimated: 60-70 TFLOPS)</div>
</div>
<div>
<div class="flex justify-between mb-1">
<span class="text-sm font-medium">VRAM Allocation</span>
<span class="text-sm font-bold text-blue-400" id="vram-usage">18.2</span>
</div>
<div class="vram-bar w-full h-2 rounded-full overflow-hidden">
<div class="h-full" style="width: 76%"></div>
</div>
<div class="text-xs text-gray-400 mt-1">24GB GDDR7 (Using System RAM)</div>
</div>
<div>
<div class="flex justify-between mb-1">
<span class="text-sm font-medium">Memory Bandwidth</span>
<span class="text-sm font-bold text-purple-400" id="mem-bandwidth">896</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-2">
<div class="bg-gradient-to-r from-purple-400 to-pink-500 h-2 rounded-full" style="width: 85%"></div>
</div>
<div class="text-xs text-gray-400 mt-1">320-bit interface @ 28Gbps</div>
</div>
<div class="pt-4 border-t border-gray-700">
<div class="text-sm font-medium mb-2">Current Features</div>
<div class="space-y-2">
<div class="flex items-center">
<div class="w-4 h-4 rounded-full bg-blue-500 mr-2"></div>
<span class="text-sm">Gen 4 Ray Tracing</span>
</div>
<div class="flex items-center">
<div class="w-4 h-4 rounded-full bg-pink-500 mr-2"></div>
<span class="text-sm">Gen 5 Tensor Cores</span>
</div>
<div class="flex items-center">
<div class="w-4 h-4 rounded-full bg-green-500 mr-2"></div>
<span class="text-sm">DLSS 4.0 AI</span>
</div>
<div class="flex items-center">
<div class="w-4 h-4 rounded-full bg-yellow-500 mr-2"></div>
<span class="text-sm">NVLink 4.0 Support</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Advanced Controls -->
<div class="bg-gray-800 rounded-lg p-6 mb-8">
<h2 class="text-xl font-semibold mb-6">Emulation Controls</h2>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
<div class="bg-gray-700 rounded-lg p-4">
<div class="flex items-center justify-between mb-3">
<span class="font-medium">CUDA Core Load</span>
<span class="text-green-400 font-bold" id="cuda-slider-value">78%</span>
</div>
<input type="range" min="10" max="100" value="78" class="w-full h-2 bg-gray-600 rounded-lg appearance-none cursor-pointer" id="cuda-slider">
</div>
<div class="bg-gray-700 rounded-lg p-4">
<div class="flex items-center justify-between mb-3">
<span class="font-medium">RT Core Load</span>
<span class="text-blue-400 font-bold" id="rt-slider-value">65%</span>
</div>
<input type="range" min="10" max="100" value="65" class="w-full h-2 bg-gray-600 rounded-lg appearance-none cursor-pointer" id="rt-slider">
</div>
<div class="bg-gray-700 rounded-lg p-4">
<div class="flex items-center justify-between mb-3">
<span class="font-medium">Tensor Core Load</span>
<span class="text-pink-400 font-bold" id="tensor-slider-value">82%</span>
</div>
<input type="range" min="10" max="100" value="82" class="w-full h-2 bg-gray-600 rounded-lg appearance-none cursor-pointer" id="tensor-slider">
</div>
<div class="bg-gray-700 rounded-lg p-4">
<div class="flex items-center justify-between mb-3">
<span class="font-medium">VRAM Allocation</span>
<span class="text-blue-300 font-bold" id="vram-slider-value">18.2GB</span>
</div>
<input type="range" min="1" max="24" step="0.1" value="18.2" class="w-full h-2 bg-gray-600 rounded-lg appearance-none cursor-pointer" id="vram-slider">
</div>
</div>
<div class="mt-6 flex flex-wrap gap-3">
<button class="px-4 py-2 bg-blue-600 hover:bg-blue-700 rounded-lg font-medium transition flex items-center">
<i class="fas fa-rocket mr-2"></i> Boost Performance
</button>
<button class="px-4 py-2 bg-purple-600 hover:bg-purple-700 rounded-lg font-medium transition flex items-center">
<i class="fas fa-brain mr-2"></i> Enable DLSS 4.0
</button>
<button class="px-4 py-2 bg-green-600 hover:bg-green-700 rounded-lg font-medium transition flex items-center">
<i class="fas fa-project-diagram mr-2"></i> Enable NVLink
</button>
<button class="px-4 py-2 bg-gray-600 hover:bg-gray-700 rounded-lg font-medium transition flex items-center">
<i class="fas fa-cog mr-2"></i> Advanced Settings
</button>
</div>
</div>
<!-- Status Log -->
<div class="bg-gray-800 rounded-lg p-6">
<h2 class="text-xl font-semibold mb-4">Emulation Log</h2>
<div class="bg-gray-900 rounded-lg p-4 h-48 overflow-y-auto font-mono text-sm" id="emulation-log">
<div class="text-green-400">[SYSTEM] Initializing RTX 5080 Ti emulation...</div>
<div class="text-green-400">[VRAM] Allocated 24GB GDDR7 from system RAM</div>
<div class="text-blue-400">[CUDA] 15,360 cores online</div>
<div class="text-pink-400">[TENSOR] Gen 5 tensor cores initialized</div>
<div class="text-blue-300">[RT] Gen 4 ray tracing cores active</div>
<div class="text-yellow-400">[PERF] Estimated FP32 performance: 68.4 TFLOPS</div>
<div class="text-green-400">[DLSS] AI-based DLSS 4.0 ready</div>
<div class="text-purple-400">[SYSTEM] Emulation fully operational</div>
</div>
</div>
</div>
<script>
// Initialize core visualization
function initCoreVisualization() {
// CUDA Cores
const cudaContainer = document.querySelector('.col-span-8 .grid');
for (let i = 0; i < 128; i++) {
const core = document.createElement('div');
core.className = 'w-2 h-2 rounded-sm bg-gray-700 hover:bg-green-500 transition cursor-pointer';
core.title = `CUDA Core ${i+1}`;
core.dataset.type = 'cuda';
cudaContainer.appendChild(core);
}
// RT Cores
const rtContainer = document.querySelector('.col-span-2 .grid');
for (let i = 0; i < 4; i++) {
const core = document.createElement('div');
core.className = 'w-4 h-4 rounded-sm bg-gray-700 hover:bg-blue-400 transition cursor-pointer';
core.title = `RT Core ${i+1} (Gen 4)`;
core.dataset.type = 'rt';
rtContainer.appendChild(core);
}
// Tensor Cores
const tensorContainer = document.querySelector('.col-span-2 .grid');
for (let i = 0; i < 4; i++) {
const core = document.createElement('div');
core.className = 'w-4 h-4 rounded-sm bg-gray-700 hover:bg-pink-500 transition cursor-pointer';
core.title = `Tensor Core ${i+1} (Gen 5)`;
core.dataset.type = 'tensor';
tensorContainer.appendChild(core);
}
}
// Update core activity based on utilization
function updateCoreActivity() {
const cudaUtil = parseInt(document.getElementById('cuda-util').textContent);
const rtUtil = parseInt(document.getElementById('rt-util').textContent);
const tensorUtil = parseInt(document.getElementById('tensor-util').textContent);
// CUDA Cores
const cudaCores = document.querySelectorAll('[data-type="cuda"]');
const activeCudaCores = Math.floor(cudaCores.length * (cudaUtil / 100));
cudaCores.forEach((core, index) => {
if (index < activeCudaCores) {
core.classList.add('core-active');
} else {
core.classList.remove('core-active');
core.style.backgroundColor = '#374151';
}
});
// RT Cores
const rtCores = document.querySelectorAll('[data-type="rt"]');
const activeRtCores = Math.min(rtCores.length, Math.ceil(rtCores.length * (rtUtil / 100)));
rtCores.forEach((core, index) => {
if (index < activeRtCores) {
core.classList.add('rt-active');
} else {
core.classList.remove('rt-active');
core.style.backgroundColor = '#374151';
}
});
// Tensor Cores
const tensorCores = document.querySelectorAll('[data-type="tensor"]');
const activeTensorCores = Math.min(tensorCores.length, Math.ceil(tensorCores.length * (tensorUtil / 100)));
tensorCores.forEach((core, index) => {
if (index < activeTensorCores) {
core.classList.add('tensor-active');
} else {
core.classList.remove('tensor-active');
core.style.backgroundColor = '#374151';
}
});
}
// Update fan speed based on temperature
function updateFanSpeed() {
const temp = parseInt(document.getElementById('gpu-temp').textContent);
const fanSpeed = Math.min(100, Math.max(0, (temp - 40) * 3));
const fan1 = document.getElementById('fan1');
fan1.style.transform = `rotate(${fanSpeed * 3.6}deg)`;
}
// Randomize metrics slightly for realism
function randomizeMetrics() {
// Current values
let cudaUtil = parseInt(document.getElementById('cuda-util').textContent);
let rtUtil = parseInt(document.getElementById('rt-util').textContent);
let tensorUtil = parseInt(document.getElementById('tensor-util').textContent);
let temp = parseInt(document.getElementById('gpu-temp').textContent);
let power = parseInt(document.getElementById('power-draw').textContent);
let fp32 = parseFloat(document.getElementById('fp32-perf').textContent);
let vram = parseFloat(document.getElementById('vram-usage').textContent);
let bandwidth = parseInt(document.getElementById('mem-bandwidth').textContent);
// Add some random variation
cudaUtil = Math.max(10, Math.min(100, cudaUtil + (Math.random() * 6 - 3)));
rtUtil = Math.max(10, Math.min(100, rtUtil + (Math.random() * 6 - 3)));
tensorUtil = Math.max(10, Math.min(100, tensorUtil + (Math.random() * 6 - 3)));
temp = Math.max(30, Math.min(85, temp + (Math.random() * 4 - 2)));
power = Math.max(200, Math.min(450, power + (Math.random() * 20 - 10)));
fp32 = Math.max(50, Math.min(75, fp32 + (Math.random() * 1 - 0.5)));
vram = Math.max(1, Math.min(24, vram + (Math.random() * 0.4 - 0.2)));
bandwidth = Math.max(700, Math.min(950, bandwidth + (Math.random() * 20 - 10)));
// Update displays
document.getElementById('cuda-util').textContent = Math.round(cudaUtil);
document.getElementById('rt-util').textContent = Math.round(rtUtil);
document.getElementById('tensor-util').textContent = Math.round(tensorUtil);
document.getElementById('gpu-temp').textContent = Math.round(temp);
document.getElementById('power-draw').textContent = Math.round(power);
document.getElementById('fp32-perf').textContent = fp32.toFixed(1);
document.getElementById('vram-usage').textContent = vram.toFixed(1);
document.getElementById('mem-bandwidth').textContent = Math.round(bandwidth);
// Update visualizations
updateCoreActivity();
updateFanSpeed();
// Update sliders to match
document.getElementById('cuda-slider').value = Math.round(cudaUtil);
document.getElementById('rt-slider').value = Math.round(rtUtil);
document.getElementById('tensor-slider').value = Math.round(tensorUtil);
document.getElementById('vram-slider').value = vram.toFixed(1);
document.getElementById('cuda-slider-value').textContent = Math.round(cudaUtil) + '%';
document.getElementById('rt-slider-value').textContent = Math.round(rtUtil) + '%';
document.getElementById('tensor-slider-value').textContent = Math.round(tensorUtil) + '%';
document.getElementById('vram-slider-value').textContent = vram.toFixed(1) + 'GB';
// Add random log entries occasionally
if (Math.random() > 0.7) {
addRandomLogEntry();
}
}
// Add random log entries
function addRandomLogEntry() {
const logEntries = [
{text: "[PERF] Adjusting CUDA core allocation", color: "text-green-400"},
{text: "[RT] Processing ray tracing workload", color: "text-blue-400"},
{text: "[TENSOR] AI upscaling frame", color: "text-pink-400"},
{text: "[MEM] Transferring assets to VRAM", color: "text-blue-300"},
{text: "[DLSS] Analyzing frame with neural network", color: "text-yellow-400"},
{text: "[THERM] Adjusting fan curve", color: "text-orange-400"},
{text: "[SYSTEM] Emulation stable", color: "text-green-400"}
];
const entry = logEntries[Math.floor(Math.random() * logEntries.length)];
const logElement = document.createElement('div');
logElement.className = entry.color;
logElement.textContent = entry.text;
const logContainer = document.getElementById('emulation-log');
logContainer.appendChild(logElement);
logContainer.scrollTop = logContainer.scrollHeight;
}
// Initialize sliders
function initSliders() {
document.getElementById('cuda-slider').addEventListener('input', function() {
document.getElementById('cuda-util').textContent = this.value;
document.getElementById('cuda-slider-value').textContent = this.value + '%';
updateCoreActivity();
});
document.getElementById('rt-slider').addEventListener('input', function() {
document.getElementById('rt-util').textContent = this.value;
document.getElementById('rt-slider-value').textContent = this.value + '%';
updateCoreActivity();
});
document.getElementById('tensor-slider').addEventListener('input', function() {
document.getElementById('tensor-util').textContent = this.value;
document.getElementById('tensor-slider-value').textContent = this.value + '%';
updateCoreActivity();
});
document.getElementById('vram-slider').addEventListener('input', function() {
document.getElementById('vram-usage').textContent = this.value;
document.getElementById('vram-slider-value').textContent = this.value + 'GB';
});
}
// Initialize everything
document.addEventListener('DOMContentLoaded', function() {
initCoreVisualization();
initSliders();
updateCoreActivity();
updateFanSpeed();
// Start randomizing metrics periodically
setInterval(randomizeMetrics, 1500);
// Add some initial log entries
setTimeout(() => {
addRandomLogEntry();
setTimeout(() => {
addRandomLogEntry();
setTimeout(() => {
addRandomLogEntry();
}, 1000);
}, 800);
}, 500);
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=PrinzPesia/rtx-5080-ti-emulator" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>