并行计算与机器学习(3/3)(中文) Parallel Computing for Machine Learning (Part 3/3)
Vložit
- čas přidán 11. 09. 2024
- 这节课的主要介绍TensorFlow中的并行计算库、以及其中Ring All-Reduce的原理。
这节课的主要内容:
1:09 如何应用TensorFlow的并行计算库训练神经网络
7:41 Ring All-Reduce的技术原理。
并行计算与机器学习课程所有视频:
1. 并行计算基础以及MapReduce: • 并行计算与机器学习(1/3)(中文) Par...
2. 参数服务器、去中心化: • 并行计算与机器学习(2/3)(中文) Par...
3. Ring All-Reduce: • 并行计算与机器学习(3/3)(中文) Par...
4. 联邦学习: • 联邦学习:技术角度的讲解(中文)Introd...
课件:github.com/wan...
CS583: Deep Learning的其他课件:github.com/wan...
老师讲课条例很清晰,吐字也清晰,把老师的所有视频都看了一遍
讲的太好了 期待跟新tensorflow其他的几个training strategy 老师现在不在stevens了 可以扭腰地区开小班的
讲的太好啦!既有理论又有实践操作,谢谢王老师
如果数据量很大,不能全部load进memory,只能是一个从disk读到memory再放到GPU的iterator,怎么样做MirroredStrategy呢?是每个process的dataloader都把数据load进对应的GPU,还是说可以让每个process的dataloader做出一个大batch,然后把batch分到各个GPU上?
讲的真好,正在学习,感谢老师
这跟P2P网络(例如bt下载)一个原理,没想到在处理器之间也搞这样的骚操作,谢谢王老师的讲解和分享
王老师讲得太好了,我有一个想法,在idle approach稍微改动一下,就像这样, 一开始,每块gpu占1/4, 就是
GPU1: a
GPU2: b
GPU3: c
GPU4: d
第一轮通信,所有的gpu都把信息交给下一块gpu,也就是
GPU1: a d
GPU2: ab
GPU3: bc
GPU4: cd
第二轮:
GPU1: a cd
GPU2: ab d
GPU3: abc
GPU4: bcd
第三轮:
GPU1: abcd
GPU2: abcd
GPU3: abcd
GPU4: abcd
这样三轮通信就可以完成,而且时间应该也是d/b
学习了,感谢王老师。
所有的视频都太棒了,真想遇到您这样的老师👨🏫。另外,非常希望出一期讲解CTC的视频
太细了吧
这讲的也太好了。真应了那句话,上大学也就是玩玩,真学东西还得上CZcams哈哈哈哈哈哈哈哈
讲的很好。
naive approach 的 communication 时间 应该是 2 x(m - 1) d / b ?
Efficient是 (md)/(bc) 吧?c是cpu数量,也就是能拆成几份,有点像divide and conquer
王老師您好,請問gossip learning 是否是用ring all reduce呢?
有个小问题,在给data_train 做batch 划分的时候,为什么是replica * 4? 所以在计算的过程中,是不是把一个batch分成四份放到四块GPU里,而不是直接拿四个batch放在四个GPU里
请问cuda 和cudnn属于您提到的三种并行计算中的哪一种呢?
非常清晰, 谢谢您的分享,我会持续关注您。
感谢王老师,讲的很有条理!有个小问题,在efficient ring all-reduce 的方法里,好像是ai,bi,ci,di共同组成GPUi的gi,想问一下如果a,b,c,d分别各自是一个complete copy from g,那么在一个有4个GPU的ring里,3次通信是否就可以让所有GPU都有 各个GPU的g的总和?而不需要6次通信达到同样的效果?不过这个方法可能每次通信时间会变长,毕竟是在传递完整的gradient。
如果都是 complete copies of g,那么就不需要 all-reduce 了呀。all-reduce 就是为了让所有worker都有一份copy,对吧?
是想问GPUi的ai,bi,ci,di都是同一个值,分别都是一个copy of gi的情况下,是不是3次通信就可以达到每个GPU都有g0+g1+g2+g3的值了呢
@@judyzhu6565 为什么ai bi ci di 是同一个值啊,All reduce不就是先让每个gpu分开算,各算一个值,再放在一起变成gi吗?