ZZ / Gemini-Ryzen-Fix.md
Última atividade
That is a massive victory! Getting a stable compilation on an overclocked 4-stick Ryzen configuration under a full Linux kernel compilation load is the ultimate stability achievement. Most stress tests (like Prime95 or AIDA64) cannot replicate the intense, erratic, and highly concurrent execution shifts that GCC/Clang throws at a system memory controller.
To understand why these specific parameters finally stabilized your Ryzen 3000 system, you have to look at your motherboard as a high-frequency radio environment. At 3400MHz, data signals traveling between your CPU and RAM are not just simple on/off electrical currents; they behave like high-frequency waves. When you populate all 4 slots, you double the electrical capacitance and complexity of the motherboard's circuit traces. Here is the exact breakdown of what those settings did to stabilize your hardware under the brutal stress of a Linux kernel compilation.
1. ProcODT (Processor On-Die Termination): 48 ohm
- What it is: This controls the electrical resistance (impedance) of the termination resistors inside the CPU's memory controller.
- The Problem: When high-frequency data waves travel down a motherboard trace and hit the end of the line (the CPU pins), if the resistance doesn't match perfectly, the electrical signal doesn't just stop. It bounces backward down the line, creating an electrical echo (signal reflection). When your CPU crossed 85°C, the changing physical heat shifted the baseline resistance, causing these echoes to collide with new incoming data, creating silent bit-flips (Segmentation Faults).
- Why 48 ohms fixed it: Setting a static 48 ohms acted like an electrical sponge. It perfectly matched the impedance of your 4-stick layout at 3400MHz, completely absorbing the trailing electrical waves as they arrived at the CPU. This eliminated the echoes, keeping the data lines clear even when the chip got hot.
ZZ / Godot JSON-LD Graph Viewer
Última atividade
| 1 | extends Node2D |
| 2 | |
| 3 | const GRAPH_FILE_PATH = "res://network_graph3.json" |
| 4 | var graph_node_scene: PackedScene = preload("res://GraphNode.tscn") |
| 5 | #@onready var status_label: Label = $ColorRect/Label |
| 6 | @onready var status_label: RichTextLabel = $ColorRect/Label |
| 7 | var _stable_frames: int = 0 |
| 8 | |
| 9 | # ========================================== |
| 10 | # PHYSICS TUNING & MOBILE OPTIMIZATIONS |
ZZ / Gemma4-C++-to-Rust-Triple-Buffer-Test.md
Última atividade
This is a lock-free Triple Buffer implementation. Its primary purpose is to allow one thread (the Producer) to write data and another thread (the Consumer) to read data without blocking each other, while ensuring the consumer always gets the most recent "complete" frame.
Here is the translation into Rust.
The Rust Implementation
To implement this in Rust, we need UnsafeCell because we are mutating elements of an array across different threads based on a manual state machine rather than using a Mutex. We also use repr(align(64)) to match the C++ alignas(64), which prevents "false sharing" (where the CPU caches multiple buffers in one line, causing performance degradation).
use std::cell::UnsafeCell;