GPU 计算能力(Compute Capability)那些事儿 以及 编译caffe/pytorch/tensorflow时怎样设置计算能力?

每日一歌,分享好心情: 你莫走

关于nvidia计算能力的一切,看完这篇文章足够用了…

一、常见gpu卡计算能力查询

https://developer.nvidia.com/cuda-gpus#compute
部分gpu计算能力:
在这里插入图片描述

二、计算能力是什么东东

  1. 计算能力(Compute Capability)并不是指gpu的计算性能
  2. nvidia发明计算能力这个概念是为了标识设备的核心架构、gpu硬件支持的功能和指令,因此计算能力也被称为“SM version"。
    计算能力包括主修订号X和次修订号Y来表示, 主修订号标明核心架构,次修订号标识在此核心架构上的增量更新。
  3. 计算能力版本号与CUDA版本号(例如CUDA7.5、CUDA8等)不能混淆,cuda是一个软件平台,新版本的cuda通过增加默认支持的计算能力进而支持nv新推出的gpu硬件。

下图是来自英伟达官方说明:
在这里插入图片描述

三、编译常见后端时怎么设置计算能力(亲测有效)

在编译caffe/pytorch…这些后端时都有默认的计算能力,但通常不满足我们的使用要求,需要自己设置计算能力以达到最好的性能。

  1. 编译tensorflow c++接口设置计算能力
    《Tensoflow c++ so编译 基于bazel》 中有说明,不再赘述。
  2. 编译pytorch c++接口设置计算能力
    pytorch源码: https://github.com/pytorch/pytorch
    pytorch在编译过程中使用了环境变量TORCH_CUDA_ARCH_LIST,在编译前设置此变量即可
    例如:
export TORCH_CUDA_ARCH_LIST="7.0;7.5;8.6" #设置计算能力
python3 ../tools/build_libtorch.py  #开始编译

在Readme.md中有关于这个变量的说明,值得注意的是pytorch默认支持gpu
在这里插入图片描述
详情请查阅源码 中的setup.py 文件。

  1. 编译TensorRT c++接口设置计算能力
    增加编译选项 GPU_ARCHS
export TRT_RELEASE=/TensorRT-8.2.1.8 #设置TRT未开源包地址,需要提前下载
cmake .. -DTRT_LIB_DIR=$TRT_RELEASE/lib -DTRT_OUT_DIR=`pwd`/out -DBUILD_PLUGINS=ON -DBUILD_PARSERS=ON -DGPU_ARCHS="70 75 80 86"
make -j
  1. 编译caffe c++接口设置计算能力
    caffe源码: https://github.com/BVLC/caffe/blob/master/cmake/Cuda.cmake
    在caffe 源码目录下的 cmake/Cuda.cmake文件中设置计算能力:
    在这里插入图片描述

我们可以在编译之前设置

export CUDA_ARCH_NAME=All
#然后再修改./cmake/Cuda.cmake文件中的Caffe_known_gpu_archs变量即可

在这里插入图片描述

四、进阶

编译时设置的计算能力列表是怎么起作用的?
在计算能力为7.5的编译计算机上是怎么编译出能够支持计算能力为8.6的软件程序的?
是交叉编译吗?
这个问题涉及到了cuda编程模型,咱们后文详谈…

今天就到这儿,干饭,走起~

  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白龙呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值