![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Compute
文章平均质量分 82
canmoumou
CS咸鱼,IT手残,AI专业打杂,游戏遗老
展开
-
【乱写的】收集一些和GPU以及NCCL相关的定义(持续更新)
SHArP 论文,其实没必要细看。简单来说,SHArP是一个软硬结合的通信协议,实现在了NVIDIA Quantum HDR Switch的ASIC里。它可以把从各个node收到的数据进行求和,并发送回去。再说的通俗一点,通过使用SHArP,我们把求和(聚合/Reduce,随便怎么叫)的操作交由交换机完成了。这种做法,业界叫做In-network Computing(在网计算)。用术语展开来讲,就是将计算卸载到网络中进行。更多相关的知识可以看这个英伟达的汇报。原创 2024-01-09 18:46:03 · 1145 阅读 · 0 评论 -
【深度笔记】LRU Cache
因为经常使用LRU(Least Recently Used,最近最少使用)或其他缓存替换策略来管理存储在KV Cache中的数据,保证高效的数据访问。在Transformer等深度学习模型中,KV Cache被广泛应用于存储Self-Attention机制中的中间计算结果,如注意力权重和值。实现了一个简单的LRU缓存,使用了一个双向链表 lruList 来维护访问顺序,以及一个 unordered_map cacheMap 用来存储键值对和对应的链表迭代器。原创 2024-07-01 16:01:16 · 200 阅读 · 0 评论 -
【分布式通信论文阅读】xCCL: A Survey of Industry-Led Collective Communication Libraries for Deep Learning-2
由于深度神经网络训练的规模变得太大,无法在单个计算节点上执行,一些最先进的深度学习框架,如TensorFlow[62]、Caffe[69]、PyTorch[57]、CNTK[70]和MXNet[71],已经通过使用NCCL实现了在多个节点上的分布式训练。通过在不同的CUDA流中调度NCCL操作,可以在等待网络通信完成的同时,让GPU执行其他操作。类似于NVIDIA的CUDA,NCCL提供了一个C语言的API,因此程序员可以在现有的C项目中使用NCCL,或者甚至在像Python这样的高级语言中使用C绑定。原创 2024-04-24 15:10:27 · 1314 阅读 · 0 评论 -
【分布式通信论文阅读】xCCL: A Survey of Industry-Led Collective Communication Libraries for Deep Learning-1
但,有时用户预定义的一些预定操作里,可能改变数据类型,来执行复杂Reduce-Scatter操作,所以All-reduce操作中,该算法适用于所有大小的数据。Reduce集合指的是一个过程,在这个过程中,单个节点从系统中的每个节点接收数据,并对这些数据应用一些操作,从而产生单个输出。这个操作在特定场合下,相较于broadcast有更好的优势,因为有些时候不同进程需要分发不同的任务,这样更能节省带宽。Reduce-Scatter集合操作,可以被描述为Reduce操作和Scatter操作按给定顺序的组合。原创 2024-04-18 20:13:08 · 936 阅读 · 1 评论 -
读书笔记 - CUDA编程指南5.0 + 练习编译运行 01
前言:会根据CUDA编程指南一点点更新,欢迎讨论。图形处理的需求,推动可编程图形处理器(GPU)向着高并行度和多线程演化。从图形处理走向通用并行计算。GPU和CPU浮点计算能力的差异: GPU并行度高,晶体管更多用于数据处理而非缓存和流控。数据并行处理:将数据映射到并行处理的线程上,并进行加速。CUDA:一种通用并行计算架构CUDA核心的三个重点抽象(能提供犀利的的数据、任务并行):线程组层次、共享存储器和栅栏同步threadIdx是一个有三个分量的向量(1d,2d,3d)以上为两段代码,分别是一维向量和原创 2022-06-19 22:42:32 · 981 阅读 · 0 评论