首页 > 其他分享 >cuda软硬件结构

cuda软硬件结构

时间:2023-04-20 16:57:41浏览次数:32  
标签:Python Ubuntu cuda 软硬件 显卡 GPU 我们 结构

 

我们简单分析一下,硬件角度,主要分为计算机硬件(简单来说就是电脑)和显卡硬件(也就是GPU),这里计算机硬件为host端,显卡硬件为GPU端。

接着,我们从图片中计算机硬件来进行分析。这里,我们统一采用Ubuntu系统(Ubuntu18.04或者Ubuntu20.04)都可以,这里我们不采用Windows系统,因为Windows系统运行深度学习模型有一定的限制。

此外,为了方便课程教学,我们统一选择使用Ubuntu系统。在Ubuntu系统上,我们选择安装Anaconda,一句话来解释Anaconda是啥----就是Python环境管理器;简单来说,我们做Python开发,都需要一个Python解释器(比如Python3.7)和一组依赖包(比如:Pytorch、PyQt、NumPy等等),而由于不同Python解释器和依赖包的版本问题,我们就使用Anaconda进行Python环境的隔离和封装,可以在一个系统下隔离出多套Python解释器+一组依赖包的组合,如上图所示。

下一步,我们可以看到,这些不同的Python环境都指向了cudnn的一个对象,这就是一个神经网络的加速计算库,可以理解就是开发特定应用提供的SDK,因为GPU不仅仅可以进行科学计算,还可以用来玩游戏、图形仿真等等,所以不同的方向有不同的加速库。

然后,cudnn调用cuda,cuda简单来说就是对gpu具体操作的封装,这样方便我们直接调用。最后,我们看到计算机和GPU之间是通过显卡驱动来连接的(这里是NVIDIA驱动)。上述的关系图只是概略图,大家了解组件之间的关系就行。

标签:Python,Ubuntu,cuda,软硬件,显卡,GPU,我们,结构
From: https://www.cnblogs.com/QuincyYi/p/17337399.html

相关文章

  • 构建树状结构工具类
    实体类@DatapublicclassTreeNode{/**节点ID*/privateIntegerid;/**父节点ID:顶级节点为0*/privateIntegerparentId;/**节点名称*/privateStringlabel;/**子节点*/privateList<TreeNode>children;/**......
  • 详解数据结构中栈的定义和操作
    摘要:本文为大家详解数据结构中栈的定义和操作。本文分享自华为云社区《数据结构:详细讲解栈的定义、栈的操作》,作者:高彬滔。1.栈的定义栈(stack):是只允许在一端进行插入或者删除操作的线性表(即后进先出,大概可以理解为吃饱了吐出来)空栈:不含元素的空标配栈顶:表尾端栈底:表头端......
  • 09-内置对象扩展:Set数据结构
    title:09-内置对象扩展:Set数据结构publish:trueSet数据结构Set数据结构的介绍ES6提供了新的数据结构Set。Set类似于数组,但成员的值都是唯一的,没有重复的值。Set的应用有很多。比如,在H5页面的搜索功能里,用户可能会多次搜索重复的关键字;但是在数据存储上,不需要存......
  • Python常用数据结构之元组
    前面的两节课,我们为大家讲解了Python中的列表,它是一种容器型的数据类型,通过列表类型的变量,我们可以保存多个数据并通过循环实现对数据的批量操作。当然,Python中还有其他容器型的数据类型,接下来我们就为大家讲解另一种容器型的数据类型,Python常用数据结构之元组(tuple)。元组的定义......
  • js控制结构
    1、if…elseif…else…if(15){alert('abc')}js存在强转bool类型其他与java语法相同2、switch3、while4、dowhile5、forvarlist=[12,22,'abc','ddd']for(leti=0;i<list.length;i++){alert(list[i])}6、增强for7、迭代......
  • 计算机组成原理-ARM指令集体系结构(二)
    ARM汇编语言ARM指令格式LabelOp-codeoperand1,operand2,operand3;comment 一段简单的ARM代码(执行后R0寄存器的值为0x0C,R1寄存器的值为0x0C): 汇编伪指令AREA定义代码段。例子中的代码段名字为MyCODE,属性为CODE。汇编伪指令ENTRY告诉汇编器在哪里找到要执行的第一条指令......
  • 扎实打牢数据结构算法根基,从此不怕算法面试系列之008 week01 02-08 通过常见算法,对常
    1、线性查找法的复杂度publicstatic<E>intsearch(E[]data,Etarget){for(inti=0;i<data.length;i++)if(data[i].equals(target))returni;return-1;}很容易看出,这个算法的复杂度为O(n)。2、一个数组中的元素可以两两组成......
  • 数据结构与算法学习01
    学习要点一、预习页码:2-27二、预习内容1、数据结构基本定义:数据、数据元素、数据项、数据对象,重点理解数据结构的定义。2、理解逻辑结构。集合、线性结构、树形结构、图形结构。数学描述方法。3、理解存储结构。顺序存储结构、链式存储结构、索引存储结构和哈希存储结构。4......
  • 数据结构与算法学习02
    学习要点一、复习内容重点及难点:算法的时间复杂度分析。过程:(1)找寻循环中的最内层语句(2)分析该语句的执行次数。二、预习内容1、预习页码:21-22,30,32-422、具体预习内容(1)算法的平均时间复杂度分析。不能用最好和最坏的极端情况分析算法,应该用等概率的平均时间复杂度来进行分析......
  • 数据结构与算法学习04
    学习要点1、预习页码:47-542、预习内容:(1)单链表建立的头插法和尾插法。(重点)两种方法的不同级效果。(2)线性表的基本运算在单链表中的实现。(9个算法)重点掌握在9个算法中,如何计算单链表的长度(采用循环计数的方式),单链表越界的描述,单链表中节点的查找,单链表节点的插入和删除操作。(重点......