CS224d lecture 15札记

欢迎转载,转载注明出处:

http://blog.csdn.net/neighborhoodguo/article/details/47449257

这一讲还是嘉宾的讲课,讲得是关于parallel计算方面的。俗话说的好:“三个臭皮匠,顶个诸葛亮嘛”。哈哈

因为一台计算机,或者一个处理器的处理能力是有限的,进行并行计算能够大大提高运算速度,节省调试的时间。而我们的NN是如此的复杂,有时候规模也特别大,所以使用并行计算是很有必要的。

这一讲呢,主要分为五个部分:1.Efficient formulations  2.CPUs and GPUs  3.Parallelism  4.Asynchronous SGD  5.Easy implementations and Current research

Efficient formulations

Structured VS unstructured computation

structured graph就是指各个units之间的连接都很规矩比如说CNN

这种规矩的表示方法的好处是:cache的使用都是连续的,很容易load,对内存的使用也很少。缺点就是灵活性不好

还有一种就是unstructured graph

好处是表达能力更强,但是cache的使用不连续,不容易load,对内存使用偏高(和之前的对立)

我们的目标就是在不影响性能的前提下,使表达更加structured

Block operations and BLAS

Block operations一个最简单的例子就是矩阵乘法和加法,也就类似把相似的运算打包成一整块,然后输入进去批量计算。

BLAS: Basic Linear Algebra Subroutines是一款很先进的并行计算工具,课上还推荐了其他很棒的并行计算工具。

Batching

就是之前说的Batching gradient descent就不赘述了。

CPUs and GPUs

课上讲师说CPU和GPU已经达到了peak performance。

内存的大小很受限,CPU和GPU的通讯很慢是一个瓶颈。

CPU更少的cores            每个core运算速度更快

GPU更多的cores            每个core运算速度慢

但是GPU有数量优势,整体来说GPU运算速度比CPU快

乍一看貌似完全使用GPU更好,其实不然。

由于有通讯瓶颈,在计算量较小的时候使用CPU其实更有计算优势,在计算数量较多的时候使用GPU才有明显的优势。

Data parallelism

这个就是用来优化之前的Batching gradient descent

1.先指定一个master core然后多个worker core,首先master给每个worker分配计算的任务

2.然后每个worker core各自分别计算

3.计算完成后汇总到master那里,由master汇总计算出最终结果

这里的parallelism是同步的。

Model parallelism

这个就是把model进行分块然后各个模块分别分配给各个core计算然后汇总结果。

一台计算机的计算能力怎么说都是有限的,能不能使用多台计算机同时帮助计算呢?

但是计算机之间的以太网通信速度太慢了,开发更快速的计算机间通信才行。

Asynchronous SGD

前面说得同步的计算方法需要等待每个work core都计算完成才能汇总计算出结果,这样就会使一部分时间消耗在等待上面。

鉴于此就提出了异步的SGD

分配任务还是照常分配,但是谁计算完成谁就上传计算结果给master,然后master汇总完成之后立即给每个work core更新数据

Research directions

有三个可以改进的地方:

1.修改model尽量减少unstructured的部分,增加structured的部分;尽量增加model的宽度,降低深度

2.尽量使得Neural不饱和,使数据尽可能的在线性区。

3.找到更好的优化方法。

几个开源的Parallelism Packages

1.BLAS

2.CPUs: Intel MKL, Atlas, GOTO

 GPUs: Cuda, OpenAcc, clBLAS

3.Theano, Torch

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-25 06:56:37

CS224d lecture 15札记的相关文章

CS224d lecture 12札记

欢迎转载,转载注明出处: http://www.cnblogs.com/NeighborhoodGuo/p/4711678.html CS224d的第十一课是他们的课上考试,所以后面的视频就直接跳到lecture 12了.lecture 12是一位外宾过来讲得,据说是Facebook的工程师,讲了现在最前沿的AI research,AI很多东西在全世界范围内都没有解决方案或者说对某一问题有统一的意见,所以这堂课不是介绍一个成熟的model,可以理解这一讲是为大家打开一扇门,让大家了解AI中的这部

CS224d lecture 8札记

欢迎转载,转载注明原文地址: http://www.cnblogs.com/NeighborhoodGuo/p/4692979.html 又开始新一课的札记啦!最近Project Proposal也快到了,时间还是比较紧的.不过课程已经过半了还是挺开心的.stanford开放这么有技术含量的课程,还是很钦佩stanford的开放精神. 这一课是对Recurrent NN for MT做了一个简要的介绍.个人认为这种方法比较靠谱耶,想想我们人类对于母语的学习,对于母语的理解,从来都不是先分析语法,

CS224d lecture 10札记

欢迎转载,转载注明出处: http://blog.csdn.net/neighborhoodguo/article/details/47282709 Go Go Go 第十讲也顺利结束啦,不愧是Advanced Recursive NN讲得内容确实有些Advanced,不过如果认真听课再认真看课后的paper的话,我相信还是可以完全理解的. 开始总结喽... 首先,老师在课上开篇讲了RNN的一个综述吧,也是使用RNN进行NLP的三个大的要素:1.Train objective主要有两种,一种是c

CS224d lecture 9札记

欢迎转载,转载注明出处: http://www.cnblogs.com/NeighborhoodGuo/p/4694955.html 最近几课的内容不是很难,还有我的理解能力有所提高(自恋一下),所以这几课完成的都挺快.不知不觉lec9也完成了.这一讲讲了另一个RNN,其中R是Recursive不是之前的Recurrent.课上老师使用Recursive NN来做NLP和CV的任务,我个人认为做CV还是不错的,这个NLP怎么感觉有点不靠谱.不管怎么说这个model还是解决了很多实际问题的,而且性

CS224d lecture 13札记

欢迎转载,转载注明出处: http://blog.csdn.net/neighborhoodguo/article/details/47387229 不知不觉到了第三部分了,整个课程也快结束了,虽然不是第一次整个推完公开课,但是还是有些兴奋呢! 废话不多说,开始总结啦! 这节课就介绍了一个模型,就是在Computer Vision里十分popular的CNN(Convolutional Neural Networks).不过这里介绍它在NLP的应用,可见model其实是可以有不同的应用的哦,没准

CS224d lecture 6札记

哈哈哈,终于又到了每课的写笔记时间.这次课程的内容比较少,可能是为了给Problem set 1空余时间吧. 废话不多说.写喽 这次的video讲的东西主要就是把推荐的论文稍微详细的讲解了一部分,然后外加给RNN模型开了个头. 1.Multi-task learning / weight sharing 这个第一部分其实在NLP(almost) from scratch里也有讲解它的理念就是,在DL model里面底下几层里学到的feature是相同或者近似的,那么这样的话,只需要统一给DL m

CS224d lecture 16札记

欢迎转载,转载注明出处: http://blog.csdn.net/neighborhoodguo/article/details/47617297 终于把最后一讲也看完了,stanford的NLP课程也接近了尾声,真的是非常的开心,这门课真的让我收获了很多. 这一课讲得就是DL在NLP方面的应用,其实大部分内容在之前的课上和之前的推荐阅读里都有提及,这一课也算是一门复习课吧. 同样的先overview一下:1.Model overview 2.Character RNNs on text an

CS224d lecture 14札记

欢迎转载,转载注明出处: http://www.cnblogs.com/NeighborhoodGuo/p/4720985.html 这一课也是请得嘉宾讲得课,据说是standford的一位博士.讲得主题是Neural Networks in Speech Recognition 不过Speech Recognition可谓是博大精深啊,这一堂课就像讲师在课前的Overview里说的一样,只是做一个perspective 让大家对这个方面有一个简要的了解,具体如何操作,这个就没有详细讲了...课

深度学习与自然语言处理(3)_斯坦福cs224d Lecture 3

原文作者:Rohit Mundra, Richard Socher 原文翻译:@熊杰([email protected]) && @王昱森([email protected]) && @范筑军老师( [email protected]) && @OWEN([email protected]) 内容校正:寒小阳 && 龙心尘 时间:2016年6月 出处:http://blog.csdn.net/han_xiaoyang/article/deta