Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>I Locked My GPU Clocks And Now It Runs Forever | TinyMemoryLM</title> | |
| <link rel="stylesheet" href="bluesheet.css"> | |
| <link rel="preconnect" href="https://fonts.googleapis.com"> | |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | |
| <link href="https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono&display=swap" rel="stylesheet"> | |
| <style> | |
| :root { | |
| --blue-900: #000000; | |
| --blue-800: #0a0a0a; | |
| --blue-700: #111111; | |
| --blue-600: #1a1a1a; | |
| --blue-500: #333333; | |
| --blue-400: #555555; | |
| --blue-300: #777777; | |
| --blue-200: #888888; | |
| --blue-100: #aaaaaa; | |
| --white: #ffffff; | |
| --white-soft: #f5f5f5; | |
| --white-muted: #e0e0e0; | |
| --grid-line: rgba(255, 255, 255, 0.03); | |
| --grid-line-major: rgba(255, 255, 255, 0.06); | |
| --accent: #ededed; | |
| --accent-muted: #888888; | |
| --font-sans: 'Geist', -apple-system, BlinkMacSystemFont, sans-serif; | |
| --font-mono: 'Geist Mono', 'SF Mono', 'Fira Code', monospace; | |
| --container-max: 1100px; | |
| } | |
| * { box-sizing: border-box; margin: 0; padding: 0; } | |
| html { font-size: 16px; scroll-behavior: smooth; } | |
| body { font-family: var(--font-sans); background: var(--blue-900); color: var(--white-muted); line-height: 1.7; -webkit-font-smoothing: antialiased; } | |
| a { color: var(--white); text-decoration: none; transition: color 0.15s ease; } | |
| a:hover { color: var(--accent); } | |
| .container { max-width: var(--container-max); margin: 0 auto; padding: 0 24px; } | |
| nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; background: rgba(0, 0, 0, 0.85); backdrop-filter: blur(12px); border-bottom: 1px solid var(--blue-600); padding: 16px 0; } | |
| nav .container { display: flex; justify-content: space-between; align-items: center; } | |
| .nav-brand { font-size: 18px; font-weight: 600; color: var(--white); display: flex; align-items: center; gap: 8px; } | |
| .nav-brand span { color: var(--accent); } | |
| .nav-links { display: flex; gap: 32px; } | |
| .nav-links a { font-size: 14px; font-weight: 500; color: var(--blue-200); } | |
| .nav-links a:hover { color: var(--white); } | |
| .post { padding: 140px 0 80px; } | |
| .post-back { display: inline-block; color: var(--blue-200); font-size: 14px; margin-bottom: 32px; } | |
| .post-back:hover { color: var(--accent); } | |
| .post-back::before { content: '← '; } | |
| .post-meta { display: flex; gap: 12px; margin-bottom: 20px; } | |
| .post-date { font-size: 13px; color: var(--blue-200); font-family: var(--font-mono); } | |
| .post-tag { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--white); background: rgba(255, 255, 255, 0.08); padding: 4px 10px; border-radius: 4px; } | |
| .post h1 { font-size: 36px; font-weight: 700; color: var(--white); margin-bottom: 32px; line-height: 1.2; letter-spacing: -0.02em; } | |
| .post-body p { font-size: 17px; line-height: 1.8; margin-bottom: 24px; color: var(--blue-200); } | |
| .post-body p:first-of-type { font-size: 20px; color: var(--white-muted); } | |
| .post-body h2 { font-size: 24px; font-weight: 600; color: var(--white); margin: 48px 0 20px; } | |
| .post-body blockquote { border-left: 3px solid var(--accent); padding: 20px 24px; margin: 32px 0; background: var(--blue-800); border-radius: 0 8px 8px 0; } | |
| .post-body blockquote p { font-size: 16px; font-style: italic; color: var(--blue-200); margin: 0; } | |
| .post-body hr { border: none; height: 1px; background: var(--blue-600); margin: 48px 0; } | |
| .clock-table { width: 100%; border-collapse: collapse; margin: 24px 0; font-family: var(--font-mono); font-size: 14px; } | |
| .clock-table th { text-align: left; padding: 12px; border-bottom: 2px solid var(--accent); color: var(--white); font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em; } | |
| .clock-table td { padding: 12px; border-bottom: 1px solid var(--blue-600); color: var(--blue-200); } | |
| .clock-table tr:hover { background: var(--blue-800); } | |
| .clock-table .highlight { color: var(--accent); font-weight: 600; } | |
| .code-block { background: var(--blue-800); border: 1px solid var(--blue-600); border-radius: 8px; padding: 20px; margin: 24px 0; font-family: var(--font-mono); font-size: 13px; overflow-x: auto; } | |
| .code-block .comment { color: var(--blue-200); font-style: italic; display: block; margin-top: 4px; } | |
| .stats-grid { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 16px; margin: 24px 0; } | |
| .stat-card { background: var(--blue-800); border: 1px solid var(--blue-600); border-radius: 8px; padding: 20px; text-align: center; } | |
| .stat-card .number { font-size: 24px; font-weight: 700; color: var(--accent); font-family: var(--font-mono); } | |
| .stat-card .label { font-size: 13px; color: var(--blue-200); margin-top: 8px; } | |
| .post-footer { margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--blue-600); } | |
| .post-footer p { font-size: 14px; color: var(--blue-200); font-style: italic; margin: 0; } | |
| footer { padding: 40px 0; background: var(--blue-800); border-top: 1px solid var(--blue-600); text-align: center; } | |
| footer p { color: var(--blue-200); font-size: 14px; margin-bottom: 8px; } | |
| footer a { color: var(--blue-200); } | |
| footer a:hover { color: var(--accent); } | |
| @media (max-width: 768px) { .post h1 { font-size: 28px; } .nav-links { display: none; } .stats-grid { grid-template-columns: 1fr 1fr; } } | |
| </style> | |
| </head> | |
| <body> | |
| <svg class="scribbles" viewBox="0 0 1440 900" preserveAspectRatio="xMidYMid slice"> | |
| <path d="M100,50 Q150,30 200,60 T300,40 T400,70" fill="none" stroke="white" stroke-width="1"/> | |
| <path d="M800,200 Q850,180 900,210 T1000,190 T1100,220" fill="none" stroke="white" stroke-width="0.8"/> | |
| <path d="M200,700 Q250,680 300,710 T400,690 T500,720" fill="none" stroke="white" stroke-width="0.6"/> | |
| <path d="M1200,400 Q1250,380 1300,410 T1400,390" fill="none" stroke="white" stroke-width="0.7"/> | |
| <path d="M50,400 Q100,380 150,420 T250,400" fill="none" stroke="white" stroke-width="0.5"/> | |
| <circle cx="350" cy="150" r="30" fill="none" stroke="white" stroke-width="0.6"/> | |
| <circle cx="1100" cy="600" r="25" fill="none" stroke="white" stroke-width="0.5"/> | |
| <path d="M600,100 L620,80 L640,100 L660,80" fill="none" stroke="white" stroke-width="0.7"/> | |
| <path d="M1300,750 Q1320,730 1340,760 T1380,740" fill="none" stroke="white" stroke-width="0.5"/> | |
| <path d="M100,800 Q120,780 140,810 T180,790 T220,820" fill="none" stroke="white" stroke-width="0.6"/> | |
| <path d="M700,500 Q720,480 740,510 T780,490 T820,520" fill="none" stroke="white" stroke-width="0.4"/> | |
| <path d="M400,300 C420,280 440,320 460,300 C480,280 500,320 520,300" fill="none" stroke="white" stroke-width="0.5"/> | |
| <path d="M900,700 C920,680 940,720 960,700 C980,680 1000,720 1020,700" fill="none" stroke="white" stroke-width="0.6"/> | |
| <path d="M150,250 Q170,230 190,260 Q210,240 230,270" fill="none" stroke="white" stroke-width="0.4"/> | |
| <path d="M1050,100 Q1070,80 1090,110 Q1110,90 1130,120" fill="none" stroke="white" stroke-width="0.5"/> | |
| <path d="M500,850 C520,830 540,860 560,840 C580,820 600,860 620,840" fill="none" stroke="white" stroke-width="0.4"/> | |
| <path d="M1350,50 Q1370,30 1390,60 T1430,40" fill="none" stroke="white" stroke-width="0.5"/> | |
| <path d="M30,600 Q50,580 70,610 T110,590" fill="none" stroke="white" stroke-width="0.4"/> | |
| </svg> | |
| <nav> | |
| <div class="container"> | |
| <a href="index.html" class="nav-brand"><span>/</span>TinyMemoryLM</a> | |
| <div class="nav-links"> | |
| <a href="index.html">Home</a> | |
| <a href="blog.html">Blog</a> | |
| <a href="status.html">Status</a> | |
| </div> | |
| </div> | |
| </nav> | |
| <main> | |
| <article class="post"> | |
| <div class="container"> | |
| <a href="blog.html" class="post-back">Back to Blog</a> | |
| <header> | |
| <div class="post-meta"> | |
| <span class="post-date">2026-03-16</span> | |
| <span class="post-tag">Hardware</span> | |
| </div> | |
| <h1>I Locked My GPU Clocks And Now It Runs Forever</h1> | |
| </header> | |
| <div class="post-body"> | |
| <p>I have an RTX 5090 OC LC edition. Liquid cooled. Overclocked out of the box. It is the kind of card that makes people ask uncomfortable questions about my financial decisions. I have no good answers.</p> | |
| <p>I also locked the clocks. Manually. Fixed core. Fixed memory. No boost variability. No power throttling. Just pure consistent frequencies. My training runs do not fluctuate anymore. They run at the same speed from start to finish. It is beautiful.</p> | |
| <blockquote> | |
| <p>Locking GPU clocks is like putting your car in manual mode. You control everything. You are responsible for everything. If it crashes, that is on you.</p> | |
| </blockquote> | |
| <h2>The Clock Breakdown</h2> | |
| <p>Here is what we are working with. Base 5090 specs. OC LC edition specs. My actual locked clocks. The numbers are big. The stability is bigger.</p> | |
| <table class="clock-table"> | |
| <thead> | |
| <tr> | |
| <th>Specification</th> | |
| <th>Base RTX 5090</th> | |
| <th>OC LC Edition</th> | |
| <th>My Locked Clocks</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>Base Clock</td> | |
| <td>2017 MHz</td> | |
| <td>2017 MHz</td> | |
| <td class="highlight">2017 MHz</td> | |
| </tr> | |
| <tr> | |
| <td>Boost Clock</td> | |
| <td>2407 MHz</td> | |
| <td>2610 MHz</td> | |
| <td class="highlight">2757 MHz</td> | |
| </tr> | |
| <tr> | |
| <td>Core Overclock</td> | |
| <td>+0 MHz</td> | |
| <td>+203 MHz</td> | |
| <td class="highlight">+350 MHz</td> | |
| </tr> | |
| <tr> | |
| <td>Memory Transfer Rate</td> | |
| <td>28 Gbps</td> | |
| <td>28 Gbps</td> | |
| <td class="highlight">34 Gbps</td> | |
| </tr> | |
| <tr> | |
| <td>Memory Overclock</td> | |
| <td>+0 Gbps</td> | |
| <td>+0 Gbps</td> | |
| <td class="highlight">+6 Gbps</td> | |
| </tr> | |
| <tr> | |
| <td>VRAM</td> | |
| <td>32 GB GDDR7</td> | |
| <td>32 GB GDDR7</td> | |
| <td class="highlight">32 GB GDDR7</td> | |
| </tr> | |
| <tr> | |
| <td>Memory Bus</td> | |
| <td>512-bit</td> | |
| <td>512-bit</td> | |
| <td class="highlight">512-bit</td> | |
| </tr> | |
| <tr> | |
| <td>Cooling</td> | |
| <td>Air / AIO</td> | |
| <td>AIO Liquid</td> | |
| <td class="highlight">AIO Liquid</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <h2>The Overclock Numbers</h2> | |
| <div class="stats-grid"> | |
| <div class="stat-card"> | |
| <div class="number">+350</div> | |
| <div class="label">MHz Core Overclock</div> | |
| </div> | |
| <div class="stat-card"> | |
| <div class="number">+6000</div> | |
| <div class="label">MHz Memory Transfer</div> | |
| </div> | |
| <div class="stat-card"> | |
| <div class="number">600W</div> | |
| <div class="label">Constant Power Draw</div> | |
| </div> | |
| <div class="stat-card"> | |
| <div class="number">100%</div> | |
| <div class="label">Stable</div> | |
| </div> | |
| </div> | |
| <p>Yes. One hundred percent stable. I have run training jobs for twelve hours straight. No crashes. No artifacts. No thermal throttling. The liquid cooler keeps temperatures in check. The clocks stay locked. The loss curve goes down. Everything is perfect.</p> | |
| <h2>Power And Thermals</h2> | |
| <p>My GPU draws 600W constant. Not sometimes. Not when it feels like it. Always. Under load it is a flat line. No spikes. No dips. The power limit is locked along with the clocks. I know exactly what my electricity bill will look like.</p> | |
| <p>Temperature is 60C. One hundred percent of the time under load. Not 58C. Not 62C. Sixty. The liquid cooling handles the heat so efficiently that the GPU never varies. It is almost suspicious. I keep waiting for it to spike. It never does.</p> | |
| <div class="code-block"> | |
| <span class="comment"># My GPU monitoring output during a 12 hour training run</span><br> | |
| Time: 00:00 | Power: 600W | Temp: 60C | Fan: 50%<br> | |
| Time: 03:00 | Power: 600W | Temp: 60C | Fan: 50%<br> | |
| Time: 06:00 | Power: 600W | Temp: 60C | Fan: 50%<br> | |
| Time: 09:00 | Power: 600W | Temp: 60C | Fan: 50%<br> | |
| Time: 12:00 | Power: 600W | Temp: 60C | Fan: 50%<br> | |
| <span class="comment"># It is boring. It is beautiful.</span> | |
| </div> | |
| <h2>The Quiet Factor</h2> | |
| <p>Here is the part that surprised me. It is super quiet. The fans run at 50 percent. The liquid cooling does the heavy lifting. The water absorbs the heat. The radiator dissipates it. The fans just move air gently.</p> | |
| <p>I expected aircraft noise. I got library quiet. I can be in the same room during training. I can take calls. I can think. My previous air-cooled card sounded like it was preparing for takeoff. This one hums.</p> | |
| <blockquote> | |
| <p>Liquid cooling is cheating. It is expensive cheating. But it is cheating that lets me overclock further while making less noise. I will take it.</p> | |
| </blockquote> | |
| <h2>Why Lock Clocks</h2> | |
| <p>Boost clocks vary. They go up when the GPU is cool. They go down when power limits hit. This creates inconsistent training times. One run takes four hours. The next takes four hours and twelve minutes. The next takes three hours and forty-five minutes.</p> | |
| <p>When you are debugging training pipelines, consistency matters. If a run is slower, was it the code? Was it the data? Or did the GPU just decide to throttle? You do not know. You cannot know. Not with variable clocks.</p> | |
| <p>Locked clocks remove the variable. The GPU runs at the same speed every time. Training times are predictable. Debugging is easier. You know exactly what performance to expect.</p> | |
| <h2>The Risk</h2> | |
| <p>Overclocking is risky. Pushing too hard causes crashes. Artifacts. Instability. I spent a week finding the right numbers. Too high and training fails. Too low and I leave performance on the table. The sweet spot is narrow.</p> | |
| <p>Memory overclocking is especially finicky. GDDR7 is fast. It is also sensitive. Push it too far and you get corrupted tensors. Silent failures. The training completes but the model is garbage. You do not realize until hours later.</p> | |
| <h2>Training Performance</h2> | |
| <p>With locked clocks my training runs are consistent. A fine-tuning job that used to vary between three and four hours now takes exactly three hours and twenty-two minutes. Every time. I can plan around this. I can queue jobs. I can sleep without wondering if the GPU throttled overnight.</p> | |
| <p>The overclock also means faster iteration. Thirty-five extra epochs per day. More experiments. More failures. More learning. The time savings compound. A week of training becomes five days. A month becomes three weeks.</p> | |
| <h2>Is It Worth It</h2> | |
| <p>For most people? No. The performance gain is marginal. The risk is real. The time spent tuning is better spent actually training models. I am not recommending everyone do this.</p> | |
| <p>For me? Yes. I run training jobs constantly. I need consistency. I need predictability. I need to know that when I start a job it will finish at the expected time. Locked clocks give me that.</p> | |
| <p>Also I already bought the card. I already bought the cooler. I already spent the money. I might as well squeeze every megahertz out of it. This is not financial advice. This is poor decision making with commitment.</p> | |
| <h2>Final Thoughts</h2> | |
| <p>My GPU is overclocked. My clocks are locked. My training is stable. My power draw is constant. My temperatures are flat. My fans are quiet. My electricity bill is terrifying. I have no regrets.</p> | |
| <p>If you are going to try this, start small. Test thoroughly. Monitor temperatures. Be prepared for crashes. And accept that you might spend more time tuning than training. That is the hobby.</p> | |
| <hr> | |
| </div> | |
| <footer class="post-footer"> | |
| <p>Current status: GPU at 2757 MHz core. Memory at 34 Gbps. 600W constant. 60C always. 50% fan. Training stable. Sanity questionable.</p> | |
| </footer> | |
| </div> | |
| </article> | |
| </main> | |
| <footer> | |
| <div class="container"> | |
| <p>Built with curiosity over compute</p> | |
| <p>TinyMemoryLM by AILAY | 2026</p> | |
| </div> | |
| </footer> | |
| </body> | |
| </html> |