cuda作为gpu计算中的代表,拥有着超级高的计算效率,其原因是gpu实际相当与一台超级并行机组,使用过MPI做并行计算的人们可能知道,所谓的并行计算,简单讲就是用多个U(计算单元)来完成一个U的计算任务,MPI中将其叫做核,我们知道一个cpu有一个或2,4,8个核,超级厉害的也就16个吧,原来人们为了做大规模的并行计算,将一大堆cpu装在柜子里,组成计算集群,但是那种设备大的吓人,而且又有多少人会用呢。gpu则不同,一个小小的芯片上就存在着成千上万的线程,是由分为grid,block,thread三级结构实现的。(本人初学者,学到哪写到哪,借鉴需谨慎)
所谓的并行计算,就是用多个计算单元共同完成一个计算任务,那这有什么难度呢,这在生活中很常见啊,似乎没什么可学的,可以想象我们造一座房子,我们要找一堆人过来,然后分配下任务,这里面有人做墙,有人做地板,屋顶等等吧,然后一声令下开始吧,大家各司其职,把自己那部分做好,房子就做好了。但是事情没有那么简单,这个过程中存在很多问题会影响效率,甚至结果。比如说做墙的人要用锤子,但是锤子在被其他人占用着,怎么办;做地板的把地做好了,但是又被做墙的人给不小心砸坏了;下面的结构还没做好,就有人来装屋顶了等等。这时就需要一个精确的管理方案,而这个管理方案就是所有并行API需要做的事。例如后面会学到的共享内存,同步等知识。目前看到书就是cuda by example了,很适合入门,看的很愉快。下面就开始了,什么hello world就不写了,直接学干货了。
1 /* 2 * Copyright 1993-2010 NVIDIA Corporation. All rights reserved. 3 * 4 * NVIDIA Corporation and its licensors retain all intellectual property and 5 * proprietary rights in and to this software and related documentation. 6 * Any use, reproduction, disclosure, or distribution of this software 7 * and related documentation without an express license agreement from 8 * NVIDIA Corporation is strictly prohibited. 9 *10 * Please refer to the applicable NVIDIA end&