Cuda API 创建对象: #include <cuda_runtime.h> #include <cuda.h> #include <iostream> #include <string> // 获取当前机器的GPU数量 cudaError_t error_id = cudaGetDevice
随着LLM业务的不断发展,我们发现单机单卡无法承载一个模型的训练和推理,故此出现了单机多卡和多机多卡的训练推理算子,这时候每个机和卡之间都需要通信,所以通信算子十分的重要。 分布式并行 下面是传统的四种并行处理架构,常用于大模型训练。 DP
(施工ing) 概述 我们知道,算子的作用是计算,那在整个体系中,我们的核心目标是拉满GPU的利用率。 在现代分布式体系中,多GPU之间同时存在着计算、内存访问和通信这三种基本活动,为了服务于我们的核心目标,我们需要尽可能的将通信时间和访存时间放在计算时间内,使得GPU不存在运算时间的泡泡。 大模型
(施工ing)
代码参考了傅哥,请b站关注我是傅傅猪喵,谢谢喵! Triton DSL是以BLOCK tile为中心的Python DSL。与CUDA相比,Triton的使用者无法控制所有细节,因为某些优化是自动完成的,但是在Triton编译器的逐层编译优化之下也可以获得与Cuda相近甚至超过的性能。另外,Trit
矩阵乘法跟之前不同,之前一维可以直接写一个kernel,或者多个kernel线性的排布来并行计算,那么矩阵乘法就是由一维向二维转变的关键。这时候一维的kernel排布也变成了二维排布。 这里最关键的点是在于threadIdx和dataIdx的映射,从原来单一的tid变成了二维的tidx和tidy。
该项目代码参考傅哥的课程,很有用的课程,请多多支持他。 reduce 规约求和是cuda中一个经典的问题,其本质是将输入的序列进行求和。 在CUDA的多线程中,我们清楚数据被分为一个一个的block中进行运行,每个block通过warp来并发32个线程进行运算。 所以将数据分割成一个一个block进
上文中,我们运行了一个简单的cuda函数,并且一次过的将其运行了起来,这次,我们需要补充一些基础的概念,通过概念和框架的建立,我们才能走的更远,高屋建瓴的认识更多。 vscode的CUDA调试 继续沿用上次的hello world代码,可能名字有点修改,问题不大,请务必看清楚文件名! 新建一个res
从cuda kernel出发,看懂人生第一个cuda attention
CUDA是什么 cuda是一种gpu编程组件,是一种原生支持GPU软硬件的架构,使得开发者可以直接在 GPU 上编写和执行通用计算程序。 GPU架构 上图是H100白皮书中,H100 GPU带满了144个SM的架构图
vibe coding
github源码解析
基本操作
agent
code cli
context engineering
ACM
算法
算法竞赛
vllm
AMD算子挑战赛
github
inference
LLM
CUDA入门到入土
cuda/Triton
MLsys24
paper
blog
默认分类