我的显卡是GeForce GTX 1080
程序功能是用于人脸比对,申请了一大片GPU的内存(差不多8G),放入1500W个人脸的特征结构体,结构体的大小是544byte
核函数是由20个block, 1024 thread / block启动,就是一个循环从全局内存读取数据,计算,然后放入另一块全局内存(1500W*sizeof int)
循环中有两个if,第一个先判断结构体中的一个字段然后决定是否continue, 第二个是计算相似度
问题是:我修改了核函数外面的代码后,不知道为什么核函数的耗时从60ms变成接近700ms。
想问下这个程序该如何优化,以及这个问题有可能与哪里相关。这个block 和 thread该选多大比较好, 每次我把thread改下,然后blcok改大后,性能都会下降。
接触cuda不久,若是能提供一些参考资料也好,谢谢大家。