CUDA实现大法:和CPU法原理差不多,但实现起来要分两步。第一步把整个图像分成很多个部分,每个部分用一个线程块(含很多个线程)独立统计;第二步则把各个部分独立统计的结果再累加起来得到总的统计结果。之所以用这个方法是从GPU内部架构考虑的,因为每个部分并行独立统计的结果可以放在对应的片上shared memory中,效率很高。代码比较复杂:
同样大小的图像,在Geforce GTX 285上计算时间为0.56ms,比QX6600上单线程提速约30倍。
同样大小的图像,在Geforce GTX 285上计算时间为0.56ms,比QX6600上单线程提速约30倍。
200字以内,仅用于支线交流,主线讨论请采用回复功能。