当前位置:
首页 > 编程开发 > Objective-C编程 >
-
CUDA线程执行模型分析(2)大军未动粮草先行—CPU的革命
制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
序:今天或许是比较不顺心的一天,从早上第一个电话,到下午的一些列的事情,有些许的失落。有的时候真的很想把工作和生活完全分开,但是谁又能真正的分得那么开,人非草木!很多的时候都想给人生下一些定义,添加一些注释。但是生活本来就是不需要添加注释的自解释的代码。用0来解释?还是用1来解释?0,天地之始,1,万物之源。谁又能说清楚,是先有0,还是先有1,他们本就是同体……要想成事,就应该拿得起,放得下。感叹人生的同时,人生的旅程是不会停止的……手下还有招来的那么多将士,都还等着啦!
正文:书接上回--《CUDA 线程执行模型分析(一)招兵------ GPU的革命》,经过几天的征兵,将士也招了差不多五六千人,五六千人,就是五六千张嘴,得吃饭。这和我们的CUDA内存模型又有什么相识啦?或许有很多人都参加过军训,知道军队里面吃饭吗?到吃饭的时间,各处训练的队伍都拉到食堂前面。先到的就先进去吃,后到的就在外面拉歌,等待下一波,这里我们暂时还不讲解怎么安排每一对吃饭。我们先讲讲每一个Grid手下的兄弟们吃饭都需要那些家伙。下面来看看站长图:
这里我们有一个block的士兵(16个人)在吃饭,每个人有一双筷子(Registers),一个碗(local memory),大家公用一张桌子(Block 里面的shared memory)。记得军训那年,在河北宣化,八个人一张桌子,一起抢桌子上的吃的时候,那个景象。训练了一天,一个个都是如狼似虎的,嘴巴里面咬着,筷子里面夹着,碗里面盛着,研究还看着桌子上的那几根鱼骨头(鱼肉早就进肚子里面了- -!)那个时候就看谁的筷子夹得多,碗装得多了。不过再多,筷子就那么长,碗就那么大~咱们再来看看block的情况:
如图:……不需要注释了吧……
餐厅里面肯定不止是一张桌子了,我已经不记得当时军训的时候,那个军营的食堂有多少个桌子,不过我们吃饭的时候可以装下几个连一起吃饭……想想那吃饭的阵势……
哦,对了,我还记得在食堂里面有几个大桶,那玩儿应该不能称之为桶了,太大了 - -!可以分为三类,一类是装菜的,一类是装饭的,一类是装水果的。这几个桶都是大家可以共用的,记得有好吃的菜,大家都最先吃完那个菜,然后再跑到中间这个几个桶的地方找这个菜,装完一份跑到桌子那边一起分享……很是怀念那段日子。 Long long ago了……
我能回想起来的那个时候的饭堂,如图(一个大的Grid吃饭图……):
CUDA的内存模型也就这个样子了~
这些都是我们承诺给士兵的,每个人都要吃上饭。但是实际上我记得食堂再大,也不能一下子装下两个团的人吃饭,那个时候都是每个团里面的几个连队先吃饭,然后后到的就在外面拉歌,等里面的吃好了,后面的再进去吃……不是每个食堂都像北大的“万人坑”那样能装1w人- -实地考察,好像要是真装了一w人,大家也就不用坐着吃饭了~- -
对应手册上的第二章,运行模型就讲完了,接下来就要把队伍拉出来练习练习了……
对了,我们的SIMD还没讲啦~队伍人数那么多,现在就那么几杆枪~怎么练习,还没讲啦……接下来的章节更精彩……
PS: 题外话,或许是小的时候喜欢画图吧~现在还记得小学的美术老师给我们上的第一堂美术课,在黑板上画的正方形。在那个时候好像脑子里面就可以看穿物体一样,看到物体的这一面,就可以在大脑里面勾画出他的另一面~记得大学的时候参加定向越野,看到地图的时候,第一感觉,图形都好熟悉,然后再和实际的物体一对照,都是那么清晰,看到一栋建筑物,一对照地图,就可以知道他的后面是什么样,仿佛整个地图就在脑子里面构建起了地形图~呵呵很是奇妙……不知道大家有没有这样感觉的时候……
序:今天或许是比较不顺心的一天,从早上第一个电话,到下午的一些列的事情,有些许的失落。有的时候真的很想把工作和生活完全分开,但是谁又能真正的分得那么开,人非草木!很多的时候都想给人生下一些定义,添加一些注释。但是生活本来就是不需要添加注释的自解释的代码。用0来解释?还是用1来解释?0,天地之始,1,万物之源。谁又能说清楚,是先有0,还是先有1,他们本就是同体……要想成事,就应该拿得起,放得下。感叹人生的同时,人生的旅程是不会停止的……手下还有招来的那么多将士,都还等着啦!
正文:书接上回--《CUDA 线程执行模型分析(一)招兵------ GPU的革命》,经过几天的征兵,将士也招了差不多五六千人,五六千人,就是五六千张嘴,得吃饭。这和我们的CUDA内存模型又有什么相识啦?或许有很多人都参加过军训,知道军队里面吃饭吗?到吃饭的时间,各处训练的队伍都拉到食堂前面。先到的就先进去吃,后到的就在外面拉歌,等待下一波,这里我们暂时还不讲解怎么安排每一对吃饭。我们先讲讲每一个Grid手下的兄弟们吃饭都需要那些家伙。下面来看看站长图:
这里我们有一个block的士兵(16个人)在吃饭,每个人有一双筷子(Registers),一个碗(local memory),大家公用一张桌子(Block 里面的shared memory)。记得军训那年,在河北宣化,八个人一张桌子,一起抢桌子上的吃的时候,那个景象。训练了一天,一个个都是如狼似虎的,嘴巴里面咬着,筷子里面夹着,碗里面盛着,研究还看着桌子上的那几根鱼骨头(鱼肉早就进肚子里面了- -!)那个时候就看谁的筷子夹得多,碗装得多了。不过再多,筷子就那么长,碗就那么大~咱们再来看看block的情况:
如图:……不需要注释了吧……
餐厅里面肯定不止是一张桌子了,我已经不记得当时军训的时候,那个军营的食堂有多少个桌子,不过我们吃饭的时候可以装下几个连一起吃饭……想想那吃饭的阵势……
哦,对了,我还记得在食堂里面有几个大桶,那玩儿应该不能称之为桶了,太大了 - -!可以分为三类,一类是装菜的,一类是装饭的,一类是装水果的。这几个桶都是大家可以共用的,记得有好吃的菜,大家都最先吃完那个菜,然后再跑到中间这个几个桶的地方找这个菜,装完一份跑到桌子那边一起分享……很是怀念那段日子。 Long long ago了……
我能回想起来的那个时候的饭堂,如图(一个大的Grid吃饭图……):
CUDA的内存模型也就这个样子了~
这些都是我们承诺给士兵的,每个人都要吃上饭。但是实际上我记得食堂再大,也不能一下子装下两个团的人吃饭,那个时候都是每个团里面的几个连队先吃饭,然后后到的就在外面拉歌,等里面的吃好了,后面的再进去吃……不是每个食堂都像北大的“万人坑”那样能装1w人- -实地考察,好像要是真装了一w人,大家也就不用坐着吃饭了~- -
对应手册上的第二章,运行模型就讲完了,接下来就要把队伍拉出来练习练习了……
对了,我们的SIMD还没讲啦~队伍人数那么多,现在就那么几杆枪~怎么练习,还没讲啦……接下来的章节更精彩……
PS: 题外话,或许是小的时候喜欢画图吧~现在还记得小学的美术老师给我们上的第一堂美术课,在黑板上画的正方形。在那个时候好像脑子里面就可以看穿物体一样,看到物体的这一面,就可以在大脑里面勾画出他的另一面~记得大学的时候参加定向越野,看到地图的时候,第一感觉,图形都好熟悉,然后再和实际的物体一对照,都是那么清晰,看到一栋建筑物,一对照地图,就可以知道他的后面是什么样,仿佛整个地图就在脑子里面构建起了地形图~呵呵很是奇妙……不知道大家有没有这样感觉的时候……
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数