我的NVIDIA开发者之旅” | 征文活动进行中.......

一、什么是CUDA?

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员可以使用C语言来为CUDA™架构编写程序,所编写出的程序可以在支持CUDA™的处理器上以超高性能运行。CUDA3.0已经开始支持C++和FORTRAN。

简单来说CUDA主要用来解决GPU的计算问题。

二、CUDA的生态环境

介绍CUDA前,需要首先介绍他的老大哥GPU(图形处理器),NVIDIA公司在1999年发布 Geforce256图形处理芯片时首先提出GPU的概念。从此 NVIDIA显卡的芯就用GPU来称呼。GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时。GPU所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术可以说是GPU的标志。CUDA的很大一部分工作是负责GPU的复杂计算工作。

如上图所示,一般的计算机包括CPU+GPU+操作系统&驱动等,本次要介绍的CUDA处于操作系统和驱动之上,主要负责并行计算和数值计算,通过这些复杂的架构的高效组合,最后来支持我们深度的应用

三、CUDA开发心得

1、CUDA环境搭建(需提前安装好Visual Studio的开发工具

CUDA-ZONE下载地址:CUDA Zone - Library of Resources | NVIDIA DeveloperExplore CUDA resources including libraries, tools, and tutorials, and learn how to speed up computing applications.https://developer.nvidia.com/cuda-zone

为了方便大家阅读,将页面翻译为中文,我们点击“现在下载”按钮

根据我们的需要选择对应的下载资源,并安装与一般软件的下载安装一致,不在详细阐述。

2、硬件简述

如图所示是个完整的硬件开发设备,和我们本次文章相关的主要是红框框里面的GPU,一般建议开发设备,需要两个GPU,一个负责计算一个负责显示,当然这边推荐的也是NVIDIA的GPU。因此我们再上图基础上再增加一个GPU,这时候就构成了我们完整的开发硬件环境。

3、开发实例

windowns

准备好后,我们可以使用VS新建一个测试用例,来检查我们是否安装成功了,如图所示,我们新建VS程序时可以选择CUDA的类型,基本证明没什么大问题了。

运行并行计算测试案例,C[i]=A[i]+B[i],我们可以输入一些测试值,比如A=[1,2,3,4,5],B=[10,20,30,40,50]之类的,此时C的并行计算结果,如下图我们用小学数学知识告诉我们结果是正确的。

         linux

与Windows一致,当我们能成功运行对应测试实例证明我们已经已正确安装对应的CUDA程序。

4、开发心得

CUDA是NVIDIA公司推出的一套编程环境,包括驱动,sdk,toolkit等。主要是用来进行计算加速,作为协处理器来进行使用。同时cuda有很多的库,如cublas,cufft等计算库,在用于科学计算和人工智能领域都有很好的加速效果。学习了CUDA,你会将计算机的基础知识、数字电路、算法基础、线性代数都重温了一遍。将自己杂乱的计算机知识窜点成线,成为了闪闪发亮的珍珠串。

如果你也想学习AI与科学计算,但又觉得那些太复杂与高大上,不妨从CUDA入手,不再惧怕他们,战胜不可能。让那些复杂AI计算都交给CUDA兄弟。

参考资料

示例代码https://developer.nvidia.com/cuda-code-samplesCUDA论坛https://forums.developer.nvidia.com/c/accelerated-computing/5 我的NVIDIA开发者之旅” | 征文活动进行中.......

我的NVIDIA开发者之旅--从CUDA种草AI梦相关推荐

  1. 我的NVIDIA开发者之旅——NVIDIA云原生技术

    NVIDIA云原生技术:耐心看完受益匪浅 第一篇->NVIDIA云原生技术 [1]NVIDIA容器工具包 [2]GPU操作员 [3]带GPU的Kubernetes [3.1]安装Kubernet ...

  2. 我的NVIDIA开发者之旅-Jetson Nano 2gb教你怎么训练模型(完整的模型训练套路)

    我的NVIDIA开发者之旅" | 征文活动进行中....... 模型的保存和加载 pytorch的安装方法这里就不写了,之前的文章有记录,nvidia官网的资料已经很详细了附上连接(注意你的 ...

  3. 我的NVIDIA开发者之旅——作为一名初学者,我是如何开启 NVIDIA Jetson Nano 开发的

    "我的NVIDIA开发者之旅" | 征文活动进行中- ⭐️ 作者:前端修罗场 ⭐️ 本文名称:我的NVIDIA开发者之旅--作为一名初学者,我是如何开启 NVIDIA Jetson ...

  4. 我的NVIDIA开发者之旅-Jetson在没有显示器的状态下使用Vnc操控GUI界面开发的三种实用技巧

    "我的NVIDIA开发者之旅" | 征文活动进行中....... 首先是因为小编是没有显示器用,想着用vnc操作图形界面,使用了nvidia自带的vnc远程方法是无效的在没显示器的 ...

  5. 我的NVIDIA开发者之旅——利用NVIDIA TAO工具包3.0和Deepstream快速搭建车辆信息识别系统

    利用NVIDIA TAO工具包3.0和Deepstream快速搭建车辆信息识别系统 实现目标 部署工具:NVIDIA DeepStream SDK 简单设置参数 工作流程 注意事项 GPU深度学习推理 ...

  6. 从NVIDIA官方网站上下载CUDA的方法

    您可以从NVIDIA官方网站上下载CUDA.以下是下载CUDA的步骤: 打开NVIDIA官方网站:https://www.nvidia.com/. 鼠标悬停在"开发者"菜单上,然后 ...

  7. NVIDIA GeForce RTX 3080 with CUDA capability sm_86 is not compatible with the current PyTorch

    遇到的问题 最近在带4卡GeForce RTX 3080 的服务器上安装了一个高版本的pytorch,发现在运行如下命令时报如下错误:运行命令如下: import torchprint(torch._ ...

  8. android x86双显卡,centos7笔记本双显卡安装nvidia驱动并成功安装cuda

    原标题:centos7笔记本双显卡安装nvidia驱动并成功安装cuda 这是一篇介绍如何在笔记本上使用centos 7 系统安装nvidia驱动和cuda 的文章. 本篇还会介绍清晰的安装思路. 探 ...

  9. ubuntu安装nvidia显卡的驱动和cuda

    ubuntu安装nvidia显卡的驱动和cuda 以前源码安装驱动和cuda的过程是比较繁琐的,现在可以直接使用apt去安装驱动已经cuda,具体的命令如下. 1. 安装英伟达显卡驱动 搜索显卡驱动 ...

最新文章

  1. 混淆视听的感脚(二)
  2. 判断大小简单算法_JVM GC算法
  3. python自动化接口测试excel用例串行之行_python 读取 Excel 自动化执行测试用例
  4. api有哪些 javasocket_基于java的socket编程及API解析
  5. ROS笔记(7) 话题通信
  6. JavaScript执行机制-node事件循环
  7. linux拨号日志,Linux系统日志管理:(1)连接时间日志
  8. 资源下载网站整站资源|建站6万资源数据32G整站下载
  9. Maya Python脚本入门
  10. 热身赛-巴西5-1坦桑尼亚 卡卡传射罗比两破门
  11. 设定所有版本的谷歌浏览器支持flash
  12. 两个取得卓越业绩的关键因素
  13. 【题目泛做】哲学题(DFS序)(Splay)
  14. 开始topcoder
  15. RHEL6/7更新系统的CA
  16. 我们要理智使用计算机英语,新视野大学英语第四册(四级)期末复习重点单词词组句子...
  17. 电信主机托管费用_电信托管服务器需要如何计费?
  18. alphago zero和alpha go、alphago master的区别
  19. .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调、APM、EAP、TPL、aysnc、await
  20. java计算机毕业设计西安财经大学校园一卡通管理系统源代码+数据库+系统+lw文档

热门文章

  1. Node.js-Buffer对象
  2. 【洞见研报】研报速读:光伏行业简报——分布式光伏“势不可挡”(光伏,分布式光伏,太阳能)
  3. QPushbutton设置icon和文字 (文字在图标下方)
  4. 风光互补微网发电系统,微电网系统,光伏能量变换实验,QY-TYN06
  5. 【数字图像处理课程设计】基于非深度学习方法实现身份证定位与正反面识别
  6. LeetCode 938. Range Sum of BST 时间复杂度(O(n))
  7. 最短路——floyd算法
  8. c语言中有布尔型变量,C语言的布尔型(bool)
  9. 【多进程和多线程实现并发服务器】
  10. Java POI 生成Word文档