小知识

以前一直以为Pascal架构单个SM只有64个CUDA核心,查到的资料大多也比较混淆。很多拿GP100架构过来说Pascal架构是64核心/SM,其实GP100架构确实是64核心/SM,但后来的Pascal架构并不是。

用官方自带samples的deviceQuery查了下我的GTX1050是128核心/SM的,查了下源码。原来每种架构下,每个SM对应的核心数都是有表格 的。

在helper_cuda.h头文件中有如下定义,看起来就清晰多了。

    sSMtoCores nGpuArchCoresPerSM[] =
    {
        { 0x20, 32 }, // Fermi Generation (SM 2.0) GF100 class
        { 0x21, 48 }, // Fermi Generation (SM 2.1) GF10x class
        { 0x30, 192}, // Kepler Generation (SM 3.0) GK10x class
        { 0x32, 192}, // Kepler Generation (SM 3.2) GK10x class
        { 0x35, 192}, // Kepler Generation (SM 3.5) GK11x class
        { 0x37, 192}, // Kepler Generation (SM 3.7) GK21x class
        { 0x50, 128}, // Maxwell Generation (SM 5.0) GM10x class
        { 0x52, 128}, // Maxwell Generation (SM 5.2) GM20x class
        { 0x53, 128}, // Maxwell Generation (SM 5.3) GM20x class
        { 0x60, 64 }, // Pascal Generation (SM 6.0) GP100 class
        { 0x61, 128}, // Pascal Generation (SM 6.1) GP10x class
        { 0x62, 128}, // Pascal Generation (SM 6.2) GP10x class
        {   -1, -1 }

    };


* pair-wise addition 翻译为两两成对相加。两两成对相加可在规约问题中遇见,如求一个向量的和,但在浮点矢量求和,两两成对相加不仅能使计算更快,还能使计算结果更精确,因为浮点数按顺序求和存在大数吃掉小数的可能,但两两相加则不会。



自动计算较为合理的block大小:

使用cudaOccupancyMaxPotentialBlockSize()计算在使用的寄存器和共享内存数量下,系统推荐的block大小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值