Ubuntu查看CUDA的CUDA_ARCH_BIN

我们在使用源码编译带cuda的opencv时,需要设置显卡的CUDA_ARCH_BIN,本文介绍一下获得该值的方法

方法一

安装好cuda之后,可以从cuda sample中获得

cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make -j8
./deviceQuery

如上,运行后输出信息如下

  1. nvidia@nvidia-X10SRA:/usr/local/cuda/samples/1_Utilities/deviceQuery$ ./deviceQuery

  2. ./deviceQuery Starting...

  3. CUDA Device Query (Runtime API) version (CUDART static linking)

  4. Detected 3 CUDA Capable device(s)

  5. Device 0: "Tesla T4"

  6. CUDA Driver Version / Runtime Version 10.2 / 10.2

  7. CUDA Capability Major/Minor version number: 7.5

  8. Total amount of global memory: 15110 MBytes (15843721216 bytes)

  9. (40) Multiprocessors, ( 64) CUDA Cores/MP: 2560 CUDA Cores

  10. GPU Max Clock rate: 1590 MHz (1.59 GHz)

  11. Memory Clock rate: 5001 Mhz

  12. Memory Bus Width: 256-bit

  13. L2 Cache Size: 4194304 bytes

  14. Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)

  15. Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers

  16. Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers

  17. Total amount of constant memory: 65536 bytes

  18. Total amount of shared memory per block: 49152 bytes

  19. Total number of registers available per block: 65536

  20. Warp size: 32

  21. Maximum number of threads per multiprocessor: 1024

  22. Maximum number of threads per block: 1024

  23. Max dimension size of a thread block (x,y,z): (1024, 1024, 64)

  24. Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)

  25. Maximum memory pitch: 2147483647 bytes

  26. Texture alignment: 512 bytes

  27. Concurrent copy and kernel execution: Yes with 3 copy engine(s)

  28. Run time limit on kernels: No

  29. Integrated GPU sharing Host Memory: No

  30. Support host page-locked memory mapping: Yes

  31. Alignment requirement for Surfaces: Yes

  32. Device has ECC support: Enabled

  33. Device supports Unified Addressing (UVA): Yes

  34. Device supports Compute Preemption: Yes

  35. Supports Cooperative Kernel Launch: Yes

  36. Supports MultiDevice Co-op Kernel Launch: Yes

  37. Device PCI Domain ID / Bus ID / location ID: 0 / 2 / 0

  38. Compute Mode:

  39. < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

  40. ……

可以看到的相关信息,包括cuda capability为7.5,2560个cuda核心等

方法二

如果安装cuda时没有安装samples,则可以使用下边的方法

 git clone https://github.com/NVIDIA-AI-IOT/deepstream_tlt_apps.git
cd deepstream_tlt_apps/TRT-OSS/x86
nvcc deviceQuery.cpp -o deviceQuery
./deviceQuery

同样会输出上边类似的信息

方法三

官网查询,选择自己对应的显卡型号查

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
解释:if(CUDA_FOUND) message(STATUS "Found CUDA Toolkit v${CUDA_VERSION_STRING}") enable_language(CUDA) set(HAVE_CUDA TRUE) if (CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA") if(${CUDA_VERSION_STRING} VERSION_GREATER_EQUAL "11.1") execute_process(COMMAND ${CMAKE_CUDA_COMPILER} --list-gpu-code RESULT_VARIABLE EXIT_CODE OUTPUT_VARIABLE OUTPUT_VAL) if(EXIT_CODE EQUAL 0) #Remove sm_ string(REPLACE "sm_" "" OUTPUT_VAL ${OUTPUT_VAL}) #Convert to list string(REPLACE "\n" ";" __CUDA_ARCH_BIN ${OUTPUT_VAL}) #Remove last empty entry list(REMOVE_AT __CUDA_ARCH_BIN -1) else() message(FATAL_ERROR "Failed to run NVCC to get list of GPU codes: ${EXIT_CODE}") endif() elseif(${CUDA_VERSION_STRING} VERSION_GREATER_EQUAL "11.0") set(__CUDA_ARCH_BIN "35;37;50;52;53;60;61;62;70;72;75;80") elseif(${CUDA_VERSION_STRING} VERSION_GREATER_EQUAL "10.0") set(__CUDA_ARCH_BIN "30;32;35;37;50;52;53;60;61;62;70;72;75") elseif(${CUDA_VERSION_STRING} VERSION_GREATER_EQUAL "9.1") set(__CUDA_ARCH_BIN "30;32;35;37;50;52;53;60;61;62;70;72") else() set(__CUDA_ARCH_BIN "30;32;35;37;50;52;53;60;61;62;70") endif() else() message(FATAL_ERROR "Unsupported CUDA compiler ${CMAKE_CUDA_COMPILER_ID}.") endif() set(CUDA_ARCH_BIN ${__CUDA_ARCH_BIN} CACHE STRING "Specify 'real' GPU architectures to build binaries for") if(POLICY CMP0104) cmake_policy(SET CMP0104 NEW) set(CMAKE_CUDA_ARCHITECTURES ${CUDA_ARCH_BIN}) message(STATUS "CMAKE_CUDA_ARCHITECTURES: ${CMAKE_CUDA_ARCHITECTURES}") #Add empty project as its not required with newer CMake add_library(pcl_cuda INTERFACE) else() # Generate SASS set(CMAKE_CUDA_ARCHITECTURES ${CUDA_ARCH_BIN}) # Generate PTX for last architecture list(GET CUDA_ARCH_BIN -1 ver) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode arch=compute_${ver},code=compute_${ver}") message(STATUS "CMAKE_CUDA_FLAGS: ${CMAKE_CUDA_FLAGS}") add_library(pcl_cuda INTERFACE) target_include_directories(pcl_cuda INTERFACE ${CUDA_TOOLKIT_INCLUDE}) endif () endif()
05-30

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值