Nerei / kinfu_remake

Optimized and reworked version of Kinfu
BSD 3-Clause "New" or "Revised" License
339 stars 125 forks source link

run demo error #25

Open QinZiwen opened 7 years ago

QinZiwen commented 7 years ago

when run demo, some errors show:

$./bin/demo 
Device 0:  "GeForce GTX 1070"  8106Mb
Can't determine number of cores. Unknown SM version 6.1!
, sm_61, 0 cores, Driver/Runtime ver.8.0/8.0
KinFu2 error: Init failed: Can't create any node of the requested type!
    /home/Project/kinfu_remake/kfusion/src/capture.cpp:85
QinZiwen commented 7 years ago

In "./kfusion/src/core.cpp" line 67 add

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

{0x61, 1920} mean that you use graphics card computing capacity 6.1

Nerei commented 6 years ago

Yes, but second number in there pair is number of cores-per-sm

densechen commented 5 years ago

KinFu2 error: invalid device function /home/dschen/Code/kfusion_remake_self/kfusion/src/cuda/tsdf_volume.cu:38

Does anyone came across this problem? I tested this code in both windows and ubuntu 16.04, failed when i try to run this demo.

cuda version is 8.0

StanleyYake commented 2 years ago

https://forums.developer.nvidia.com/t/whats-the-proper-way-to-detect-sp-cuda-cores-count-per-sm/17657/10

~/NVIDIA_CUDA-10.2_Samples/1_Utilities/deviceQueryDrv$ ./deviceQueryDrv

CUDA Device Query (Driver API) statically linked version 
Detected 1 CUDA Capable device(s)

Device 0: "GeForce RTX 2060 SUPER"
  CUDA Driver Version:                           11.1
  CUDA Capability Major/Minor version number:    7.5
  Total amount of global memory:                 7979 MBytes (8366784512 bytes)
  (34) Multiprocessors, ( 64) CUDA Cores/MP:     2176 CUDA Cores
  GPU Max Clock rate:                            1650 MHz (1.65 GHz)
  Memory Clock rate:                             7001 Mhz
  Memory Bus Width:                              256-bit
  L2 Cache Size:                                 4194304 bytes
  Max Texture Dimension Sizes                    1D=(131072) 2D=(131072, 65536) 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  1024
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size (x,y,z):    (2147483647, 65535, 65535)
  Texture alignment:                             512 bytes
  Maximum memory pitch:                          2147483647 bytes
  Concurrent copy and kernel execution:          Yes with 3 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Concurrent kernel execution:                   Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device supports Compute Preemption:            Yes
  Supports Cooperative Kernel Launch:            Yes
  Supports MultiDevice Co-op Kernel Launch:      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
Result = PASS

Here I use cuda program to get the version 7.5 and ( 64) CUDA Cores/MP, then add {0x75, 64} In "./kfusion/src/core.cpp" line 67 ./bin/demo Device 0: "GeForce RTX 2060 SUPER" 7979Mb, sm_75, 2176 cores, Driver/Runtime ver.11.10/10.20

which output the same cores num 2176 with program ./deviceQueryDrv