并行计算与机器学习(3/3)(中文) Parallel Computing for Machine Learning (Part 3/3)

Sdílet
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...

Komentáře • 22

  • @user-fg4gc8qz9f
    @user-fg4gc8qz9f Před 4 lety +7

    老师讲课条例很清晰,吐字也清晰,把老师的所有视频都看了一遍

  • @zhaoc033
    @zhaoc033 Před 2 měsíci

    讲的太好了 期待跟新tensorflow其他的几个training strategy 老师现在不在stevens了 可以扭腰地区开小班的

  • @yijunwan1107
    @yijunwan1107 Před rokem

    讲的太好啦!既有理论又有实践操作,谢谢王老师

  • @liutian3
    @liutian3 Před 7 měsíci

    如果数据量很大,不能全部load进memory,只能是一个从disk读到memory再放到GPU的iterator,怎么样做MirroredStrategy呢?是每个process的dataloader都把数据load进对应的GPU,还是说可以让每个process的dataloader做出一个大batch,然后把batch分到各个GPU上?

  • @yawenwei1728
    @yawenwei1728 Před 3 lety

    讲的真好,正在学习,感谢老师

  • @linger9981
    @linger9981 Před 4 lety +1

    这跟P2P网络(例如bt下载)一个原理,没想到在处理器之间也搞这样的骚操作,谢谢王老师的讲解和分享

  • @archibaldchain1204
    @archibaldchain1204 Před 2 lety

    王老师讲得太好了,我有一个想法,在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

  • @张新淼
    @张新淼 Před 4 lety

    学习了,感谢王老师。

  • @JeremyZ1036
    @JeremyZ1036 Před 3 lety

    所有的视频都太棒了,真想遇到您这样的老师👨‍🏫。另外,非常希望出一期讲解CTC的视频

  • @yaoweili681
    @yaoweili681 Před 4 lety +6

    这讲的也太好了。真应了那句话,上大学也就是玩玩,真学东西还得上CZcams哈哈哈哈哈哈哈哈

  • @zj82119
    @zj82119 Před 3 lety

    讲的很好。

  • @lutianjian5761
    @lutianjian5761 Před 2 lety

    naive approach 的 communication 时间 应该是 2 x(m - 1) d / b ?

  • @jason6411
    @jason6411 Před 3 lety

    Efficient是 (md)/(bc) 吧?c是cpu数量,也就是能拆成几份,有点像divide and conquer

  • @teddylin5197
    @teddylin5197 Před 2 lety

    王老師您好,請問gossip learning 是否是用ring all reduce呢?

  • @archibaldchain1204
    @archibaldchain1204 Před 2 lety

    有个小问题,在给data_train 做batch 划分的时候,为什么是replica * 4? 所以在计算的过程中,是不是把一个batch分成四份放到四块GPU里,而不是直接拿四个batch放在四个GPU里

  • @jizhang02
    @jizhang02 Před 3 lety

    请问cuda 和cudnn属于您提到的三种并行计算中的哪一种呢?

  • @jinwenqiang5152
    @jinwenqiang5152 Před 4 lety

    非常清晰, 谢谢您的分享,我会持续关注您。

  • @judyzhu6565
    @judyzhu6565 Před 3 lety

    感谢王老师,讲的很有条理!有个小问题,在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。

    • @ShusenWang
      @ShusenWang  Před 3 lety

      如果都是 complete copies of g,那么就不需要 all-reduce 了呀。all-reduce 就是为了让所有worker都有一份copy,对吧?

    • @judyzhu6565
      @judyzhu6565 Před 3 lety

      是想问GPUi的ai,bi,ci,di都是同一个值,分别都是一个copy of gi的情况下,是不是3次通信就可以达到每个GPU都有g0+g1+g2+g3的值了呢

    • @archibaldchain1204
      @archibaldchain1204 Před 2 lety

      @@judyzhu6565 为什么ai bi ci di 是同一个值啊,All reduce不就是先让每个gpu分开算,各算一个值,再放在一起变成gi吗?