Skip to content

feat(app): whitepaper section and MI355X Kimi K3 revenue-per-gigawatt executive summary / 新增白皮书栏目及 MI355X Kimi K3 每吉瓦收入执行摘要 - #1010

Open
functionstackx wants to merge 10 commits into
masterfrom
feat/whitepaper-mi355x-kimi-k3-revenue-per-gw
Open

feat(app): whitepaper section and MI355X Kimi K3 revenue-per-gigawatt executive summary / 新增白皮书栏目及 MI355X Kimi K3 每吉瓦收入执行摘要#1010
functionstackx wants to merge 10 commits into
masterfrom
feat/whitepaper-mi355x-kimi-k3-revenue-per-gw

Conversation

@functionstackx

@functionstackx functionstackx commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a whitepaper section to InferenceX and ships its first paper: AMD Instinct MI355X Kimi K3 Can Generate Up to $32B of Revenue per GigaWatt per Year (Executive Summary - Agentic Inference Serving Economics Analysis, SemiAnalysis InferenceX Team).

  • /whitepaper lists every paper as a card.
  • /whitepaper/amd-mi355x-32b-revenue-per-gigawatt-kimi-k3 is a research landing page: dark hero with an MI355X render overlay, Download PDF and profit-estimator CTAs, three KPI tiles (revenue, profit, margin) with the rental comparison bar, two figure cards that mirror the /profit-estimator-per-gigawatt chart header (owned at $1.50/chip-hr and rented at $3.00/chip-hr, light/dark plot variants), then summary, key findings, method, assumptions, sources with a sticky PDF/on-this-page sidebar.
  • /zh/whitepaper and /zh/whitepaper/<slug> mirror both routes in Simplified Chinese.
  • PDF at /whitepaper/<slug>/pdf/SemiAnalysis-InferenceX-Executive-Summary_AMD-MI355X-Revenue-per-Gigawatt-Kimi-K3.pdf (cover plus two pages, SemiAnalysis house style, two revenue bar charts: owned at hyperscaler volume at $1.50/chip/hr, and 3-year rental at $3.00/chip/hr, August 2026 pricing).
  • Registry src/lib/whitepapers.ts holds parallel en/zh copy, hreflang metadata and Report/Breadcrumb/CollectionPage JSON-LD.
  • Registered in ZH_MIRRORED_ROUTES, sitemap (with cover image), llms.txt, and the footer. AGENTS.md and docs/i18n.md updated.
  • Interactive elements report whitepaper_* events.

The numbers reproduce the dashboard's profit estimator exactly: 6,115 tok/s/GPU at P90 45 tok/s/user, 478,469 GPUs/GW at 2.09 kW, 60% utilization, 30% model license fee, OpenRouter pricing $3 / $0.3 cached / $15. Revenue $32.6B; profit $16.5B (50.7%) owned, $10.3B (31.5%) rented. vLLM only; no cross-vendor or cross-framework comparison.

Tests

  • New whitepapers.test.ts (10 tests) plus additions to sitemap.test.ts and i18n.test.ts; all pass.
  • bun run lint and bun run check:typography pass. typecheck reports only the pre-existing components/minecraft/* errors present on main.

中文说明

新增白皮书栏目并发布首篇白皮书《AMD MI355X 在 Kimi K3 2.8T 上每吉瓦最高可创造 320 亿美元收入》(执行摘要,作者 SemiAnalysis InferenceX 团队)。

  • /whitepaper 以卡片列出全部白皮书;/whitepaper/<slug> 为研究报告风格的落地页(标题、元信息、下载 PDF 按钮、利润估算器链接、图 1、四张 KPI 卡片、摘要、核心发现、方法、假设表、来源)。
  • /zh/whitepaper/zh/whitepaper/<slug> 提供简体中文镜像。
  • PDF(封面加两页,SemiAnalysis 版式,两张收入柱状图:超大规模云自持 $1.50/芯片/小时,以及 2026 年 8 月三年期租赁 $3.00/芯片/小时)。
  • 注册表 src/lib/whitepapers.ts 承载中英文文案、hreflang 元数据与 JSON-LD;路由已登记至 ZH_MIRRORED_ROUTES、站点地图、llms.txt 与页脚。
  • 新增 whitepapers.test.ts,并补充站点地图与 i18n 测试;lint 与排版检查通过。

Articles redesign (/blog, /blog/[slug], zh mirrors)

  • Index: featured card for the newest post, one-row tag filter (All + top 8 + "More tags"), 1/2/3-column card grid using each post's first figure from public/images/<slug>/ or a text-free 3:1 textured tile when none exists.
  • Post page: hero with eyebrow, balanced title, subtitle, meta row and tag badges; 72ch prose column with a sticky sidebar (scroll-tracked TOC, share row, AgentX CTA); prev/next cards and a 3-post "More articles" strip.
  • Data hooks, test ids, analytics, JSON-LD, RSS, sitemap, and en/zh behavior preserved; new components and getPostThumbnail have tests (67 vitest passing).

Whitepaper skill

.claude/skills/write-inferencex-whitepaper/ documents how to produce the next paper: numbers workflow (estimator formulas, Steffen interpolation, sanity checks), copy and title rules, the house-style PDF pipeline (make_charts.py, build_pdf.py, render_pdf.js, cutout.py, fonts, header/footer artwork), asset installation, registry fields, landing-page anatomy, tests, and a pre-PR checklist. examples/mi355x-kimi-k3.json reproduces this paper's PDF. whitepapers.test.ts now asserts every referenced asset exists under public/.

…n Kimi K3

Add a whitepaper section modeled on the blog: `/whitepaper` lists every
paper as a card and `/whitepaper/[slug]` renders a research-paper style
executive-summary landing page (eyebrow, title, meta row, Download PDF
CTA, profit-estimator link, Figure 1 hero, four KPI cards, summary, key
findings, method, assumptions table, sources, closing CTA). Both routes
ship Simplified Chinese siblings under `/zh/whitepaper`.

- `src/lib/whitepapers.ts`: typed registry with parallel `en`/`zh` copy,
  chrome dictionary, locale-paired metadata (hreflang via
  `enAlternates`/`zhAlternates`, site OG image), and Report/Breadcrumb/
  CollectionPage JSON-LD authored by "SemiAnalysis InferenceX Team".
- Register `/whitepaper` in `ZH_MIRRORED_ROUTES`, the sitemap
  (`localizedPair` + Figure 1 image), `llms.txt`, and the footer.
- Client link components track `whitepaper_*` analytics events.
- Tests: registry shape, slug uniqueness, metadata alternates, JSON-LD,
  sitemap inclusion, and locale-toggle coverage.

Binary assets (PDF and Figure 1 PNG) are added separately under
`public/whitepaper/<slug>/`; the pages reference the paths only.

中文:新增白皮书栏目,参照博客实现。`/whitepaper` 以卡片形式列出全部白皮书,
`/whitepaper/[slug]` 渲染研究报告风格的执行摘要落地页(标签、标题、元信息、
下载 PDF 按钮、利润估算器链接、图 1、四张 KPI 卡片、摘要、核心发现、方法、
假设表、来源与结尾下载入口),并在 `/zh/whitepaper` 下提供简体中文镜像。
注册表 `src/lib/whitepapers.ts` 同时承载中英文文案、hreflang 元数据与 JSON-LD;
路由已登记至 `ZH_MIRRORED_ROUTES`、站点地图、`llms.txt` 与页脚,交互元素统一
上报 `whitepaper_*` 事件,并补充注册表、元数据与站点地图的单元测试。PDF 与
图 1 PNG 二进制资源另行提交至 `public/whitepaper/<slug>/`。
…PDF 与首图

Adds the downloadable executive summary PDF (cover plus two pages) and the
Figure 1 hero image for the MI355X Kimi K3 revenue-per-gigawatt whitepaper,
and updates the hero image dimensions on the detail page.

添加 MI355X Kimi K3 每吉瓦收入白皮书的可下载执行摘要 PDF(封面加两页)以及
图 1 首图,并更新详情页首图尺寸。
@vercel

vercel Bot commented Sep 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
inferencemax-app Ready Ready Preview Sep 5, 2026 3:48am UTC

Request Review

@blacksmith-sh

blacksmith-sh Bot commented Sep 5, 2026

Copy link
Copy Markdown

Found 4 test failures on Blacksmith runners:

Failures

Test View Logs
Blog › Blog listing page/renders the blog page with heading View Logs
Blog › Blog listing page/renders the blog page with heading View Logs
Profit Estimator — MiniMax M3/
re-seeds the operating point and price source when switching from GLM
View Logs
Profit Estimator — MiniMax M3/
re-seeds the operating point and price source when switching from GLM
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

…/ 调整白皮书标题并统一 PDF 版式

Renames the paper to "AMD Instinct MI355X Kimi K3 Can Generate Up to $32B
of Revenue per GigaWatt per Year White Paper" with the subtitle
"Executive Summary - AgentX Serving Economics Analysis" in both locales,
and rebuilds the PDF with the header and footer artwork anchored to the
page corners.

将白皮书标题改为 "AMD Instinct MI355X Kimi K3 Can Generate Up to $32B of
Revenue per GigaWatt per Year White Paper",副标题为 "Executive Summary -
AgentX Serving Economics Analysis"(中英文同步),并重新生成 PDF,使页眉
页脚图案贴合页面角落。
…e Paper"

Title is now "AMD Instinct MI355X Kimi K3 Can Generate Up to $32B of Revenue per GigaWatt per Year" in the registry, tests, and the PDF cover.

标题改为 "AMD Instinct MI355X Kimi K3 Can Generate Up to $32B of Revenue per GigaWatt per Year",同步更新注册表、测试与 PDF 封面。
Landing page: dark hero with grid texture and a transparent MI355X board
overlay (hidden below md), three registry-driven KPI tiles ($32.6B revenue,
$16.5B profit, 50.7% margin) with a rental comparison bar ($10.3B, 31.5%,
$2.45/chip-hr), two figure cards that mirror the profit estimator header
(Kimi mark, ResultContext meta, TCO badge, source link, selling prices) with
theme-switched light/dark PNGs, and a two-column body with a sticky sidebar
(cover thumbnail, PDF button, on-this-page links). Figures scroll sideways
below sm with a hint.

Index: eyebrow, page heading, two-column card grid with cover thumbnail,
inline KPI row, tag badges, read link and PDF button; cards stack on phones.

Registry: KPI, comparison, figure and chart metadata move into
WHITEPAPER_COPY / the Whitepaper record (en + zh). Assets: cover.webp,
figure-{1,2}-*-{light,dark}.png, mi355x-transparent.png (1783x1073);
refreshed PDF; old figure-1-revenue-per-gigawatt.png removed. Tests cover
the registry shape and the rendered en/zh markup.

白皮书落地页与索引页重新设计:深色主题 Hero 加 MI355X 板卡透明图,三个来自
注册表的核心指标卡片与租赁对比条,两张与利润估算器表头一致的图表卡片(明暗主题
切换),以及带粘性侧栏(封面、PDF 按钮、本页目录)的双栏正文。索引页改为带封面
缩略图、指标行、标签和链接的双栏卡片。所有新文案均通过 WHITEPAPER_COPY 提供中英
双语,并补充了注册表与渲染测试。
…主题图表分段标签可读性

Compute-expense and license-fee labels stay dark ink on the light pink segments in the dark chart variants.

深色图表变体中,算力支出与授权费分段标签保持深色,以在浅粉色分段上保持可读。

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

{
value: '$16.5B',
label: 'Profit per GW-year',
caption: 'Owned at hyperscaler volume, $1.50/chip-hr ($3.95 per chip-hour)',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Profit caption mixes cost figures

Medium Severity

The owned-profit KPI caption places $1.50/chip-hr beside $3.95 per chip-hour with no qualifier, so the parenthetical reads as a restatement of cost. $3.95 is profit per chip-hour (the owned counterpart of the rented $2.45), not another cost figure.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 6f5b546. Configure here.

Index (/blog, /zh/blog): eyebrow + page heading + intro, a wide featured card
for the newest post using its Open Graph image, a one-row tag filter ("All",
the 8 most frequent tags, "More tags" disclosure for the long tail; the
?tag= query contract is unchanged and now case-insensitive), and a
1/2/3-column card grid with OG thumbnails, date and reading time, clamped
subtitle, and up to 3 tag badges. Both locales render through one
BlogIndexContent server component fed by BLOG_COPY.

Post (/blog/[slug], /zh/blog/[slug]): hero with back link, first-tag
eyebrow, balanced display title, subtitle, meta row (author, date, reading
time, updated), linked tag badges; two-column body on lg with a 72ch prose
measure, full-column figures and tables, and a sticky right sidebar holding
the table of contents (CSS grid instead of the old fixed-position portal,
scroll-tracked active heading), share row (X, LinkedIn, copy link), and an
AgentX dashboard CTA card. Bottom: previous/next cards and a "More articles"
strip of the 3 posts sharing the most tags. Reading progress bar, hash
scroll, data-blog-section / data-blog-article hooks, share test ids,
analytics events, JSON-LD, RSS, sitemap, and en/zh behaviour are preserved.

Lib: getTopTags, getRelatedPosts, formatBlogDate, blogOgImagePath with
tests; new component tests for the index and post chrome.

列表页(/blog、/zh/blog):新增引导标签、页面标题与简介;最新文章以宽幅精选卡片
展示(使用其 Open Graph 图片);单行标签筛选("全部" + 8 个高频标签 +
"更多标签"折叠区),?tag= 查询参数行为保持不变并支持大小写不敏感;1/2/3 列
卡片网格包含 OG 缩略图、日期与阅读时长、两行截断的副标题以及最多 3 个标签。
中英文页面共用 BlogIndexContent 服务端组件与 BLOG_COPY 文案字典。

详情页(/blog/[slug]、/zh/blog/[slug]):页头包含返回链接、首标签引导、标题、
副标题、元信息行(作者、日期、阅读时长、更新时间)及可点击的标签;lg 及以上
为双栏布局,正文宽度 72ch,图表与表格占满主栏,右侧粘性侧栏包含目录(改用
CSS 网格替代旧的 fixed 定位方案,随滚动高亮当前章节)、分享按钮(X、LinkedIn、
复制链接)与 AgentX 仪表板 CTA 卡片。底部为上一篇/下一篇卡片以及按共同标签
推荐的 3 篇"更多文章"。阅读进度条、锚点滚动、data-blog-section /
data-blog-article 钩子、分享测试 ID、埋点事件、JSON-LD、RSS、站点地图与
中英文行为均保持不变。

工具函数:新增 getTopTags、getRelatedPosts、formatBlogDate、blogOgImagePath
及对应测试;新增列表页与详情页组件测试。
… 文章卡片缩略图改用文内图表或无文字底纹

The index and related-strip cards used the generated Open Graph image as
the thumbnail, so every card repeated its own title and subtitle. Cards now
take the first raster figure under public/images/<slug>/ (sorted by name;
light/dark variants are split per theme through ThemedFigureImage when
both exist). Posts without a figure get a tile on the site background with
the whitepaper hero's dot grid drawn in the current text colour, a soft
primary glow in one corner, and the first tag as a badge. No title text is
rendered inside the tile. The featured card follows the same rule. Boxes
keep the 1200/630 aspect and object-cover.

New getPostThumbnail helper in src/lib/blog.ts (fs-based, server-only)
with unit tests; index test updated for the thumbnail rule.

列表页与"更多文章"卡片此前以生成的 Open Graph 图片作为缩略图,导致每张卡片重复
显示自身标题与副标题。现改为使用 public/images/<slug>/ 下按文件名排序的第一张
位图(同时存在 light/dark 变体时通过 ThemedFigureImage 按主题切换)。无图表的
文章显示无文字底纹:站点背景色加白皮书页头的点阵网格(使用当前文字颜色),一角
带柔和的主色光晕,并以首个标签作为角标。精选卡片遵循同一规则。缩略图框保持
1200/630 比例与 object-cover。

新增 src/lib/blog.ts 中基于文件系统的 getPostThumbnail 辅助函数(仅服务端)及
单元测试;更新列表页测试以覆盖缩略图规则。
…hout figures / 无图表文章改用紧凑底纹与纯文字精选卡片

The newest posts have no figures, so the top of the index was rows of
identical empty boxes and the featured card was half blank. Featured posts
without a figure now render as a single text column (eyebrow, meta, display
title, subtitle, tags, read link) with the grid texture on the card itself,
fading to the right. Grid and related-strip cards without a figure use a
3/1 tile with a higher-contrast dot grid, the first tag bottom-left, and the
reading time top-right in mono. Cards with figures keep the 1200/630 box.
Both grids use items-start so rows no longer stretch to the tallest card.

最新文章没有图表,导致列表页顶部是一排排相同的空盒子,精选卡片也有一半是空白。
无图表的精选文章改为单列纯文字布局(引导标签、元信息、大号标题、副标题、标签、
阅读链接),网格底纹直接叠加在卡片背景上并向右渐隐。列表与"更多文章"中无图表
的卡片改用 3/1 比例的底纹块,点阵对比度略有提高,左下角为首个标签,右上角为
等宽字体的阅读时长。有图表的卡片保持 1200/630 比例。两个网格均使用 items-start,
行高不再被最高的卡片拉伸。

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

There are 3 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 999f730. Configure here.

const current = posts.find((p) => p.slug === slug);
const others = posts.filter((p) => p.slug !== slug);
if (!current) return others.slice(0, limit);
const tags = new Set(current.tags);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Related posts crash without tags

Medium Severity

getRelatedPosts builds new Set(current.tags) while tags is optional on BlogPostMeta. Neighboring scoring already uses post.tags ?? [], so a published post that omits tags throws and the article page fails to render.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 999f730. Configure here.

>
<Link
href={href}
className="focus-visible:outline-none before:absolute before:inset-0 before:z-10 before:content-['']"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Featured image is not clickable

Low Severity

The featured card's stretch-link overlay is contained by the text column's relative wrapper, so the thumbnail is not part of the hit target. BlogPostCard uses the same overlay pattern without that inner relative, and the image still scales on card hover, so the figure looks clickable but does nothing.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 999f730. Configure here.

…peline / 新增白皮书撰写 skill 及 PDF 与图表流水线

Adds .claude/skills/write-inferencex-whitepaper: SKILL.md covering the numbers workflow (estimator formulas, Steffen interpolation, sanity checks), copy and title rules, the house-style PDF pipeline (make_charts.py, build_pdf.py, render_pdf.js, cutout.py, fonts and header/footer artwork), asset installation, registry fields, landing-page anatomy, tests, and a pre-PR checklist. The example spec reproduces the shipped MI355X Kimi K3 paper. whitepapers.test.ts now asserts every referenced asset exists under public/; AGENTS.md points at the skill.

新增 .claude/skills/write-inferencex-whitepaper:SKILL.md 说明数据计算流程(估算器公式、Steffen 插值、复核)、文案与标题规范、SemiAnalysis 版式的 PDF 流水线(图表、排版、渲染、抠图脚本,字体与页眉页脚素材)、资源安装、注册表字段、落地页结构、测试与 PR 前检查清单。示例 spec 可完整复现已发布的 MI355X Kimi K3 白皮书。whitepapers.test.ts 新增资源文件存在性断言;AGENTS.md 增加指向该 skill 的说明。


def b64(path: str) -> str:
return base64.b64encode(open(path, "rb").read()).decode()


def inline_svg(path: str) -> str:
s = open(path).read()
sys.exit(__doc__)
spec_path, out_dir = sys.argv[1], sys.argv[2]
spec_dir = os.path.dirname(os.path.abspath(spec_path))
spec = json.load(open(spec_path))
)
mosaic, trace, badge = (b64(os.path.join(ASSETS, f"{n}.png")) for n in ("cover_mosaic", "trace", "badge"))
chip = b64(resolve(spec_dir, spec["cover"]["hardware_image"]))
logo = open(resolve(spec_dir, spec["chart"]["model_logo_svg"])).read().replace('height="1em"', 'height="18"').replace('width="1em"', 'width="18"')

html = f"<!doctype html><html><head><meta charset='utf-8'><title>{spec['title']}</title><style>{css(fonts, mosaic)}</style></head><body>{cover}{page1}{page2}</body></html>"
out = os.path.join(out_dir, "paper.html")
open(out, "w").write(html)
sys.exit(__doc__)
spec_path, out_dir = sys.argv[1], sys.argv[2]
spec_dir = os.path.dirname(os.path.abspath(spec_path))
spec = json.load(open(spec_path))
/>
) : (
<img
src={thumbnail.dark ?? thumbnail.light}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants