显卡、GPU和CUDA简介

本文介绍了显卡及其核心组件GPU的基本概念和发展历程,包括它们的功能、类型区分以及与CPU的关系。此外,还探讨了CUDA作为一种利用GPU进行并行计算的技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明:
本文部分内容来自网络。由于知识有限,有错误的地方还请指正。本帖为自己学习过程的记录帖,如果对您有帮助,我将荣幸之至。欢迎和我一起讨论,
 
什么是显卡?
    显卡(Video card,Graphics card)全称显示接口卡,又称显示适配器,是计算机最基本配置、最重要的配件之一。就像电脑联网需要网卡,主机里的数据要显示在屏幕上就需要显卡。因此,显卡是电脑进行数模信号转换的设备,承担输出显示图形的任务。具体来说,显卡接在电脑主板上,它将电脑的数字信号转换成模拟信号让显示器显示出来
    原始的显卡一般都是集成在主板上,只完成最基本的信号输出工作,并不用来处理数据。随着显卡的迅速发展,就出现了GPU的概念,显卡也分为独立显卡和集成显卡(见附1)。
 
什么是GPU?
    GPU这个概念是由Nvidia公司于1999年提出的。GPU是显卡上的一块芯片,就像CPU是主板上的一块芯片。那么1999年之前显卡上就没有GPU吗?当然有,只不过那时候没有人给它命名,也没有引起人们足够的重视,发展比较慢。
    自Nvidia提出GPU这个概念后,GPU就进入了快速发展时期。简单来说,其经过了以下几个阶段的发展:
1)仅用于图形渲染,此功能是GPU的初衷,这一点从它的名字就可以看出:Graphic Processing Unit,图形处理单元;
2)后来人们发现,GPU这么一个强大的器件只用于图形处理太浪费了,它应该用来做更多的工作,例如浮点运算。怎么做呢?直接把浮点运算交给GPU是做不到的,因为它只能用于图形处理(那个时候)。最容易想到的,是把浮点运算做一些处理,包装成图形渲染任务,然后交给GPU来做。这就是GPGPU(General Purpose GPU)的概念。不过这样做有一个缺点,就是你必须有一定的图形学知识,否则你不知道如何包装。
3)于是,为了让不懂图形学知识的人也能体验到GPU运算的强大,Nvidia公司又提出了CUDA的概念。
 
什么是CUDA?
    CUDA(Compute Unified Device Architecture),通用并行计算架构,是一种运算平台。它包含CUDA指令集架构以及GPU内部的并行计算引擎。你只要使用一种类似于C语言的CUDA C语言,就可以开发CUDA程序,从而可以更加方便的利用GPU强大的计算能力,而不是像以前那样先将计算任务包装成图形渲染任务,再交由GPU处理。
注意,并不是所有GPU都支持CUDA。
 
CPU和GPU的关系
    在没有GPU之前,基本上所有的任务都是交给CPU来做的。有GPU之后,二者就进行了分工,CPU负责逻辑性强的事物处理和串行计算,GPU则专注于执行高度线程化的并行处理任务(大规模计算任务)。为什么这么分工?这是由二者的硬件构成决定的。
    可以看出,CPU是“主(host)”而GPU是“从(device)”,GPU无论发展得多快,都只能是替CPU分担工作,而不是取代CPU。
 
附1:独立显卡和集成显卡的区别。
    所谓集成,是指显卡集成在主板上,不能随意更换。而独立显卡是作为一个独立的器件插在主板的AGP接口上的,可以随时更换升级。
    另外,集成显卡使用物理内存,而独立显卡有自己的显存。一般而言,同期推出的独立显卡的性能和速度要比集成显卡好、快。
    值得一提的是,集成显卡和独立显卡都是有GPU的。
 
附2:Nvidia显卡分类。
GeForce系列:家庭娱乐。打游戏必备;
Quadro系列:专业绘图设计。视频渲染,经常使用3ds Max、Maya等软件的必备。
Tesla系列:高端显卡,用于大规模的并行计算。土豪必备。
    另外,目前比较流行的物理引擎PhysX,并不是所有显卡都支持。官方文档上说GeForce 8及之后的显卡都支持。
 
结束语:
CUDA只是一种并行计算架构,相关的概念还有OpenCL、OpenMP等。我们下期再介绍。
 
 
### Ubuntu 版本、GPU CUDA 的兼容性配置 在处理 Ubuntu 版本与 GPUCUDA 驱动程序之间的兼容性问题时,需考虑多个因素以确保系统的稳定性性能表现。以下是关于这些组件之间如何相互作用以及最佳实践的相关说明。 #### 1. 操作系统 (Ubuntu) 支持的 CUDA 版本 不同版本的 Ubuntu 对应支持特定范围内的 CUDA 工具包版本。例如,在较新的 Ubuntu 发行版中,通常会提供更新的 GCC 编译器支持库,这可能会影响某些旧版 CUDA 的安装运行效果[^1]。因此建议开发者优先查阅 NVIDIA 官方文档来确认目标操作系统所适配的具体 CUDA 范围。 对于常见的几个长期支持(LTS)版本而言: - **Ubuntu 18.04**: 推荐搭配 CUDA Toolkit 9.x 至 11.x. - **Ubuntu 20.04**: 主要适用于 CUDA Toolkit 11.x 或更高版本. #### 2. 显卡驱动需求 NVIDIA 提供了专门针对开发环境优化过的显卡驱动系列——即所谓的“Tesla/Quadro”类专业级产品线及其对应的 Game Ready Drivers, 这些都经过严格测试能够很好地配合相应的计算框架工作[^2]. 正确安装匹配当前硬件规格并满足所需功能特性的官方认证驱动至关重要;否则即使成功编译也可能遭遇执行效率低下甚至崩溃的情况发生。 另外值得注意的是当升级到新内核或者切换桌面环境之后往往也需要重新加载一次最新的图形子系统服务才能恢复正常操作体验。 #### 3. 实际部署中的注意事项 为了简化整个流程可以利用脚本来自动化完成大部分重复劳动比如下载依赖项设置路径变量等等; 同时也要记得验证最终成果通过简单的 HelloWorld 类型应用程序来进行初步检验是否一切正常运转良好[^3]. 下面给出一段 Python 测试代码用于展示如何查询已安装好的 cuda runtime api version: ```python import pycuda.driver as drv drv.init() print(f"CUDA Runtime API Version: {drv.get_version()}") ``` 此段落无需任何特殊标记因为完全基于个人经验总结而成并未直接摘录自其他资料源文件当中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值