Skip to content

Can't determine number of cores. Unknown SM version 5.0! #880

Closed
@zhangxaochen

Description

@zhangxaochen

I'm trying to build&run the project pcl_kinfu_app, building is OK, while running gets me the following error:

E:\AC++\l\p-m-6d0343d1b7\_b\bin> pcl_kinfu_app_debug.exe
[pcl::gpu::printShortCudaDeviceInfo] : Device 0:  "GeForce GTX 750 Ti"  2048Mb
Can't determine number of cores. Unknown SM version 5.0!
, sm_50, 0 cores, Driver/Runtime ver.6.50/6.50
Error: invalid device function  E:/ABOUT C++/libs/pcl-master-6d0343d1b7/gpu/kinfu/src
/cuda/tsdf_volume.cu:76

I googled but not found useful posts to solve this issue. Is that caused by my CUDA installation? Or because of my GTX 750 Ti architecture being MAXWELL?

I've found the code here: https://github.com/PointCloudLibrary/pcl/blob/master/gpu/containers/src/initialization.cpp

inline int convertSMVer2Cores(int major, int minor)
{
    // Defines for GPU Architecture types (using the SM version to determine the # of cores per SM
    typedef struct {
        int SM; // 0xMm (hexidecimal notation), M = SM Major version, and m = SM minor version
        int Cores;
    } SMtoCores;

    SMtoCores gpuArchCoresPerSM[] =  { { 0x10,  8 }, { 0x11,  8 }, { 0x12,  8 }, { 0x13,  8 }, { 0x20, 32 }, { 0x21, 48 }, {0x30, 192}, {0x35, 192}, { -1, -1 }  };

    int index = 0;
    while (gpuArchCoresPerSM[index].SM != -1) 
    {
        if (gpuArchCoresPerSM[index].SM == ((major << 4) + minor) ) 
            return gpuArchCoresPerSM[index].Cores;
        index++;
    }
    printf("\nCan't determine number of cores. Unknown SM version %d.%d!\n", major, minor);
    return 0;
}

Does that mean I should reinstall some other versions of CUDA?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions