大数据及机器学习带 GPU 必须干的第一件事

这篇具有很好参考价值的文章主要介绍了大数据及机器学习带 GPU 必须干的第一件事。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

这不仅仅是 Python 语言类进行机器学习解决性能问题的唯一,在使用 Java/Python 进行大数据处理时,有时候也会有遇到需要 GPU 来解决性能的问题。

以作者的使用经验来看,在需要并行计算能力的程序里,CPU 再强壮也比不过 GPU 的加持。

所以 GPU 很重要,但不了解的朋友们,可能一买来爱机,就急急忙忙地开发体验,却不知所以然,有可能是因为少干了几件事!非得要等开发了,才一堆报错,如下所示:

  File "..\torch\cuda\__init__.py", line 239, in _lazy_init
    raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled

# 又或者是

xFormers can't load C++/CUDA extensions. xFormers was built for:
caught exception 'Torch not compiled with CUDA enabled', memory monitor disabled

上面的图不是唯一的错误,现归类一下,大概不了解的朋友们一共会出现三类:

  1. 没有 GPU 却强制写了 GPU 的代码;
  2. 有 GPU 但没有安装驱动;
  3. 有 GPU 也装了驱动,却没有装正确的库; 

二、安装显卡驱动程序

请自行前往 NVidia 驱动程序下载页 进行挑选,毕竟每个人的电脑不太一样,但我初步看了一下,大家可能买的电脑的支持列表大概一致,如果一样你就点此 传送门 去下载,下图是传送门的截图

机器学习用显卡,机器学习,大数据,Python,大数据,机器学习,人工智能

安装时一般傻瓜式安装就可以了,这里不详细说了,都是系统驱动。

三、安装 CUDA 工具包支持

上面一节一般默认安装后,程序的位置会在:C:\Windows\System32\nvidia-smi.exe

如果一不小心自己换了别的目录而没有被识别,你可以去配置 PATH 自行添加。

接着在安装 CUDA 之前,先看一下你所购买的当前 CUDA 版本号是多少?具体如下:

机器学习用显卡,机器学习,大数据,Python,大数据,机器学习,人工智能

从上图可以得到,需要关注的是 12.3 的版本,点此 传送门 即可到达指定地点,下面是截图预览。

机器学习用显卡,机器学习,大数据,Python,大数据,机器学习,人工智能

一般情况下,尾号版本具有更大的兼容性,所以我这边直接选了 12.3.2,也是一样默认安装。 

装完之后,它的默认路径一般在(下图所示):

机器学习用显卡,机器学习,大数据,Python,大数据,机器学习,人工智能

四、使用 Python 代码快速测试

4.1、使用 pytorch 框架

import torch

# 检查是否有CUDA支持
if torch.cuda.is_available():
    print("CUDA支持可用")
else:
    print("CUDA支持不可用")

注意事项,这里没有讲太多,因为不讲库安装,这里提个醒,pytorch 需要注意一下关键字:

类似 torch-2.1.2+cu118 这样的才是支持 GPU,而 torch-2.1.2 是没有 !

4.2、使用 tensorflow 框架

import tensorflow as tf

# 获取可见的GPU设备列表
gpu_devices = tf.config.experimental.list_physical_devices('GPU')

if gpu_devices:
    print("GPU支持可用")
else:
    print("GPU支持不可用")

五、扩展知识

5.1、什么是 nvidia-smi 命令行程序

首先要明白什么是 smi?它的英文全称是 System Management Interface。

所以我们可以通俗点叫它 NVIDIA 系统管理接口或界面 (nvidia-smi) ,它是一个命令行实用程序,基于 NVIDIA 管理库 (NVML) ,旨在帮助管理和监控 NVIDIA GPU 设备。

所以如果你没有支持 nvidia-smi,那么所有 N卡相关的 GPU 都基本不能使用。

那 NVML 又是什么?它的英文全称是 NVIDIA Management Library。它基于 C 的 API,用于监控和管理 NVIDIA GPU 设备的各种状态。它提供对通过 nvidia-smi 公开的查询和命令的直接访问。NVML 的运行时版本附带 NVIDIA 显示驱动程序,SDK 提供相应的标头、存根库和示例应用程序。每个新版本的 NVML 都向后兼容,旨在成为构建第三方应用程序的平台。

5.2、CPU 与 GPU 在开发及应用中的区别

在机器学习中,CPU(中央处理器)和 GPU(图形处理器)都可以用于训练和推理模型,但它们在性能和适用场景上有所不同。以下是 CPU 和 GPU 在机器学习中的主要区别:

5.2.1、并行处理能力

CPU CPU 通常有较少的核心(如 2 到 16 个),适合处理顺序任务和复杂的逻辑运算。
GPU GPU 拥有数百到数千个较小的核心,适合大规模并行计算,如矩阵运算和向量运算。

5.2.2、内存带宽

CPU CPU 的内存带宽相对较低,访问内存的延迟较高。
GPU GPU 具有更高的内存带宽,可以快速访问大量数据,适合处理大规模数据集。

5.2.3、计算速度

CPU CPU 在处理复杂的逻辑运算和分支预测方面表现出色,但在大规模并行计算方面较慢。
GPU GPU 在大规模并行计算方面表现出色,特别适合矩阵运算和卷积等操作,可以显著加速机器学习的训练和推理过程。

5.2.4、编程模型

CPU 使用传统的编程语言和库,如 C++、Python 等,编程模型相对简单。
GPU 需要使用特定的编程框架和库,如 CUDA(针对 NVIDIA GPU)或 OpenCL,编程模型相对复杂,需要考虑并行编程和内存管理。

5.2.5、成本和功耗

CPU 相对便宜,功耗较低。
GPU 通常比 CPU 更昂贵,功耗较高,需要额外的散热措施。

5.2.6、适用场景

CPU 适合处理较小规模的数据集、复杂的逻辑运算以及部署在资源受限的环境中。
GPU 适合处理大规模数据集、计算密集型任务(如深度学习)以及需要实时性能的应用场景。

在实践中,许多机器学习任务,特别是深度学习,都倾向于使用 GPU 来加速训练和推理过程。然而,对于某些特定的任务和场景,如部署在嵌入式设备或边缘计算中,CPU 仍然是一个可行的选择。此外,一些机器学习框架和库,如 TensorFlow 和 PyTorch,提供了同时支持 CPU 和 GPU 的灵活性,可以根据需求和可用资源进行选择。

5.3、什么是 CUDA?

CUDA(Compute Unified Device Architecture)是由 NVIDIA 开发的一个并行计算平台和编程模型,旨在利用 NVIDIA GPU 的并行处理能力来加速计算密集型任务。它允许开发者使用类似于 C/C++ 的语言来编写能够在 GPU 上运行的程序,从而大大提高计算性能。

CUDA 的出现极大地推动了 GPU 计算的发展,使得开发者能够更容易地利用 GPU 的并行处理能力来加速计算密集型任务。它已经成为了许多高性能计算和机器学习框架的重要组成部分,如 TensorFlow、PyTorch 等。然而,需要注意的是,CUDA 仅支持 NVIDIA GPU,对于其他厂商的 GPU,需要使用其他编程模型和框架,如 OpenCL 等。文章来源地址https://www.toymoban.com/news/detail-854967.html

六、参考资料

  1. NVidia 官方社区

到了这里,关于大数据及机器学习带 GPU 必须干的第一件事的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第一件事 什么是 Java 虚拟机 (JVM)

    1、什么是虚拟机? - 这个其实是一个挺逗的事情,说白了,就是基于某个硬件架构,在这个硬件部署了一个操作系统,再构架一层虚拟的操作系统,这个新构架的操作系统就是虚拟机。 不知道的兄弟姐妹们,可以去看看 VMWARE 这个软件,它可以在很多常用操作系统上面构建很

    2024年02月21日
    浏览(42)
  • 大数据笔记--Spark机器学习(第一篇)

    目录 一、数据挖掘与机器学习 1、概念 2、人工智能 3、数据挖掘体系 二、机器学习 1、什么是机器学习 2、机器学习的应用 3、实现机器学习算法的工具与技术框架 三、Spark MLlib介绍 1、简介 2、MLlib基本数据类型 Ⅰ、概述 Ⅱ、本地向量 Ⅲ、向量标签的使用 Ⅳ、本地矩阵 Ⅴ、

    2024年02月07日
    浏览(86)
  • 小白学习c++的的第一节课

    经过了很长时间对C语言和c的数据结构学习,终于开始学C++了。前面基础不牢,后面地动山摇,给自己加油。 该如何去学习c++? 多写博客。写博客,主要是总结自己学习的知识,更系统更全面对所学的知识进行概况,也能起到复习的作用。 有时间的话多看看课外书 c++的学习不

    2024年02月08日
    浏览(44)
  • 学习Python的第一天(下载Python环境和工具Pycharm)

    下载工具  PyCharm Community Edition 2023.3.4 下载环境 Python3.10.4 目录 1.环境Python下载 1.1 Python环境变量下载网址:   1.2 下载步骤 2.工具Pycharm下载 2.1 pycharm下载网址  2.2 pycharm下载步骤 Python Releases for Windows | Python.org 这里我将列举我正在使用的版本 Python3.10.4 下载过程如果是其他版本

    2024年03月26日
    浏览(51)
  • 学习织梦网站必需会的一件事之织梦网站数据备份

    任务:宝塔面板织梦网站备份 织梦CMS程序运行环境:PHP+MySQL 所以无论是备份还是还原,都涉及2个部分,一个是web文件的备份,一个是数据库的备份。 做好数据备份是站长管理员和维护人员的基本操作,织梦是php语言书写的程序,但是它的数据备份比一般的程序都简单,织梦

    2024年02月03日
    浏览(42)
  • 猿创征文|Python-sklearn机器学习之旅:我的第一个机器学习实战项目

    目录 前言 一、从目的出发 1.导入数据 二、项目开启 1.导入数据

    2024年01月24日
    浏览(53)
  • 如何快速水出人生中的第一篇SCI系列:深度学习目标检测算法常用评估指标——一文读懂!

    详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先! 截止到发稿,B站YOLOv8最新改进系列的源码包已更新了22种! 排列组合2-4种后,约有6000-7000种! 部分改进教程视频在这:详细的改进

    2024年02月07日
    浏览(47)
  • 【机器学习学习】第一天:入门指南

    引言 当今社会,机器学习技术已经被广泛应用于许多领域,如自然语言处理、图像处理和金融分析等。然而,机器学习这一领域需要掌握大量的数学知识和编程技能,因此对于初学者来说,可能会感到非常困难。本文将为初学者提供一份机器学习入门指南,帮助他们了解机器

    2024年02月02日
    浏览(39)
  • 《机器学习》- 习题解析 - 第一章

    首先从概念上理解 版本空间 的定义; 版本空间: 从 假设空间 删除掉 与 正例不一致 和与 反例一致 的假设后,剩余的假设所组成的集合。它可以看成是对正例的最大泛化。 下图是书中的表1.1 西瓜数据集: 表1.1的训练数据集对应的假设空间如下:一共有49种 ; “色泽” “

    2024年02月07日
    浏览(45)
  • (最新详细下载UE5教程)学习UE5的第一步;下载Epic及从Epic中选取相关引擎及启动UE5/day.1

    虚幻引擎5是EPIC于2020年公布的第五代游戏引擎,其实吧吧啦吧啦这么多毛用也没有,大伙也知道这些东西,不知道的也不会想学😃。 那么,就进入正题吧! 各位玩游戏吗?玩的话那肯定知道EPIC,也就是各大玩友戏称为“E宝”的游戏商店;(如果你下载了的话直接跳到第二

    2023年04月10日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包