摘要: 我们将在这篇博客中,讨论rust的expression概念,rust中大部分代码都通过表达式来完成。 表达式语言 C中的表达式有值,而语句没有值。rust是一个表达式语言,这个传统可以追溯到LISP。在C中if和switch都是语句。它们并不产生值;而在rust中if和match可以产生值。这也解释 阅读全文
posted @ 2025-03-22 08:38 xwher 阅读(19) 评论(0) 推荐(0)
摘要: Tips 03-21-2025 怎么拉取github的pr 首先添加上游仓库 git remote add upstream https://github.com/...git 之后,根据pr编号拉取相应的分支: git fetch upstream pull/251/head:check git 阅读全文
posted @ 2025-03-21 23:06 xwher 阅读(7) 评论(0) 推荐(0)
摘要: 这篇博客我们主要讨论non-owning的指针类型: ref。注意一个核心点,ref的lifetime不能超过借用的那个值;我们将看到ref, func, 以及用户自定义类型是如何利用lifetime使得ref的使用是安全的。 ref to values 有两种类型的ref: shared:&T,注 阅读全文
posted @ 2025-03-21 23:05 xwher 阅读(20) 评论(0) 推荐(0)
摘要: 所有权 每个值都有一个唯一的owner来决定它的lifetime;当owner被drop时,owned value将会被drop。一个变量拥有它的值;当控制离开声明这个变量的block时,这个变量将被drop,同时值也被drop。owners和owned values形成tree,rust中的每个值 阅读全文
posted @ 2025-03-21 17:58 xwher 阅读(75) 评论(0) 推荐(0)
摘要: rust 教程 01 安装 我们通常使用rustup来安装rust的相关开发工具,默认存储在~/.cargo/bin目录下,使用如下命令即可安装rust: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # update 阅读全文
posted @ 2025-03-21 16:30 xwher 阅读(102) 评论(0) 推荐(0)
摘要: Pytorch DTensor 我们引入分布式tensor原语,可以更容易地使用SPMD(single program multi devices)模式来编写分布式计算。这些原语可以表达出 shard 和 replicate 的概念。一个例子如下: # run command: uv run tor 阅读全文
posted @ 2025-03-20 21:18 xwher 阅读(263) 评论(0) 推荐(1)
摘要: Pytorch distributed 概述 本节我们介绍一下 torch.distributed Pytorch 分布式库主要包含一套并行的模块,一个通信层,以及对于运行和debug大规模训练的infra 主要有以下四个并行的apis: DDP(分布式数据并行) FSDP (fully shard 阅读全文
posted @ 2025-03-20 17:47 xwher 阅读(113) 评论(0) 推荐(0)
摘要: 本节主要探讨cute layouts,本质上一个Layout是从坐标(coord)空间到索引(index)空间的映射。 Layouts 提出了一个针对多维数组访问的通用接口,它隐藏了数据元素是如何存储在内存上的细节。例如,一个row-major的 MxN的layout和一个col-major的 Mx 阅读全文
posted @ 2025-03-20 15:30 xwher 阅读(86) 评论(0) 推荐(0)
摘要: cute是一系列C++ CUDA的模板抽象,用于定义和操作线程和数据的层次化多维layouts。cute提供 Layout 以及 Tensor 对象;其中 Tensor 将 数据类型、形状、内存空间以及数据的layout进行一个封装,用户可以对这个 Tensor 进行复杂的索引操作。这样可以使得用户 阅读全文
posted @ 2025-03-20 13:13 xwher 阅读(156) 评论(0) 推荐(0)
摘要: EPLB 实现解读 阅读全文
posted @ 2025-03-14 16:34 xwher 阅读(51) 评论(0) 推荐(0)