无标题
4.5.1 Qwen1 4.5.2 Qwen2
无标题
4.6.1 Deepseek-V1 4.6.2 Deepseek-V2 4.6.3 Deepseek-R1
无标题
6.1.1计算与内存限制 6.1.2 FlashAttention机制
无标题
6.2.1 数据并行 6.2.2 模型并行 6.2.3 3D并行
无标题
1.ThreadsPerBlock和Blocks的数量受哪些条件约束。 2.理论占用率怎么计算? 3.什么是warp,什么是warp divergence? 4.cuda的内存模型里有多少种memory,它们的位置(片上还是板上),带宽和延迟的相对大小? 5.global memory的访存合并是什么? 6.什么样的变量会被分配在register上?什么样的变量会被分配在local memory上? 7.Block是怎么被SM调度执行的? 8.什么是cuda core? 什么是tensor core? 9.什么是bank confict+?怎么避免bank confict,你能想到多少方法? 10.描述-下Block reduce的大致实现。 11.描述-下double buffer(ping pong buffer)的大概原理和实现。 12.什么是roofline model?什么是memory bound,什么是computation bound? 13.kernel...
无标题
123456789// 1. 向上取整#define CEIL(a, b) ((a + b - 1) / (b))// 2. FLOAT4,用于向量化访存,以下两种都可以// c写法#define FLOAT4(value) *(float4*)(&(value))// c++写法#define FLOAT4(value) (reinterpret_cast<float4*>(&(value))[0])
大模型各种算子手撕(实现)
注意力机制的代码实现- 1234567891011121314151617181920212223242526272829import torchimport torch.nn as nnimport torch.nn.functional as Ffrom math import sqrtclass SelfAttention(nn.Module): def __init__(self, input_dim, dim_k, dim_v): super(SelfAttention, self).__init__() self.q = nn.Linear(input_dim, dim_k) self.k = nn.Linear(input_dim, dim_k) self.v = nn.Linear(input_dim, dim_v) self.norm = sqrt(dim_k) def forward(self, x): Q =...
机器学习各种算法手撕(实现)
1. 手撕 k-means 算法 1234567891011121314151617181920212223242526272829303132333435import numpy as npimport matplotlib.pyplot as pltdef kmeans(data, K, max_iterations=100): # 随机初始化K个簇中心点 centers = data[np.random.choice(data.shape[0], K, replace=False)] # 迭代更新中心点 for _ in range(max_iterations): # 计算每个样本到各个中心点的距离 distances = np.linalg.norm(data[:, None] - centers, axis=2) # 等价于distances = np.linalg.norm(X[:, np.newaxis, :] - centers, axis=2) # 分配每个数据点到最近的簇 labels =...










