CEREBRAS / LAB 08 OF 08
复现与答辩:说清每个结果在哪儿运行
冻结一份窄范围的GEMV与scan训练包,用反例、来源与运行身份完成英文答辩。
本单元 4 小时。本公司八个单元共 32h,三家公司共额外 96h 核心实践;这笔时间在共同路线之外,未压入厂商入门的44h。
本页是实践讲义。打开、阅读或复制命令不代表完成。新单元的 SDK、simulator 与硬件命令均未在教材建设中执行;自己的结果应按实际后端保存。
先备与马上可用的例子
先完成:cerebras-07 →
- 43-b · 总和相同不代表scan相同:先看输入和实际源码,再开始自己的修改;教学实现与自己的产出分别记录。
- 44-a · 121个小输入交叉验证:先看输入和实际源码,再开始自己的修改;教学实现与自己的产出分别记录。
直接打开机制图,边看边手推
- 36 · 可改条件的机制图 → Tensor shape、stride 与 GEMM 分块;图解不执行厂商 SDK。
- 45 · 逐步状态与文字图解 → WSE 与 PE:把数据放在拥有它的计算节点旁边;图解不执行厂商 SDK。
- 46 · 逐步状态与文字图解 → CSL 与 host:装载、启动、回读是一份共同合同;图解不执行厂商 SDK。
- 47 · 逐步状态与文字图解 → 多PE scan:消息里到底应该传什么;图解不执行厂商 SDK。
- 48 · 逐步状态与文字图解 → 功能模型、simulator 与硬件:分别证明什么;图解不执行厂商 SDK。
PREDICT FIRST
具体问题与独立预期
输入与约定
复用已完成的单PE GEMV两组输入、三PE独立输入、两PE列分块以及三PE含空分区scan。新增scan变体[[1,-1],[2],[]];不添加新架构或第二个主项目。
先根据输入写下自己的结果与理由,再展开参考推演;随后运行或检查实现。
对照参考结果与原因
GEMV回归[8,20]/[1,6];三PE独立[8,20,2,5,1,4];两PE合并[4,9];scan基线[2,1,4,8],新变体[1,0,2]。所有未执行的后端明确pending,不汇总成“全部设备通过”。
可信的训练成果是可重建、可追问、边界明确的一小段实现;文档来源、个人改动和实际执行不是同一层证据。
机制怎样连接起来
冻结时保留一个自己的主实现版本和独立oracle,列出实际修改的函数。复现README从输入合同开始,再写来源、环境、编译、运行、失败与限制。官方示例提供语言/API参考;自己通过哪些变体才支持哪一段独立实现,应逐项解释。
把CPU、CSL编译、官方simulator、硬件正确性、性能各写一行。某一行没有实际日志就保持pending;GUI中的路由配置可以来自编译前产物,不能因此声称存在运行轨迹。sdk_debug_shell visualize用本人产物,时间/指令pane能显示什么取决于版本与架构。
本轮不要求硬件计时。若已有合法设备结果才报告计时范围与样本;host运行整个simulator的墙钟时间不能当成WSE延迟。最后用一个输入变化追问自己:哪里更新参数、哪段布局改变、哪些测试必须重跑。
CHOOSE ONE EXECUTION PATH
按手头环境推进
CPU 路径可以先完成。额外的 SDK 或设备验证要有自己的运行记录;本单元的四小时不同时要求完成四个分支。安装等待超过本页预算时,留下阻塞条件,继续可做的数学、代码与协议工作。
CPU · 现有机器 · 本单元尚未验收
条件:现有macOS或Linux与C++20编译器;不需要加速卡、VM或SDK。
本分支做什么:重建本人CPU模型与oracle,跑固定、新变体和拒绝路径。
保存什么证据:保存本人源码、输入、实际输出、退出码与修复记录;仅标CPU逻辑验证,不称官方simulator。
教材初始执行状态:not-executed。这不是对你个人学习进度的判断。
SDK · 编译与环境 · 本单元尚未验收
条件:已获官方SDK访问并具备匹配版本环境;Linux使用官方Apptainer/SingularityCE等前置,Apple Silicon按第01单元核对并自行准备Lima路径。没有环境时仍可先完成CPU分支。
本分支做什么:只列确有本次产物和版本记录的编译,源码变化后重新编译。
保存什么证据:保存实际build_id、编译命令、退出码、产物元数据与源码摘要;只编译不能标运行成功。
教材初始执行状态:not-executed。这不是对你个人学习进度的判断。
官方 simulator · 本单元尚未验收
条件:已经可用的对应官方fabric simulator和同版编译产物;standalone/legacy路径与appliance路径按官方入口区分。
本分支做什么:使用本人同版编译产物复跑,区分运行trace与仅有路由配置。
保存什么证据:实际host检查、输入、日志、完成状态与版本分开留在自己的记录;这里没有运行结果。
教材初始执行状态:not-executed。这不是对你个人学习进度的判断。
真实设备 · 本单元尚未验收
条件:用户已经有权使用的Cerebras系统及其管理员支持的版本/运行模式;本课程不要求花钱、租机器或提交集群作业。
本分支做什么:不将模拟墙钟时间当硬件时间;硬件/性能未做就保留pending。
保存什么证据:设备正确性与性能分别记录;simulator耗时不作为硬件时间,硬件未执行保持未通过。
教材初始执行状态:not-executed。这不是对你个人学习进度的判断。
READ → BUILD → BREAK → EXPLAIN
四小时,留下一个完整产出
可拆成多个时段。每次停下时保存代码、输入、实际结果和下一步,不用重新读整篇。没有通过当前检查时继续修正,不靠翻页推进。
1. 冻结本人范围 · 30 分钟
- 选定源文件与输入,列本人实现、公开参考、仍为设计的部分。
- 为实际已有的源文件记录摘要;CPU-only不创建空CSL文件凑清单。尚未实现的设计部分单独列明,避免后续修改后沿用旧运行记录。
这一段的产出:范围与源码身份表
2. 重建README · 40 分钟
- 写按顺序执行的CPU路径;SDK/官方simulator路径仅列已满足条件的命令,未满足的条件单独说明。
- 在新练习目录从自己的源码重建,编译失败则停止,不执行遗留二进制。
这一段的产出:可复现说明
3. 跑固定与新变体 · 85 分钟
- 复跑所有本页固定数值、短payload/奇数N/超CAP拒绝、重复调用、缺消息模型反例。
- 计算新scan变体totals=[0,2,0]、offsets=[0,0,2],输出[1,0,2];0是有效输出不能过滤。SDK/硬件只复跑实际可用分支。
这一段的产出:逐后端结果与失败记录
4. 五分钟英文答辩 · 55 分钟
- 按问题→数学合同→布局→消息完成→测试→未验证范围录一次说明。
- 抽下方三题,再加入“改N=3”“中间PE为空”“同一RPC调用两次”的打断;先回答再看答案。
- 无法独立解释的部分留作复写任务,不用已读页数替代。
这一段的产出:录音/逐字稿与缺口
5. 选择下一次窄验证 · 30 分钟
- 只选一个下一问题,例如支持奇数列分块、不同合法PE数或真实simulator重复调用。
- 写新增输入、环境前置、预期证据;没有设备则继续CPU与公开API,不租用设备。
这一段的产出:单一后续实验定义
EXPLICIT ENVIRONMENT / EXPLICIT STATUS
命令与可保存的起点
以下代码按各自环境使用,运行前完成对应步骤并核对版本。编译失败后停止,不运行目录中的旧二进制;每次采集日志使用新的运行目录。设备程序仅运行在你已有且可使用的环境中。
1. 对实际已有的本人源码记录摘要;CPU起点如下,已实现SDK部分才把对应文件加入清单
环境:CPU · 现有机器 · 状态:not-executed。核对官方 API / 工具说明 ↗
shasum -a 256 gemv_oracle.cpp2. 仅本人实际simulator产物齐备时查看调试界面
环境:官方 simulator · 状态:not-executed。核对官方 API / 工具说明 ↗
sdk_debug_shell visualize一个必须能解释的错误
错误情境:复现包只有SUCCESS截图,未列输入、源码版本或到底在哪个环境运行。
为什么会错:别人无法重建结论,也无法区分CPU模型、SDK编译、官方simulator和真实设备。
怎样修复:把每条成功绑定输入、源码摘要、命令、输出、退出码和后端;同时保留未验证与失败路径。
EVIDENCE BEFORE ADVANCING
验收与面试追问
- 所有本页数值可由自己的oracle重新得到;新变体保留有效0。
- README在新目录可执行实际具备的路径;没有用旧二进制假通过。
- 能解释输入/DSD重置、bias一次、消息完成和空分区;没有混写模拟与硬件结果。
最后留下这几项
输入和预期、自己的源码或明确标为推演的状态表、实际命令/输出/退出码、一个失败与修复、后端与版本、尚未执行的部分。运行已有教学例子与独立完成修改分别记录。
1. 你具体独立完成了什么?
对照中文要点与英文回答
先指自己的函数与变体测试,再说明参考的公开API;没有独立复写或执行的部分明确保留设计/待验证。
I point to my changes and tests, distinguish the public API reference, and identify what remains a design rather than an executed implementation.
2. simulator运行用了10秒,可以说WSE延迟10秒吗?
对照中文要点与英文回答
不能。那是宿主运行模拟软件的墙钟范围,不等于目标设备执行延迟;性能结论需明确工具、单位和设备。
Simulator wall time is not hardware latency. I state the measured scope and backend before interpreting any number.
3. 下一步为什么只选一个变体?
对照中文要点与英文回答
窄变体能保留已验证基线并定位变化影响;同时更改分区、精度、协议和架构会让失败难以归因。
A bounded change preserves the baseline and makes failures attributable to a specific decision.
这些是依照本单元机制设计的追问,不是公司真题。个人验收仍依据实际代码、测试、测量与口述。
资料与版本核验
- Compiling and Running Examples ↗
Compile/run workflow and build outputs
核验日期:2026-09-05。官方公开文档于2026-09-05核验;安装页所列下载包为SDK 2.10.0-{build_id}。这不是本机安装事实。执行时记录实际tarball/build_id、目标WSE架构和对应文档版本。
- SDK GUI ↗
Artifact directory, pre/post-execution views, WSE-3 instruction-trace version conditions
核验日期:2026-09-05。官方公开文档于2026-09-05核验;安装页所列下载包为SDK 2.10.0-{build_id}。这不是本机安装事实。执行时记录实际tarball/build_id、目标WSE架构和对应文档版本。
- Running SDK on a Wafer-Scale Cluster ↗
Separate cluster/appliance workflow
核验日期:2026-09-05。官方公开文档于2026-09-05核验;安装页所列下载包为SDK 2.10.0-{build_id}。这不是本机安装事实。执行时记录实际tarball/build_id、目标WSE架构和对应文档版本。
- SdkRuntime API Reference ↗
Runtime lifecycle and data movement
核验日期:2026-09-05。官方公开文档于2026-09-05核验;安装页所列下载包为SDK 2.10.0-{build_id}。这不是本机安装事实。执行时记录实际tarball/build_id、目标WSE架构和对应文档版本。
正文、问题和实践设计依据公开资料独立撰写。官方页面的示例输出是资料中的结果,不是本机运行证据。latest 链接可能变化,请在自己的复现说明中保留实际版本。