找回密码
 立即注册
  • TA的每日心情
    郁闷
    2018-4-3 16:57
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2018-4-3 16:55:54
    1231
    我的显卡是GeForce GTX 1080  
    程序功能是用于人脸比对,申请了一大片GPU的内存(差不多8G),放入1500W个人脸的特征结构体,结构体的大小是544byte
    核函数是由20个block, 1024 thread / block启动,就是一个循环从全局内存读取数据,计算,然后放入另一块全局内存(1500W*sizeof int)
    循环中有两个if,第一个先判断结构体中的一个字段然后决定是否continue, 第二个是计算相似度
    问题是:我修改了核函数外面的代码后,不知道为什么核函数的耗时从60ms变成接近700ms。

    想问下这个程序该如何优化,以及这个问题有可能与哪里相关。这个block 和 thread该选多大比较好, 每次我把thread改下,然后blcok改大后,性能都会下降。
    接触cuda不久,若是能提供一些参考资料也好,谢谢大家。
    使用道具 举报 回复
    发表于 2018-4-14 16:44:07

    回帖奖励 +2

    blocksize一般为32的倍数。
    建议你用nvvp跑下report。
    用samples里的calculater工具算下对于你的应用程序和硬件,blocksize多大 occupancy才能尽可能的大。
    当然occupancy不一定越大越好,需要综合report来看。
    使用道具 举报 回复 支持 反对
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册

    zzczczxczxczx