【GPU】CUDA是什么?以及学习路线图!

什么是CUDA

作者:Keepin

  • 1、cuda是英伟达开发的一套应用软件接口(API)。其主要应用于英伟达GPU显卡的调用。

  • 2、云计算可以简单的理解为是通过网络组合成的计算机集群,用于各种加速,其中以CPU为主,GPU为辅。所以CUDA可以成为云计算的一个支柱。

  • 3、神经网络能加速的有很多,当然使用硬件加速是最可观的了,而目前除了专用的NPU(神经网络加速单元),就属于GPU对神经网络加速效果最好了:

    • 3.1、Cuda的整套软件非常完善,所以早期很多厂家用cuda能快速搭建神经网络加速软件框架,所以cuda也被广泛应用于神经网络加速。(当然英伟达还专门开发了一套神经网络套件,叫做tensorrt,在神经网络推理部署的时候更为广泛应用)
    • 3.2、从开发api来说,神经网络的加速不仅仅可以用cuda加速,还可以用其他API,例如GPU开发API很多,包括opencl,opengl,vulkan都可以在英伟达的GPU上加速神经网络,只不过在英伟达显卡上整体来说开发复杂,这些API优化效率不如cuda,毕竟cuda是英伟达自家开发的,自然适配地非常好
    • 3.3、从硬件角度来说,AMD的显卡也可以用于加速神经网络,只不过软件生态做得不如英伟达,自然应用程度也不如英伟达。事实上,AMD也开发一套Miopen的神经网络加速套件,类似于tensorrt;还开发了一套rocm套件,类似于cuda,只不过市场占有率较低而已。
    • 3.4、amd和nvidia都是以桌面端的GPU为主,在移动端,例如手机芯片,高通、苹果和arm的GPU也可以用于加速神经网络,主要使用opencl,vulkan,metal等开发API来实现。

cuda的官方文档:https://docs.nvidia.com/cuda/

学习路线

sazc

入门CUDA

说到入门,个人比较推荐《CUDA C编程权威指南》,虽然这本书年代比较久,原版书2014年出版的,使用的GPU最新也仅仅是2012年的CC3.X的Kepler,但这些基础知识仍然是掌握CUDA最新特性必不可少的,因此还是值得当作入门学习读物的。

进阶CUDA

CUDA C++ Programming Guide

要想Coding出高质量的Kernel,那么官方最新的《CUDA C++ Programming Guide》便是让我们可以全面了解到CUDA特性的最直接的办法,目前最新的版本是12.2。

注:此手册个人认为适合随时查阅,用到啥查啥,从头开始阅读学习,会耗费巨大的精力,效果甚微。

CUDA Samples

如果想利用CUDA特性,快速搭建“简单”的Kernel原型,那么官方的《CUDA Samples》便是再好不过的参考资料。

注:笔者曾经简单过了一遍这个repo,后面有任务需要编写分类算法、理解CUDA特性、学习CUDA 扩展库等,均从中找到了合适的Demo,快速搭建原型。

CUDA: NEW FEATURES AND BEYOND

如果对每代CUDA最新特性感兴趣,那么每年一次或两次的官方GTC发布的《CUDA: NEW FEATURES AND BEYOND》便是可以从宏观层面快速了解到该特性的最好方法之一。

注:观看视频,下载PDF需要注册,比较老的版本 Google可以搜到下载链接。

CUDA Library

cuDNN、cuBlas、cuDLA…。

GPU架构

搞CUDA的要不理解一些GPU的特性,那么永远写不出优质的代码,学习GPU架构可以从白皮书、GTC、官方Blog以及论坛的暗示入手。

SASS

官方的Binary Utilities与论坛的暗示、开源的Assembler、泄漏的SASS规格书、工具分析。

性能分析工具

Nsight System、Nsight Compute、Nsight VS Code等。

专业CUDA

答主目前还没到这个阶段,暂且挖坑。

学习资料

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值