Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import type { Block } from '../types'

export const body: Block[] = [
{ kind: 'p', text: '[measured] A merged correction in gHashTag/trinity-fpga aligned the fp6_e3m2 boundary rule across the host conformance path. When the exponent field reaches its maximum, the code now saturates to the largest finite value, 14.0, instead of being read as an ordinary exponent.' },
{ kind: 'p', text: '[measured] The correction changed 8 boundary codes: four positive and four negative. The remaining 56 fp6_e3m2 codes were unchanged. This is a conformance correction, not a claim about speed, energy, model quality, or a new hardware result.' },
{ kind: 'h', text: 'One rule had to reach five artefacts' },
{ kind: 'p', text: '[proven] The same saturation rule now appears in five places: the fp6_e3m2 RTL, the per-format decode oracle, the shared decode oracle, the host golden implementation, and the self-test vector. A correction in only one of them would leave the next comparison inconsistent.' },
{ kind: 'ul', items: [
'RTL: the boundary is represented as a finite saturated value.',
'Per-format oracle: fp6_e3m2 decodes the maximum exponent as 14.0.',
'Shared oracle: saturation is enabled for fp6_e3m2 without changing fp6_e2m3.',
'Host golden: the expected IEEE-754 representation is 14.0.',
'Self-test vector: the boundary expectation matches the golden implementation.',
] },
{ kind: 'h', text: 'The cross-check that caught the regression' },
{ kind: 'p', text: '[measured] The host self-test finished with 53/53 checks passing. A full golden-consistency pass compared 66,720 codes and found 0 mismatches. The oracle comparison reported 8/8 changed boundary codes matching and 56/56 unchanged codes preserved; fp6_e2m3 was left untouched.' },
{ kind: 'p', text: '[measured] The previous change had made the self-test fail on the same 8 codes. That failure was useful: it showed that the shared oracle had moved ahead of the host golden and its hard-coded vector. The fix was to carry the rule through the remaining artefacts rather than weaken the check.' },
{ kind: 'h', text: 'A shell pipeline nearly falsified the result' },
{ kind: 'p', text: '[proven] During diagnosis, a piped command made a failing self-test appear to exit successfully because the shell reported the status of tail rather than Python. A rerun without the pipe returned the intended failure status. Recording that near-miss matters: the gate was correct; the measurement command was not.' },
{ kind: 'h', text: 'What this does not establish' },
{ kind: 'p', text: 'The OCP MX specification was not independently read in this run; the result establishes alignment among the existing RTL and conformance artefacts. The checked worktree did not include the RTL submodule, so no end-to-end run on the binary ALINX AX7203 FPGA was repeated here. One corrected format does not establish correctness of the other formats in the 83-format catalogue, a general hardware result, a physical-chip result, speed, energy, or downstream-model accuracy.' },
]

export const ruBody: Block[] = [
{ kind: 'p', text: '[измерено] Смерженная правка в gHashTag/trinity-fpga согласовала правило границы fp6_e3m2 во всём host-контуре conformance. Когда поле экспоненты достигает максимума, код теперь насыщается до наибольшего конечного значения 14.0, а не читается как обычная экспонента.' },
{ kind: 'p', text: '[измерено] Правка изменила 8 граничных кодов: четыре положительных и четыре отрицательных. Остальные 56 кодов fp6_e3m2 не изменились. Это исправление conformance, а не заявление о скорости, энергии, качестве модели или новом аппаратном результате.' },
{ kind: 'h', text: 'Одно правило должно было дойти до пяти артефактов' },
{ kind: 'p', text: '[доказано] Теперь одно и то же правило насыщения присутствует в пяти местах: RTL fp6_e3m2, специализированном oracle декодирования, общем oracle декодирования, host golden и векторе self-test. Правка только в одном месте оставила бы следующее сравнение несогласованным.' },
{ kind: 'ul', items: [
'RTL: граница представлена конечным насыщенным значением.',
'Специализированный oracle: максимальная экспонента fp6_e3m2 декодируется как 14.0.',
'Общий oracle: насыщение включено для fp6_e3m2 без изменения fp6_e2m3.',
'Host golden: ожидаемое представление IEEE-754 равно 14.0.',
'Вектор self-test: граничное ожидание совпадает с golden-реализацией.',
] },
{ kind: 'h', text: 'Перекрёстная проверка, поймавшая регрессию' },
{ kind: 'p', text: '[измерено] Host self-test завершился с результатом 53/53. Полная проверка golden-consistency сравнила 66 720 кодов и нашла 0 несовпадений. Сравнение oracle сообщило о совпадении 8/8 изменённых граничных кодов и сохранении 56/56 неизменённых; fp6_e2m3 не затрагивался.' },
{ kind: 'p', text: '[измерено] Предыдущая правка заставила self-test упасть на тех же 8 кодах. Это падение оказалось полезным: оно показало, что общий oracle ушёл вперёд host golden и его жёстко заданного вектора. Исправление состояло в том, чтобы протянуть правило через оставшиеся артефакты, а не ослабить проверку.' },
{ kind: 'h', text: 'Командный pipeline чуть не исказил результат' },
{ kind: 'p', text: '[доказано] Во время диагностики команда с pipe создала видимость успешного завершения падающего self-test: shell сообщил статус tail, а не Python. Повторный запуск без pipe вернул предусмотренный статус ошибки. Этот near-miss важно записать: гейт был корректен, некорректной была измеряющая команда.' },
{ kind: 'h', text: 'Чего это не устанавливает' },
{ kind: 'p', text: 'Спецификация OCP MX в этом прогоне независимо не читалась; результат устанавливает согласованность существующих RTL и conformance-артефактов. В проверенном worktree не было RTL-подмодуля, поэтому сквозной прогон на бинарной FPGA ALINX AX7203 здесь не повторялся. Один исправленный формат не устанавливает корректность остальных форматов каталога из 83 форматов, общий аппаратный результат, результат на физическом кристалле, скорость, энергию или точность модели после квантования.' },
]
30 changes: 30 additions & 0 deletions apps/website/src/data/blog/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,36 @@ import type { PostMeta } from './types'

/** Индекс блога: список и метаданные без тяжёлых тел публикаций. */
export const postsIndex: PostMeta[] = [
{
slug: 'one-saturation-rule-five-artefacts',
title: 'One saturation rule, five artefacts',
summary: '[measured] A merged fp6_e3m2 correction changed 8 boundary codes, kept 56 codes unchanged, and brought a 66,720-code consistency pass to 0 mismatches.',
date: '2026-09-06',
readingMinutes: 5,
tags: ['FPGA', 'Conformance', 'Reproducibility', 'Testing'],
receipts: [
{ label: 'Merged PR #757 — saturation rule carried through the remaining conformance artefacts', href: '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/gHashTag/trinity-fpga/pull/757' },
{ label: 'Merge commit 4bb8c416 — host golden and self-test correction', href: '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/gHashTag/trinity-fpga/commit/4bb8c416b7b11f57832bf5debfec7daa5e6d1ff0' },
{ label: 'Host decode conformance at the merge commit', href: 'https://raw.githubusercontent.com/gHashTag/trinity-fpga/4bb8c416b7b11f57832bf5debfec7daa5e6d1ff0/conformance/corona_decode_host_ax7203.py' },
{ label: 'Decode verification oracle at the merge commit', href: 'https://raw.githubusercontent.com/gHashTag/trinity-fpga/4bb8c416b7b11f57832bf5debfec7daa5e6d1ff0/conformance/decode_verify.py' },
{ label: 'Full golden-consistency checker at the merge commit', href: 'https://raw.githubusercontent.com/gHashTag/trinity-fpga/4bb8c416b7b11f57832bf5debfec7daa5e6d1ff0/conformance/golden_consistency.py' },
],
openQuestions: [
'The OCP MX specification was not independently read in this run; the result establishes alignment among the existing RTL and conformance artefacts.',
'The checked worktree did not include the RTL submodule, so no end-to-end run on the binary ALINX AX7203 FPGA was repeated here.',
'One corrected format does not establish the other formats in the 83-format catalogue, a general hardware result, a physical-chip result, speed, energy, or downstream-model accuracy.',
],
published: true,
ru: {
title: 'Одно правило насыщения, пять артефактов',
summary: '[измерено] Смерженная правка fp6_e3m2 изменила 8 граничных кодов, оставила 56 кодов без изменений и привела проверку 66 720 кодов к 0 несовпадений.',
openQuestions: [
'Спецификация OCP MX в этом прогоне независимо не читалась; результат устанавливает согласованность существующих RTL и conformance-артефактов.',
'В проверенном worktree не было RTL-подмодуля, поэтому сквозной прогон на бинарной FPGA ALINX AX7203 здесь не повторялся.',
'Один исправленный формат не устанавливает корректность остальных форматов каталога из 83 форматов, общий аппаратный результат, результат на физическом кристалле, скорость, энергию или точность модели после квантования.',
],
},
},
{
slug: 'the-only-stable-speed-belonged-to-the-tool',
title: 'The only stable speed belonged to the tool, not the cable',
Expand Down
2 changes: 2 additions & 0 deletions apps/website/src/data/blog/posts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { body as body_queen_foundation_snapshot_contract, ruBody as ruBody_queen
import { body as body_clara_proposal_submitted_not_reviewed, ruBody as ruBody_clara_proposal_submitted_not_reviewed } from './bodies/clara-proposal-submitted-not-reviewed'
import { body as body_tri_claw_an_agent_you_can_audit, ruBody as ruBody_tri_claw_an_agent_you_can_audit } from './bodies/tri-claw-an-agent-you-can-audit'
import { body as body_a_health_snapshot_changed_its_denominator, ruBody as ruBody_a_health_snapshot_changed_its_denominator } from './bodies/a-health-snapshot-changed-its-denominator'
import { body as body_one_saturation_rule_five_artefacts, ruBody as ruBody_one_saturation_rule_five_artefacts } from './bodies/one-saturation-rule-five-artefacts'
import type { Post, PostBody } from './types'
import { body as body_the_only_stable_speed_belonged_to_the_tool, ruBody as ruBody_the_only_stable_speed_belonged_to_the_tool } from './bodies/the-only-stable-speed-belonged-to-the-tool'
import { body as body_queen_review_lifecycle_queues, ruBody as ruBody_queen_review_lifecycle_queues } from './bodies/queen-review-lifecycle-queues'
Expand Down Expand Up @@ -64,6 +65,7 @@ import { body as body_real_value_in_integer_container, ruBody as ruBody_real_val
import { body as body_one_commit_nine_workflow_outcomes, ruBody as ruBody_one_commit_nine_workflow_outcomes } from './bodies/one-commit-nine-workflow-outcomes'

const bodies: Record<string, PostBody> = {
'one-saturation-rule-five-artefacts': { body: body_one_saturation_rule_five_artefacts, ruBody: ruBody_one_saturation_rule_five_artefacts },
'queen-foundation-snapshot-contract': { body: body_queen_foundation_snapshot_contract, ruBody: ruBody_queen_foundation_snapshot_contract },
'clara-proposal-submitted-not-reviewed': { body: body_clara_proposal_submitted_not_reviewed, ruBody: ruBody_clara_proposal_submitted_not_reviewed },
'queen-review-lifecycle-queues': { body: body_queen_review_lifecycle_queues, ruBody: ruBody_queen_review_lifecycle_queues },
Expand Down
Loading