@sumitdotml: 2026年第25周:C语言中CPU张量核心基础(加法/乘法、归约、步长、2D矩阵乘法等),阅读Arcee的一些内容

X AI KOLs Timeline 新闻

摘要

作者分享了用C语言构建纯CPU张量库的进展,涵盖了加法/乘法、归约、步长和2D矩阵乘法等基础知识,以及从阅读Arcee关于基础模型的技术博客中获得的见解。

2026年第25周:C语言中CPU张量核心基础(加法/乘法、归约、步长、2D矩阵乘法等),阅读Arcee的一些内容 https://t.co/ITIQ5I1xG7
查看原文
查看缓存全文

缓存时间: 2026/06/22 19:51

week 25, 2026: cpu tensor core basics (add/mul, reduce, stride, 2d matmul, etc.) in c, reading some arcee https://t.co/ITIQ5I1xG7


2026年第25周 | sumit.ml

来源:https://sumit.ml/weekly/2026-w25/ 这周,我从手写的矩阵练习过渡到了一个小型张量运行时。现在形成了一个类似张量库的项目(https://github.com/sumitdotml/tinytensor):仍仅支持 CPU 和 float32,但这也正是当前的目标——我想在加入 CUDA 之前先熟悉内存分配、形状元数据、步长、索引和正确性。此外,还粗略浏览了 Arcee 的博客文章(https://www.arcee.ai/blog)。

CPU 张量基础

我库中的 tensor(https://github.com/sumitdotml/tinytensor/blob/main/src/tensor.c)现在包含了我想明确化的几个部分:

float *data;
size_t ndim;
size_t shape[TT_TENSOR_MAX_DIMS];
size_t strides[TT_TENSOR_MAX_DIMS];
size_t numel;

步长这个概念这周在我脑中更加具体化了,感觉非常好。

例如,对于一个形状为 [2, 3, 4] 的张量,行优先的步长是 [12, 4, 1],因此一个位置的计算如下:

[1, 2, 3] -> 1 * 12 + 2 * 4 + 3 * 1 = 23

我还添加了第一批围绕步长的 CPU 辅助函数:

  • 扁平化和多维的 get/set
  • add / mul
  • sum / max / mean
  • 2D matmul

目前的矩阵乘法有意保持简单:

[m, k] @ [k, n] -> [m, n]

基本上还没有批处理或广播功能;后续会稳步推进这些工作。话说回来,我最初的目标只是通过写 C 代码来进一步熟悉这门语言,以便在读 PMPP 这本书时减少一些障碍,所以这个做法已经很有帮助了。随着我对这本书的深入学习,我会在这个仓库中添加 CUDA 内核,同时也会做一些更高级的 CPU 运算。


关于技术论文阅读

这周我又深陷于 C 语言,不是特别自豪。不过,我还是读了几篇 Arcee 的技术文章:

  • Arcee 4.5B 深度解析(https://www.arcee.ai/blog/deep-dive-afm-4-5b-the-first-arcee-foundational-model)
  • 将 AFM-4.5B 扩展到 64k 上下文长度(https://www.arcee.ai/blog/extending-afm-4-5b-to-64k-context-length)(这个真的特别有意思)
  • 以及《三一宣言》(The Trinity Manifesto)(https://www.arcee.ai/blog/the-trinity-manifesto)

Arcee 团队的博客演进非常有趣:他们先是从企业级模型微调技术入手,然后逐渐转向构建自己的基础模型——先通过 SLM 在小规模上实验,再通过 Trinity 系列向更大模型迈进。

这让我清晰地看到了 Arcee 的发展时间线,我相信学习这些内容会给我带来很多宝贵的知识。


下周计划

  • 在 C 语言中实现完整的张量 softmax。
  • 继续阅读 PMPP 书,争取完成第 3 章(可能有点难,但还是要努力)。
  • 阅读 Arcee 博客 + 如果时间允许,对 Trinity Large 技术报告进行 2-3 轮精读。
  • 处理一些个人事务(与职业相关)。

相似文章

@swyx: 链接汇总:

X AI KOLs Following

NVIDIA 发布 Cosmos 3(混合 Transformer 模型,参数最高达 64B)、Nemotron 3 Ultra(550B-A55B 大语言模型),并在 Computex 2026 上预览了 RTX Spark 个人超级芯片,在多个开源模型排行榜上达到 SOTA。