GPU并行
一些前置的东西SIMD(Single Instruction, Multiple Data) 属于硬件/指令集层面,是硬件能力,一条指令对一排数据做同样的计算。要求所有数据走完全一致的运算路径,不能各走各的分支 SIMT(Single Instruction, Multiple Threads) 是NVIDIA为GPU造的词,属于硬件执行模型层,是硬件和编程模型中间的“桥”。一个Wrap(32个线程)共用一条指令流,但每个线程有自己的寄存器,自己的内存地址,甚至可以走不同分支。本质是用SIMD的底层硬件,封装成一堆看起来独立的线程。 SPMD(Single Program, Multiple Data) 是变成模型,和硬件解耦。所有进程/线程跑同一份代码,处理不同数据。运行时可以走各自的不同路径,停在不同位置。这不要求指令级同步。它可以跑在完全独立的多核/集群硬件上 写CUDA使用SPMD思维,GPU使用SIMT执行模型调度,硬件底层通过SIMD式的向量单元。三层串成一条链 Flynn 分类法 这种分类法将 “数据流 x 指令流”将架构分为...
Triton 基本模板
什么是Triton/Pytorch/CUDA 显然,接触最多的pytorch是最上层的框架,在pytorch中,最小的计算单位是 Tensor, 我们无需关心矩阵乘法在GPU内部的调度,内存管理等细节,屏蔽了底层所有的硬件细节 对于cuda来说,视角是单个线程。手动管理Grid, BLock控制每一个Thread行为,例如线程读取什么内存,计算什么元素,什么时候同步等;1234int idx = blockIDx.x + blockDim.x + threadIdx.xif (idx < N){ C[idx] = A[idx] + B[idx]} 此外还要手动管理共享内存,寄存器使用等榨干GPU的性能能 而Triton就显然是折中的方案,它使用分块变成范式,不需要管理但单个线程,而是以Tile为粒度描述计算123456789101112@triton.jitdef add_kernel(A_ptr,B_ptr,C_ptr,N,BLOCK_SIZE: tl.constexpr): pid = tl.program_id(ax...
pytorch-day10
Dataset && DataLoader Dataset定义数据集的内容,是一个类似列表的数据结构,具有确定长度,使用索引能够获取数据集的元素 Dataloader 定义了按batch加载数据集的方法,他是一个实现了__iter__ 方法的可迭代对象,每一次迭代输出一个batch的数据; Dataloader能够控制batch大小,batch中元素的采样方法,以及整理为模型所需输入形式,并且能够使用多进程读取数据 多数情况下,实现 __len__ 方法和 __getitem__ 方法,就能够构建数据集并使用默认数据管道进行加载 获取一个batch的步骤 确定数据集长度2。 从范围中抽样出 m 个数 从数据集中取m个数对应小标的数 将结果作为两个张量输出,最终拿到的结果是两个张量 Dataset和DataLoader的分工确定数据集的长度是通过Dataset的 __len__ 方法实现的从0 到 n - 1 中抽样m个数是通过DataLoader的sampler和batch_sampler参数指定的 * Sampler菜单树指定单个元素抽样方法,默认在...
Wed May 06 2026 02:00:00 GMT+0200 (中欧夏令时间)
自己的失败固然令人伤心,他人的成功更是令人破防。
2026/02/25
写了一道很简单的leetcode题,不管怎么样,写了就是写了,总比没有写好。第一眼没有看出来怎么写,被Gemini老师稍微说一句话就立刻get到这道水水的小题目了。
2026/02/24
开学一周,开学前一周,对瑞士的感觉还不错。除了老牌资本主义发达国家的逆天物价和白人的逆天食物以外,基本没有什么缺点。出门就是雪山,学校走出去五分钟就是莱蒙湖。坐20min地铁+30min轮渡就能到隔壁法国。据说依云矿泉水的产地就是这附近。我倒要找时间好好尝尝这高档矿泉水有什么味道 也是比较顺利的和这边的实验室搭上关系了,穷学生第一次见到A100,H100,H200,GH200感觉世界都不真实了。遥想几个月前还要和若干PHD一起抢3090用就感觉很难绷。下一步的计划是迅速去舔一下学校的新AP,希望他能收留我。 似乎很多时候我都会想:明天再好好准备一下,再学一点知识再去行动。但是最终因为各种各样的原因不了了之。因此,我现在就要编辑好信息,明天早上起来(HKT下午), 就去和老师联系一下。毕竟就算connection 失败也谈不上有什么损失,老师看起来似乎挺好说话的。 听说这边的宿管大妈查check out的时候经常扣人押金,感觉有点哈人,打算去找以前住在这里的哥们打听一下具体会被查什么东西。顺便发个邮件固定一下墙上的(可能)的磨损,免得到时候要黑我的钱。 从很久以前开始就想要每天至少...
2026/2/3
从今天开始就要进入开学的状态了喵~寒假似乎什么都没有干,似乎也干了不少事情呢. 今日leetcode – Slidewindow 最长无重复子串首先最intuition的想法是遍历所有的子串,检查每个子串中是否有重复的字符,但是需要 $O(N^3)$ 复杂度,过高。因此采用slide window的想法 遍历所有的子串,检查下一个字符是否出现过 Intuition:如果一个子串已经被检查过并且包含在其他子串中,那么他不必再被重复检查,可以节省不少时间 Slide Window使用两个指针划定一个窗口,在这个窗口中的字符串是没有任何重复的,问题转化为一下两个方面 如何快速检查是否重复如何优化移动的步长
Wed Dec 24 2025 08:00:00 GMT+0100 (中欧标准时间)
我明天一定好好学习,写期末复盘和小作文。我要健康规律的生活作息呃呃呃呃呃呃呃呃呃啊啊啊啊啊啊啊.