摘要:
转自:http://blog.csdn.net/smsmn/article/details/6336060其实这两天一直不知道什么叫bank conflict冲突,这两天因为要看那个矩阵转置优化的问题,里面有讲到这些问题,但是没办法,为了要看懂那个bank conflict冲突,我不得不去找资料,说句实话我现在不是完全弄明白,但是应该说有点眉目了,现在我就把网上找的整理一下,放在这边,等哪天完全弄明白了我就在修改里面的错误。Tesla的每个SM拥有16KB共享存储器,用于同一个线程块内的线程间通信。这里先假设一个SM里头有一个block。则每个block为1KB,即1024*8 bits。为了 阅读全文
摘要:
转自:http://blog.csdn.net/augusdi/article/details/12529331cuda 初学大全1 硬件架构CUDA编程中,习惯称CPU为Host,GPU为Device。2 并行模型Thread:并行基本单位Block:相互合作的一组线程。可以彼此同步,快速交换数据,最多可以512个线程Grid:一组Block,有共享全局内存Kernel:在GPU上执行的程序,一个Kernel对应一个GridBlock和Thread都有各自的ID,记作blockIdx(1D,2D),threadIdx(1D,2D,3D)Block和Thread还有Dim,即blockDim与 阅读全文
摘要:
转自:http://blog.csdn.net/augusdi/article/details/12529247CUDA编程模型CUDA编程模型将CPU作为主机,GPU作为协处理器(co-processor)或设备。在这个模型中,CPU负责逻辑性强的事务处理和串行计算,GPU则专注于高度线程化的并行处理任务。CPU、GPU各自拥有相互独立的存储器地址空间。一旦确定了程序中的并行部分,就可以考虑把这部分计算工作交给GPU。kernel:运行在GPU上的C函数称为kernel。一个kernel函数并不是一个完整的程序,而是整个CUDA程序中的一个可以被并行执行的步骤。当调用时,通过N个不同的CUD 阅读全文
摘要:
转自:http://hackecho.com/2013/04/cuda-parallel-reduction/Parallel Reduction是NVIDIA-CUDA自带的例子,也几乎是所有CUDA学习者的的必看算法。在这个算法的优化中,Mark Harris为我们实现了7种不同的优化版本,将Bandwidth几乎提高到了峰值。相信我们通过仔细研读这个过程,一定能对CUDA程序的优化有更加深刻的认识。下面我们来一一细看这几种优化方案,数据和思想均摘录自官方SDK中Samples的算法说明。Parallel ReductionParallel Reduction可以理解为将一个数组中的所有数 阅读全文
摘要:
Threads are executed in warps of 32, with all threads in thewarp executing the same instruction at the same timeWhat happens if different threads in a warp need to dodifferent things?if (x<0.0) z = x-2.0;else z = sqrt(x);This is called warp divergence – CUDA will generate correctcode to handle th 阅读全文