GPU高性能编程CUDA实战

最新书摘:
  • 豆友1907570
    2013-01-03
    CUDA架构中,warp是指一个包含32个线程的集合,这个线程集合以步调一致的形式执行,warp中的每个thread都将在不同的数据上执行相同的指令。当处理常量内存时,nVidia硬件将把单次内存读取操作广播到每个half warp(即16个thread)。如果在half warp中的每个线程都从常量内存的相同地址上读取数据,那么GPU只会产生一次读取请求并在随后将数据广播到每个thread。
  • 豆友1907570
    2013-01-03
    与从全局内存中读取数据相比,从常量内存中读取相同的数据可以节约内存带宽,原因有两个:1.对常量内存的单词读操作可以广播到其他的邻近线程,这将节约15次读取操作;2.常量内存的数据将缓存起来,因此对相同地址的连续读操作将不会产生额外的内存通信量。
  • 豆友1907570
    2013-01-03
    CUDA C编译器对共享内存中的变量与普通变量将分别采取不同的处理方式。对于在GPU上启动的每个线程块,CUDA C编译器都将创建该变量的一个副本。线程块中的每个线程都共享这块内存,但线程却无法看到也不能修改其他线程块的变量副本。这就实现了一种非常好的方式,使得一个线程块中的多个线程能够在计算上进行通信和协作。