feat: execute FlashKDA on RTX 5090

This commit is contained in:
wuyang
2026-07-29 13:36:49 +08:00
parent 1146208b5e
commit 2ef846f751
16 changed files with 1189 additions and 51 deletions
+100 -13
View File
@@ -3,6 +3,7 @@ import {
k3ArtifactEvidence,
k3ArtifactLayers,
k3ArtifactSnapshot as snapshot,
k3FlashKdaRuntime as runtime,
k3ArtifactViews,
} from "@/data/k3Artifacts";
@@ -10,6 +11,9 @@ const checkpoint = snapshot.checkpoint;
const audit = snapshot.parameter_audit;
const probe = snapshot.router_stress_probe;
const flash = snapshot.flashkda;
const localBenchmarks = runtime.benchmarks.filter((row) => row.name.startsWith("k3_"));
const localInitial = localBenchmarks[0];
const localInitialTiming = localInitial.timings.bf16_state;
const bytes = (value: number) => {
if (value >= 2 ** 40) return `${(value / 2 ** 40).toFixed(3)} TiB`;
@@ -263,8 +267,8 @@ const benchmarkDevices = [
<section class="artifact-panel" data-artifact-panel="reproduction" hidden>
<div class="panel-intro">
<div><span>X + S / WHAT ACTUALLY RAN</span><h4>作者 benchmark、本站编译尝试与合成反例,三者不能写成同一种实测</h4></div>
<p>RTX 5090 是 sm_120,但本机 PyTorch CUDA 12.8 低于 FlashKDA README 的 12.9+;kernel 尚未执行。</p>
<div><span>X + O + S / WHAT ACTUALLY RAN</span><h4>作者表、本机 RTX 5090 实测与合成 router 反例,三条证据各自归位</h4></div>
<p>FlashKDA 已用 CUDA 13.0 容器编译为 sm_120a wheel,并在本站 RTX 5090 上通过 exact-match 与 K3 形状计时;输入仍是合成 tensor,不是 checkpoint hidden state。</p>
</div>
<div class="repro-controls">
<label><span>OFFICIAL DEVICE</span><select data-benchmark-device>
@@ -274,29 +278,54 @@ const benchmarkDevices = [
<option value="Fixed">Fixed T=8192</option>
<option value="Varlen, `seq_lens`=`1024 x 8`">8 × 1024 varlen</option>
</select></label>
<label><span>ROUTER STRESS</span><select data-router-mode>
<option value="raw">without correction bias</option>
<option value="bias">with checkpoint bias</option>
<label><span>LOCAL RTX 5090 CASE</span><select data-local-case>
<option value="k3_fixed_shape">Fixed · 8192 × 96 × 128</option>
<option value="k3_varlen_shape">Varlen · 6 sequences / 8192 total</option>
</select></label>
<label><span>LOCAL STATE MODE</span><select data-local-state>
<option value="bf16_state">BF16 initial + final state</option>
<option value="no_state">No recurrent state I/O</option>
<option value="fp32_state">FP32 initial + final state</option>
</select></label>
</div>
<div class="benchmark-readout">
<article><span>FLASHKDA</span><b data-benchmark-flash>2.6220 ms</b><p>O / author repository</p></article>
<article><span>FLA CHUNK KDA</span><b data-benchmark-fla>4.8388 ms</b><p>O / same author table</p></article>
<article class="accent"><span>AUTHOR SPEEDUP</span><b data-benchmark-speedup>1.85×</b><p>不能外推到 RTX 5090</p></article>
<article class="dark"><span>LOCAL KERNEL</span><b>NOT RUN</b><p>CUDA 12.8 &lt; official 12.9+</p></article>
<article class="dark"><span>AUTHOR DEVICE</span><b data-benchmark-device-label>H20</b><p>与本站环境分开比较</p></article>
</div>
<div
data-local-benchmark-json={JSON.stringify(localBenchmarks)}
hidden
></div>
<div class="benchmark-readout local-readout">
<article class="dark"><span>LOCAL MEAN</span><b data-local-mean>{localInitialTiming.mean_ms.toFixed(4)} ms</b><p>X / 300 CUDA-event samples</p></article>
<article><span>LOCAL P95</span><b data-local-p95>{localInitialTiming.p95_ms.toFixed(4)} ms</b><p data-local-mode-copy>BF16 state · fixed</p></article>
<article><span>SEQUENCE RATE</span><b data-local-throughput>{(localInitialTiming.sequence_tokens_per_second / 1e6).toFixed(3)}M/s</b><p>8192 sequence tokens / latency</p></article>
<article class="accent"><span>PEAK ALLOCATED</span><b data-local-memory>{localInitial.peak_allocated_mib.toFixed(1)} MiB</b><p>该 case 三种 state mode 合并峰值</p></article>
</div>
<div class="execution-gate">
<article><span>EXACT SUITE</span><b>{runtime.correctness.cases.length} / {runtime.correctness.cases.length} PASS</b><p>one chunk、tail、multi-head、96 heads、varlen。</p></article>
<article><span>MAX ABS ERROR</span><b>0.0</b><p>BF16 output 与 final state 均逐元素相等。</p></article>
<article><span>RUNTIME</span><b>Py {runtime.environment.python} · Torch {runtime.environment.torch}</b><p>CUDA {runtime.environment.torch_cuda} · sm_{runtime.environment.capability.join("")}</p></article>
<article><span>WHEEL SHA-256</span><b>{runtime.provenance.wheel_sha256.slice(0, 12)}…</b><p>{runtime.provenance.flashkda_revision.slice(0, 9)} · CPython 3.12</p></article>
</div>
<div class="local-build">
<article><span>ATTEMPT 01</span><b>g++ 15 rejected</b><p>CUDA 12.8 host compiler range要求 &lt;14。</p></article>
<article><span>HOST BUILD</span><b>glibc 2.43 blocked</b><p>CUDA math headers 与系统 `rsqrt/rsqrtf` exception declarations 冲突。</p></article>
<i>→</i>
<article><span>ATTEMPT 02</span><b>g++ 13 reached nvcc</b><p>随后在 glibc math declarations 处与 CUDA 12.8 headers 冲突。</p></article>
<article><span>ISOLATED BUILD</span><b>sm_120a wheel passed</b><p>CUDA 13.0.2 · Ubuntu 24.04 · glibc 2.39;wheel 3.81 MB。</p></article>
<i>→</i>
<article class="warn"><span>NEXT GATE</span><b>CUDA 12.9+ matched env</b><p>再跑 exact correctness 与本机 benchmark。</p></article>
<article class="warn"><span>GPU EXECUTION</span><b>RTX 5090 exact 6/6</b><p>fixed / varlen K3 形状各 900 次计时,三种 state mode。</p></article>
</div>
<div class="router-counterexample">
<div>
<span>S / REAL WEIGHTS, SYNTHETIC HIDDEN</span>
<h5>随机 RMS=1 输入为什么不能评价 Quantile Balancing</h5>
<p>2,048 个固定 seed 向量通过真实 `896×7168` router;它们不是模型 token hidden states。</p>
<label><span>ROUTER STRESS</span><select data-router-mode>
<option value="raw">without correction bias</option>
<option value="bias">with checkpoint bias</option>
</select></label>
</div>
<div class="router-stats">
<p><span>LOAD CV</span><b data-router-cv>{probe.without_correction_bias.cv.toFixed(3)}</b></p>
@@ -305,7 +334,7 @@ const benchmarkDevices = [
<p><span>TOP-16 OVERLAP</span><b>{probe.membership_overlap_mean.toFixed(2)} / 16</b></p>
</div>
</div>
<div class="boundary"><b>X/S boundary</b><p>编译失败是本站真实执行结果;router counterexample 只证明 hidden distribution 不可省略,不证明真实 QB 变好或变坏。</p></div>
<div class="boundary"><b>X/S/U boundary</b><p>本机 kernel 实测只验证公开 FlashKDA API 与合成合法 shape;没有加载 K3 checkpoint,也不解决 checkpoint `A_log [128]` 与 API `[96]` 的冲突。Router counterexample 仍只证明 hidden distribution 不可省略。</p></div>
</section>
<footer class="evidence-strip">
@@ -425,10 +454,44 @@ const benchmarkDevices = [
put("[data-benchmark-flash]", `${row.flash.toFixed(4)} ms`);
put("[data-benchmark-fla]", `${row.fla.toFixed(4)} ms`);
put("[data-benchmark-speedup]", `${row.speedup.toFixed(2)}×`);
put("[data-benchmark-device-label]", device.value.toUpperCase());
};
device.addEventListener("input", renderBenchmark);
benchmarkCase.addEventListener("input", renderBenchmark);
type LocalTiming = {
mean_ms: number;
p95_ms: number;
sequence_tokens_per_second: number;
};
type LocalBenchmark = {
name: string;
peak_allocated_mib: number;
timings: Record<"bf16_state" | "no_state" | "fp32_state", LocalTiming>;
};
const localRows = JSON.parse(
$<HTMLElement>("[data-local-benchmark-json]").dataset.localBenchmarkJson ?? "[]",
) as LocalBenchmark[];
const localCase = $<HTMLSelectElement>("[data-local-case]");
const localState = $<HTMLSelectElement>("[data-local-state]");
const localModeLabels = {
bf16_state: "BF16 state",
no_state: "no state I/O",
fp32_state: "FP32 state",
};
const renderLocalBenchmark = () => {
const row = localRows.find((item) => item.name === localCase.value)!;
const state = localState.value as keyof typeof localModeLabels;
const timing = row.timings[state];
put("[data-local-mean]", `${timing.mean_ms.toFixed(4)} ms`);
put("[data-local-p95]", `${timing.p95_ms.toFixed(4)} ms`);
put("[data-local-throughput]", `${(timing.sequence_tokens_per_second / 1e6).toFixed(3)}M/s`);
put("[data-local-memory]", `${row.peak_allocated_mib.toFixed(1)} MiB`);
put("[data-local-mode-copy]", `${localModeLabels[state]} · ${row.name.includes("varlen") ? "varlen" : "fixed"}`);
};
localCase.addEventListener("input", renderLocalBenchmark);
localState.addEventListener("input", renderLocalBenchmark);
const routerMode = $<HTMLSelectElement>("[data-router-mode]");
const routerRows = {
raw: { cv: 2.0845208168, gini: .8310886025, zero: 558 },
@@ -441,6 +504,9 @@ const benchmarkDevices = [
put("[data-router-zero]", row.zero);
};
routerMode.addEventListener("input", renderRouter);
renderBenchmark();
renderLocalBenchmark();
renderRouter();
});
</script>
@@ -656,7 +722,8 @@ const benchmarkDevices = [
.local-build .warn { border-color: var(--signal); background: color-mix(in srgb, var(--signal) 8%, var(--paper)); }
.parameter-control label { display: grid; grid-template-columns: 1fr; gap: 9px; }
.parameter-control select,
.repro-controls select { width: 100%; padding: 9px; border: 1px solid var(--line); color: var(--ink); background: var(--paper-raised); font: .62rem var(--mono); }
.repro-controls select,
.router-counterexample select { width: 100%; padding: 9px; border: 1px solid var(--line); color: var(--ink); background: var(--paper-raised); font: .62rem var(--mono); }
.parameter-control > p { display: flex; justify-content: space-between; gap: 16px; margin: 0; font: .62rem var(--mono); }
.parameter-control > p b { color: var(--copper); }
.distribution { margin: 0 28px 24px; padding: 20px; border: 1px solid var(--line); background: var(--paper); }
@@ -684,11 +751,27 @@ const benchmarkDevices = [
.hypothesis-card p span { margin-top: 8px; color: var(--muted); font-size: .6rem; }
.repro-controls {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-columns: repeat(4, 1fr);
gap: 12px;
margin: 24px 28px;
}
.repro-controls label { display: grid; gap: 9px; padding: 14px; border: 1px solid var(--line); background: var(--paper); }
.local-readout { margin-bottom: 12px; }
.execution-gate {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 12px;
margin: 0 28px 24px;
padding: 12px;
border: 1px solid var(--ink);
background: var(--ink);
}
.execution-gate article { min-width: 0; padding: 14px; border: 1px solid rgba(255,255,255,.18); }
.execution-gate span,
.execution-gate b { display: block; font-family: var(--mono); }
.execution-gate span { color: var(--copper); font-size: .55rem; letter-spacing: .08em; }
.execution-gate b { margin-top: 9px; overflow-wrap: anywhere; color: var(--paper); font-size: .72rem; line-height: 1.35; }
.execution-gate p { margin: 9px 0 0; color: rgba(255,255,255,.6); font-size: .6rem; line-height: 1.5; }
.local-build {
display: grid;
grid-template-columns: 1fr 24px 1fr 24px 1fr;
@@ -708,6 +791,7 @@ const benchmarkDevices = [
background: var(--paper);
}
.router-counterexample > div > p { color: var(--muted); font-size: .67rem; line-height: 1.6; }
.router-counterexample label { display: grid; gap: 8px; margin-top: 14px; color: var(--muted); font: .58rem/1.4 var(--mono); }
.router-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.router-stats p { margin: 0; padding: 12px; border: 1px solid var(--line); }
.router-stats span,
@@ -747,7 +831,8 @@ const benchmarkDevices = [
.layer-readout,
.artifact-metrics,
.benchmark-readout,
.tensor-ledger { grid-template-columns: repeat(2, 1fr); }
.tensor-ledger,
.execution-gate { grid-template-columns: repeat(2, 1fr); }
.tensor-selector { align-items: stretch; flex-wrap: wrap; }
.tensor-selector > span { width: 100%; }
.tensor-table { overflow-x: auto; }
@@ -781,11 +866,13 @@ const benchmarkDevices = [
.repro-controls,
.local-build,
.router-counterexample,
.execution-gate,
.boundary { margin-left: 16px; margin-right: 16px; }
.layer-readout,
.artifact-metrics,
.benchmark-readout,
.tensor-ledger,
.execution-gate,
.router-stats { grid-template-columns: 1fr; }
}
</style>
+3 -3
View File
@@ -590,11 +590,11 @@
"2.43"
]
},
"local_build": {
"status": "blocked_before_kernel execution",
"baseline_host_build": {
"status": "blocked in the default CUDA 12.8 environment; superseded by the separate CUDA 13 runtime probe",
"attempt_1": "system g++ 15 exceeds CUDA 12.8 host compiler range",
"attempt_2": "temporary g++ 13 reaches nvcc, then CUDA 12.8 headers conflict with current glibc math declarations",
"interpretation": "GPU architecture is listed by the repository, but the local CUDA 12.8 stack is below the official CUDA 12.9 requirement"
"interpretation": "this snapshot records the first host path only; see src/data/k3-flashkda-runtime.json for the successful isolated build and RTX 5090 execution"
}
}
}
+328
View File
@@ -0,0 +1,328 @@
{
"schema_version": 1,
"captured_at": "2026-07-29T05:22:14.267504+00:00",
"evidence_identity": "X / local execution on deterministic synthetic tensors",
"boundary": {
"k3_checkpoint_loaded": false,
"real_token_hidden_states": false,
"a_log_shape_conflict_resolved": false,
"benchmark_comparison": "local FlashKDA timings only; author H20/GB200 tables remain separate"
},
"provenance": {
"flashkda_revision": "1ce47ea3bb22c84eb9cc665028399cf35e8ffb0b",
"flashkda_package": "0.0.1+1ce47ea",
"wheel_filename": "flash_kda-0.0.1+1ce47ea-cp312-cp312-linux_x86_64.whl",
"wheel_sha256": "14687b6d84a256d4552f0c73ccf93a601be582aeabcdf49ae3a409266872158d",
"runner": "experiments/k3/flashkda/run_probe.py"
},
"environment": {
"python": "3.12.11",
"platform": "Linux-7.0.0-28-generic-x86_64-with-glibc2.43",
"libc": [
"glibc",
"2.43"
],
"torch": "2.11.0+cu130",
"torch_cuda": "13.0",
"gpu": "NVIDIA GeForce RTX 5090",
"capability": [
12,
0
],
"nvidia_smi": {
"name": "NVIDIA GeForce RTX 5090",
"driver_version": "595.84",
"memory.total": "32607",
"power.limit": "600.00",
"clocks.max.sm": "3105",
"clocks.max.memory": "14001"
},
"flash_kda_module": "/tmp/k3-flashkda-run-cu130/lib/python3.12/site-packages/flash_kda/__init__.py",
"flash_kda_extension": "/tmp/k3-flashkda-run-cu130/lib/python3.12/site-packages/flash_kda_C.cpython-312-x86_64-linux-gnu.so"
},
"correctness": {
"all_exact": true,
"cases": [
{
"name": "one_chunk",
"sequence_lengths": [
16
],
"heads": 1,
"dimension": 128,
"kernel_ms_first_measured": 1.9076780008617789,
"reference_ms": 173.11289900681004,
"output_exact": true,
"state_exact": true,
"output_max_abs_diff": 0.0,
"output_mean_abs_diff": 0.0,
"state_max_abs_diff": 0.0,
"state_mean_abs_diff": 0.0
},
{
"name": "partial_tail",
"sequence_lengths": [
17
],
"heads": 1,
"dimension": 128,
"kernel_ms_first_measured": 0.09024899918586016,
"reference_ms": 2.4010630149859935,
"output_exact": true,
"state_exact": true,
"output_max_abs_diff": 0.0,
"output_mean_abs_diff": 0.0,
"state_max_abs_diff": 0.0,
"state_mean_abs_diff": 0.0
},
{
"name": "two_chunks",
"sequence_lengths": [
32
],
"heads": 1,
"dimension": 128,
"kernel_ms_first_measured": 0.051337992772459984,
"reference_ms": 1.9857370061799884,
"output_exact": true,
"state_exact": true,
"output_max_abs_diff": 0.0,
"output_mean_abs_diff": 0.0,
"state_max_abs_diff": 0.0,
"state_mean_abs_diff": 0.0
},
{
"name": "multi_chunk_multi_head",
"sequence_lengths": [
65
],
"heads": 2,
"dimension": 128,
"kernel_ms_first_measured": 0.0607699912507087,
"reference_ms": 5.533189018024132,
"output_exact": true,
"state_exact": true,
"output_max_abs_diff": 0.0,
"output_mean_abs_diff": 0.0,
"state_max_abs_diff": 0.0,
"state_mean_abs_diff": 0.0
},
{
"name": "k3_head_count",
"sequence_lengths": [
17
],
"heads": 96,
"dimension": 128,
"kernel_ms_first_measured": 0.05647100624628365,
"reference_ms": 87.05275200190954,
"output_exact": true,
"state_exact": true,
"output_max_abs_diff": 0.0,
"output_mean_abs_diff": 0.0,
"state_max_abs_diff": 0.0,
"state_mean_abs_diff": 0.0
},
{
"name": "varlen_partial_chunks",
"sequence_lengths": [
17,
31
],
"heads": 2,
"dimension": 128,
"kernel_ms_first_measured": 0.1232630165759474,
"reference_ms": 4.736603004857898,
"output_exact": true,
"state_exact": true,
"output_max_abs_diff": 0.0,
"output_mean_abs_diff": 0.0,
"state_max_abs_diff": 0.0,
"state_mean_abs_diff": 0.0
}
]
},
"benchmarks": [
{
"name": "teaching_scale",
"sequence_lengths": [
512
],
"total_tokens": 512,
"heads": 8,
"dimension": 128,
"warmup": 20,
"iters": 100,
"repeats": 3,
"timings": {
"bf16_state": {
"samples": 300,
"mean_ms": 0.06259957360724608,
"min_ms": 0.06054399907588959,
"p50_ms": 0.06233600154519081,
"p95_ms": 0.06326559744775295,
"max_ms": 0.21401600539684296,
"sequence_tokens_per_second": 8178969.4481358975
},
"no_state": {
"samples": 300,
"mean_ms": 0.0588647465283672,
"min_ms": 0.056992001831531525,
"p50_ms": 0.05873600021004677,
"p95_ms": 0.05920000001788139,
"max_ms": 0.0729919970035553,
"sequence_tokens_per_second": 8697905.456082527
},
"fp32_state": {
"samples": 300,
"mean_ms": 0.0638275195658207,
"min_ms": 0.062463998794555664,
"p50_ms": 0.0631679967045784,
"p95_ms": 0.06521599739789963,
"max_ms": 0.08054400235414505,
"sequence_tokens_per_second": 8021618.315780101
}
},
"output_abs_mean_after_last_run": 0.0026643681339919567,
"peak_allocated_mib": 18.63720703125,
"peak_reserved_mib": 28.0
},
{
"name": "intermediate",
"sequence_lengths": [
2048
],
"total_tokens": 2048,
"heads": 32,
"dimension": 128,
"warmup": 20,
"iters": 100,
"repeats": 3,
"timings": {
"bf16_state": {
"samples": 300,
"mean_ms": 0.4393576521674792,
"min_ms": 0.4354879856109619,
"p50_ms": 0.43958398699760437,
"p95_ms": 0.441633602976799,
"max_ms": 0.4665600061416626,
"sequence_tokens_per_second": 4661350.47357573
},
"no_state": {
"samples": 300,
"mean_ms": 0.43100970675547917,
"min_ms": 0.42633599042892456,
"p50_ms": 0.4307839870452881,
"p95_ms": 0.43350398540496826,
"max_ms": 0.4801599979400635,
"sequence_tokens_per_second": 4751633.125427203
},
"fp32_state": {
"samples": 300,
"mean_ms": 0.44364384045203525,
"min_ms": 0.44067201018333435,
"p50_ms": 0.4436799883842468,
"p95_ms": 0.4461440145969391,
"max_ms": 0.45952001214027405,
"sequence_tokens_per_second": 4616315.641649082
}
},
"output_abs_mean_after_last_run": 0.0026791957207024097,
"peak_allocated_mib": 158.26611328125,
"peak_reserved_mib": 208.0
},
{
"name": "k3_fixed_shape",
"sequence_lengths": [
8192
],
"total_tokens": 8192,
"heads": 96,
"dimension": 128,
"warmup": 20,
"iters": 100,
"repeats": 3,
"timings": {
"bf16_state": {
"samples": 300,
"mean_ms": 2.620986862977346,
"min_ms": 2.6054399013519287,
"p50_ms": 2.6176319122314453,
"p95_ms": 2.6436815142631533,
"max_ms": 2.6599678993225098,
"sequence_tokens_per_second": 3125540.274816252
},
"no_state": {
"samples": 300,
"mean_ms": 2.615440630118052,
"min_ms": 2.5992319583892822,
"p50_ms": 2.6129279136657715,
"p95_ms": 2.6361759066581727,
"max_ms": 2.6476480960845947,
"sequence_tokens_per_second": 3132168.211224218
},
"fp32_state": {
"samples": 300,
"mean_ms": 2.626678284804026,
"min_ms": 2.6074559688568115,
"p50_ms": 2.6238080263137817,
"p95_ms": 2.650022292137146,
"max_ms": 2.667167901992798,
"sequence_tokens_per_second": 3118767.931113877
}
},
"output_abs_mean_after_last_run": 0.0026801086496561766,
"peak_allocated_mib": 1755.67236328125,
"peak_reserved_mib": 2208.0
},
{
"name": "k3_varlen_shape",
"sequence_lengths": [
1300,
547,
2048,
963,
271,
3063
],
"total_tokens": 8192,
"heads": 96,
"dimension": 128,
"warmup": 20,
"iters": 100,
"repeats": 3,
"timings": {
"bf16_state": {
"samples": 300,
"mean_ms": 2.3335195755958558,
"min_ms": 2.312864065170288,
"p50_ms": 2.330944061279297,
"p95_ms": 2.357441592216492,
"max_ms": 2.3840320110321045,
"sequence_tokens_per_second": 3510576.935232353
},
"no_state": {
"samples": 300,
"mean_ms": 2.3104187711079915,
"min_ms": 2.2939839363098145,
"p50_ms": 2.3101279735565186,
"p95_ms": 2.3254063010215758,
"max_ms": 2.332927942276001,
"sequence_tokens_per_second": 3545677.563929858
},
"fp32_state": {
"samples": 300,
"mean_ms": 2.3596167453130086,
"min_ms": 2.3351359367370605,
"p50_ms": 2.3561919927597046,
"p95_ms": 2.3845438957214355,
"max_ms": 2.3907198905944824,
"sequence_tokens_per_second": 3471750.2392166285
}
},
"output_abs_mean_after_last_run": 0.0026924293488264084,
"peak_allocated_mib": 1845.6728515625,
"peak_reserved_mib": 2214.0
}
]
}
+3 -1
View File
@@ -1,6 +1,8 @@
import snapshot from "./k3-artifact-snapshot.json";
import runtime from "./k3-flashkda-runtime.json";
export { snapshot as k3ArtifactSnapshot };
export { runtime as k3FlashKdaRuntime };
const mlaLayerSet = new Set(snapshot.configuration.mla_layers);
@@ -24,7 +26,7 @@ export const k3ArtifactViews = [
["layers", "01", "LAYER MAP", "93 层配置"],
["tensors", "02", "TENSOR ANATOMY", "497,220 entries"],
["parameters", "03", "PARAMETER AUDIT", "真实权重小切片"],
["reproduction", "04", "REPRODUCTION", "作者值与本机边界"],
["reproduction", "04", "REPRODUCTION", "RTX 5090 执行证据"],
] as const;
export const k3ArtifactEvidence = [
+3 -2
View File
@@ -132,13 +132,14 @@ const paths = [
<h2>47 页不再压成摘要:再把 1.56 TB 开放工件接回报告</h2>
<p>
在三十二张报告问题账之外,继续审计 96 个 safetensors 分片、497,220 个 tensor entries、
真实 KDA / MLA / MoE / MoonViT shape、小范围权重统计、FlashKDA 编译边界与未决形状矛盾。
真实 KDA / MLA / MoE / MoonViT shape、小范围权重统计,并把 FlashKDA 推进到 RTX 5090
6/6 exact-match、K3 fixed / varlen 计时与未决 checkpoint 形状矛盾。
</p>
</div>
<dl>
<div><dt>REPORT</dt><dd>16 Figures · 5 Tables</dd></div>
<div><dt>ARTIFACTS</dt><dd>96 shards · 497,220 entries</dd></div>
<div><dt>LAB</dt><dd>8 报告实验 + 4 工件视图</dd></div>
<div><dt>KERNEL</dt><dd>sm_120a · exact 6/6</dd></div>
</dl>
<span class="release-arrow" aria-hidden="true">从报告目录进入开放工件证据链 →</span>
</a>
+4 -2
View File
@@ -854,11 +854,12 @@ const paperGroups = [
<p class="lede">
第三轮固定到官方 Hugging Face revision,读取 config、remote code、60 MB tensor index、
四个 safetensors headers 和两个小范围参数切片。原始权重不进入本站仓库;
结构、shape、计数、参数统计与本机编译边界都可以从公开脚本重复生成。
结构、shape、计数、参数统计、隔离 wheel 与 RTX 5090 执行结果都可以从公开脚本重复生成。
</p>
<div class="artifact-callout">
<article><span>O / OBSERVED</span><b>1.4196 TiB tensor data</b><p>96 shards、497,220 entries;不是运行显存,也不是参数量口径。</p></article>
<article><span>D / CLOSED LOOP</span><b>69 KDA · 24 MLA · 92 MoE</b><p>配置、tensor names 与 header shape 三方闭合。</p></article>
<article><span>X / RTX 5090</span><b>exact 6/6 · max error 0</b><p>官方 torch reference;fixed BF16 mean 2.6210 ms。</p></article>
<article class="warning"><span>U / UNRESOLVED</span><b>A_log [128] ≠ expected [96]</b><p>checkpoint 与公开代码 / kernel API 的形状冲突保留在主视区,不擅自解释。</p></article>
</div>
<K3ArtifactLab />
@@ -866,6 +867,7 @@ const paperGroups = [
<a class="button primary" href="https://huggingface.co/moonshotai/Kimi-K3">打开官方开放权重</a>
<a class="button" href="https://github.com/MoonshotAI/FlashKDA">打开 FlashKDA 官方实现</a>
<a class="button" href="https://github.com/MoonshotAI/FlashKDA/blob/master/BENCHMARK_GB200.md">核对作者 GB200 benchmark</a>
<a class="button" href="https://git.k1412.top/wuyang/llm-atlas/src/branch/main/experiments/k3/flashkda">复跑本站 RTX 5090 探针</a>
</div>
</section>
@@ -927,7 +929,7 @@ const paperGroups = [
.anchor-alias { position: relative; top: -88px; display: block; visibility: hidden; }
.artifact-callout {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
grid-template-columns: repeat(4, minmax(0, 1fr));
max-width: 1080px;
margin: 32px 0;
border-top: 1px solid var(--line);
+4 -1
View File
@@ -9,7 +9,7 @@ const researching = chapters.filter((chapter) => ["researching", "drafting"].inc
const workstreams = [
{ label: "研究框架与规范", value: 83, next: "给 Scaling 与推理专题补逐篇图表/实验精读层级" },
{ label: "网站设计系统", value: 89, next: "打印样式与更多通用可视化组件" },
{ label: "Kimi K3 深读", value: 92, next: "在匹配 CUDA 12.9+ 环境执行 FlashKDA,并接入真实 hidden-state / expert-load traces" },
{ label: "Kimi K3 深读", value: 94, next: "接入真实 hidden-state / expert-load / cache traces,并重绘报告数值图" },
{ label: "语言模型前史", value: 78, next: "逐图精读 Kneser–Ney、LSTM 与 Bahdanau,并加入真实小语料复现" },
{ label: "Transformer 基础", value: 79, next: "逐图精读多头电路、Pre/Post-LN 与真实 kernel / KV 配置" },
{ label: "表示、位置与残差高速公路", value: 81, next: "加入真实 hidden-state / norm traces、长上下文位置外推复现与更多深层稳定性消融" },
@@ -105,6 +105,7 @@ const workstreams = [
<article><span>✓</span><h3>DeepSeek 技术谱系二轮深读</h3><p>二十四张问题账、十次技术转向、60 个一手/官方节点,以及稀疏容量—MLA 缓存—V3 协同—RL 偏差四联实验。</p></article>
<article><span>✓</span><h3>Kimi K3 技术报告二轮深读</h3><p>三十二张问题账、Figure 1–16 / Table 1–5 审计、100 节点阅读链,以及 Delta—Decay—AttnRes—LatentMoE—SiTU—QB—MOPD—Cache 八联实验。</p></article>
<article><span>✓</span><h3>Kimi K3 三轮开放工件里程碑</h3><p>固定官方 revisions,审计 96 个 shards、497,220 个 tensor entries 与真实 KDA / MLA / MoE / MoonViT shapes;四联实验分开显示层型、tensor anatomy、参数范围和复现边界。</p></article>
<article><span>✓</span><h3>FlashKDA RTX 5090 执行闸门</h3><p>隔离 CUDA 13.0 / glibc 2.39 编译 sm_120a wheel;6/6 官方参考逐元素相等,并完成 fixed / varlen、三种 state mode 的 1,800 个 CUDA Event samples。</p></article>
<article><span>✓</span><h3>Scaling Laws 深度专题</h3><p>九张账、29 个一手节点、DeepSeek/Kimi 双谱系与曲面—部署—复用—涌现四联实验。</p></article>
<article><span>✓</span><h3>数据工程深度专题</h3><p>十二张账、31 个一手节点、DeepSeek/Kimi 双谱系与流水线—去重—混合—改写四联实验。</p></article>
<article><span>✓</span><h3>长上下文深度专题</h3><p>五张成本账、26 篇一手论文、10+ 机制图与 8 策略交互实验室。</p></article>
@@ -212,6 +213,8 @@ const workstreams = [
<div><time>2026-07-29</time><b>K3 图表与实验永久分级</b><p>Figure 1–16 / Table 1–5 建立视觉契约;报告事实、原论文、确定性推导与教学模型使用 R/P/D/T 四种身份。</p></div>
<div><time>2026-07-29</time><b>K3 开放工件按五种证据身份审计</b><p>真实观测 O、确定性推导 D、本机执行 X、合成探针 S 与未决矛盾 U 分开;作者 benchmark 不冒充本站实测。</p></div>
<div><time>2026-07-29</time><b>A_log 形状冲突保持未决</b><p>checkpoint 的 [128] 与 config / remote code / FlashKDA API 期待的 [96] 并列展示;不宣布权重损坏,也不把 channel-wise 假设写成真实 forward。</p></div>
<div><time>2026-07-29</time><b>FlashKDA 编译与执行永久分两道闸门</b><p>容器产出 sm_120a wheel 只证明可编译;RTX 5090 的 6/6 official-reference exact suite 通过后,才把证据升级为本机执行 X。</p></div>
<div><time>2026-07-29</time><b>作者表与 RTX 5090 表永久分账</b><p>H20 / GB200 保持 O;本站只报告独立环境、协议、300 samples/mode 和延迟分布,未跑本机 FLA 就不写本机 speedup。</p></div>
</div>
</section>