P1:向量化与 MLP
对应代码:src/tensor/tensor.py / src/nn/module.py / src/optim/optimizer.py / src/data/dataset.py 对应测试:tests/test_tensor.py / tests/test_mlp.py / tests/difftest_torch.py / tests/test_mnist.py 训练脚本:train/...
对应代码:src/tensor/tensor.py / src/nn/module.py / src/optim/optimizer.py / src/data/dataset.py 对应测试:tests/test_tensor.py / tests/test_mlp.py / tests/difftest_torch.py / tests/test_mnist.py 训练脚本:train/...
📖 阅读指南 知识依赖链(建议按此顺序阅读): 第四章:中间代码生成(三地址码、类型系统) └─ 理解"变量"、"过程调用"的编译期表示 └─ 本章:运行时环境(这些抽象在运行时如何落地) ├─ 5.2 存储管理(核心:栈帧结构与堆分配) └─ 5.3 垃圾回收(核心:可达性与...
阅读指南:本章是操作系统的核心机制章节。知识链是线性的:硬件结构 → 中断机制 → 进程抽象 → 线程优化 → 调度算法。每一层都建立在上一层之上,建议严格按顺序阅读。 1. 处理器基础 1.1 CPU 的内部结构 理解 CPU 的结构,是理解”中断如何工作”和”进程切换如何发生”的前提。 ┌─────────────────────────────────────────────...
REVIEW 核心问题:一家公司如何创造价值、传递价值、捕获价值? 商业模式画布就是回答这三个问题的统一语言。 gpt-image2.0确实不赖😂 一、为什么需要商业模式画布? 问题起源 在 MBA 课堂里,描述一个商业模式,人们通常写几十页的商业计划书。 但问题是:没有人能在 10 分钟内看完并理解它。 商业模式画布(Alexander Osterwald...
对应代码:src/micrograd/engine.py(~150 行) 对应测试:tests/test_autograd.py 参考:Karpathy · micrograd;Zero to Hero Lecture 1 本章目标 读完能回答的问题: 为什么”自动微分”叫 automatic 而不是 symbolic?和手算、符号求导有什么本质区别? 计算图上的 fo...
1. 回顾:互斥的局限性 1.1 我们已经有了什么 在前几讲中,我们学习了: 线程创建:spawn(fn) 创建线程,join() 等待所有线程完成 互斥锁:mutex_lock / mutex_unlock,保护共享变量,防止数据竞争 通过互斥锁,我们终于能正确地计算 1 + 1:两个线程对共享计数器的并发访问被序列化,不再产生错误结果。 1.2 互斥的本质 互斥锁...
一、为什么需要 Seq2seq? 问题动机 现实中存在大量输入和输出都是变长序列的任务,例如: 任务 输入 输出 特点 语音识别 音频序列(长度T) 文字序列(长度N) N ≠ T 机器翻译 源语言...
本章目标 读完本章你能回答: 为什么”外部事件打断 CPU”必须是 硬件机制,不能只靠软件轮询? RISC-V 的 mstatus / mtvec / mepc / mcause 是什么组织形式,为什么不塞进 32 个 GPR 里? 一条 csrrw 指令的 read-modify-write 为什么必须原子——它跟 lw + addi + sw 三条组合比有什么本质区别?...
本章目标 读完本章你能回答: CPU + 内存 = 完整计算机?差哪一块? 为什么 RISC-V、ARM 都选 MMIO,而 x86 保留了 port I/O? “设备”在模拟器里到底是什么?一个让很多人意外的答案 30 行的 serial.c 为什么代表 guest 第一次能对 host 说话? timer 为什么要同时暴露一个 MMIO 地址和一个 timer_...
本章目标 读完本章你能回答: 37 条指令单元测试全绿,你为什么仍然不能相信它们都对? 怎样给一个完整的 CPU 找一个 “oracle”? 为什么 TEMU 要手写两套 RV32I 实现,而不是直接用 Spike? MMIO 写入(putchar、timer 读取)怎么在对拍里处理,才不会双倍副作用? Correlated failure 是什么——差分测试最漂亮...
A new version of content is available.