Windows系统安装PyTorch框架支持AMD Radeon显卡/Intel显卡

news2024/9/23 3:27:48

前言

PyTorch框架作为一种主流的、对新手友好的深度学习框架,应用的范围越来越广泛,但是作为一种深度学习框架,使用显卡进行加速训练是一种常见的需求,而PyTorch框架官方支持对NVIDIA卡支持更加友好,这一点从官方的安装指引也可以看出:
PyTorch安装页面

但是个人计算机(特别是本地Windows系统),很多时候并没有N卡,而只有AMD的Radeon卡或者Intel卡,同时很多时候还是核显而非独显,此时如果需要使用显卡,需要通过DML(DirectML)进行PyTorch模型训练的环境配置。

1.创建虚拟环境

虚拟环境使用Python3.9,使用conda进行虚拟环境管理:

conda create -n deepbase python=3.9 -y

2.安装PyTorch(可省略)

因为显卡使用A卡或者I卡、而非N卡,因此不选择cuda版本的PyTorch、而直接安装CPU版即可。切换到虚拟环境后,使用conda安装CPU版PyTorch:

conda install pytorch==2.0.0 cpuonly -c pytorch -y

3.安装DirectML接口

如果PyTorch需要支持AMD等非N卡,一种方式是选择DirectML接口进行加速,DirectML 是用于机器学习的高性能硬件加速 DirectX 12 库。DirectML 在广泛支持的硬件和驱动程序上为常见的机器学习任务提供 GPU 加速,其中包括 AMD、英特尔、英伟达和高通等供应商生产的所有支持 DirectX 12 的 GPU。

PyTorch与DirectML的版本对应关系如下:

torch-directmlPyTorch
0.1.13+1.13+
1.8.0a0.*1.8

安装命令如下:

pip install torch-directml

当前安装的torch-directml版本为0.2.0。

因为安装torch-directml依赖PyTorch,同时有明确的版本对应关系,因此步骤2也可以省略,在安装torch-directml时即会自动安装对应版本的PyTorch。

4.使用测试

可以查看DML是否安装成功并且可用:

>>> import torch
>>> torch.cuda.is_available() # cuda不可用
False
>>> import torch_directml
>>> torch_directml.is_available() # DML可用
True

查看可用的GPU显卡名称:

>>> torch_directml.device_name(0)
'Radeon RX550/550 Series'
>>> torch_directml.device_name(1)
'Intel(R) UHD Graphics 630'

使用DML进行计算:

>>> import time
>>> import torch
>>> import torch_directml
>>>
>>>
>>> a=torch.randn(40000000,1)
>>> b=torch.randn(40000000,1)
>>> t0=time.time()
>>> r=a*b
>>> print(r)
tensor([[-1.1785],
        [-1.3836],
        [-0.6546],
        ...,
        [ 0.1480],
        [-0.7637],
        [-0.7420]])
>>> print(time.time()-t0)
0.048870086669921875
>>>
>>> c=a.to(torch_directml.device(0))
>>> d=b.to(torch_directml.device(0))
>>> t1=time.time()
>>> r=c*d
>>> print(r)
tensor([[-1.1785],
        [-1.3836],
        [-0.6546],
        ...,
        [ 0.1480],
        [-0.7637],
        [-0.7420]], device='privateuseone:0')
>>> print(time.time()-t1)
0.1271059513092041
>>>
>>> e=a.to(torch_directml.device(1))
>>> f=b.to(torch_directml.device(1))
>>> t2=time.time()
>>> r=e*f
>>> print(r)
tensor([[-1.1785],
        [-1.3836],
        [-0.6546],
        ...,
        [ 0.1480],
        [-0.7637],
        [-0.7420]], device='privateuseone:1')
>>> print(time.time()-t2)
0.2713508605957031

可以看到,此时使用A卡和I卡得计算速率都比使用CPU更慢,一方面可能是因为A卡等显卡的版本和配置等原因,有可能其计算性能还低于CPU,另一方面可能是需要进行梯度下降和反向传播时才能体现显卡的优势。具体使用时还是需要根据表现进行灵活选择

总结

PyTorch对NVIDIA显卡的支持最好,但是通过额外配置,也可以支持其他常见显卡,但是性能上可能存在一定的区别,需要根据需要和表现进行灵活选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1543181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机组成】计算机组成与结构(四)

上一篇:【计算机组成】计算机组成与结构(三) (7)存储系统 计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。 两级存储:cache-主存、主存-辅存(虚拟存储体系) 局部性原理 ◆ 局部性…

AI程序员的诞生,对传统程序员的影响和堆技术产生的影响

一、全球首位AI程序员诞生,将会对程序员的影响有多大? AI程序员并不会抢走传统程序员的饭碗,而是为他们提供更多的工具和技术支持。实际上,AI技术在软件开发领域的应用可以帮助程序员更高效地进行开发、测试和维护工作&#xff0…

【python】flask执行上下文context,请求上下文和应用上下文原理解析

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

挺后悔,我敷衍地回答了“程序员如何提升抽象思维“

分享是最有效的学习方式。 博客:https://blog.ktdaddy.com/ 大家好,我是老猫。 大概在月初的时候,我发了一篇文章【当程序员之后?(真心话)】,在这篇文章中,提及了抽象思维对一名程序员的重要性。可能说得也比较笼统&a…

ZYNQ学习之PetaLinux开发环境搭建

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ FTP&#xff1a;File Transfer Protocol 一、Ubuntu 和 Windows 文件互传 1.1、开启 Ubu…

一篇复现Docker镜像操作与容器操作

华子目录 Docker镜像操作创建镜像方式1docker commit示例 方式2docker import示例1&#xff1a;从本地文件系统导入示例2&#xff1a;从远程URL导入注意事项 方式3docker build示例1&#xff1a;构建镜像并指定名称和标签示例2&#xff1a;使用自定义的 Dockerfile 路径构建镜像…

文献学习-22-Surgical-VQLA:具有门控视觉语言嵌入的转换器,用于机器人手术中的视觉问题本地化回答

Authors: Long Bai1† , Mobarakol Islam2† , Lalithkumar Seenivasan3 and Hongliang Ren1,3,4∗ , Senior Member, IEEE Source: 2023 IEEE International Conference on Robotics and Automation (ICRA 2023) May 29 - June 2, 2023. London, UK Abstract: 尽管有计算机辅…

【大模型】VS Code(Visual Studio Code)上安装的扩展插件用不了,设置VS Code工作区信任

文章目录 一、找到【管理工作区信任】二、页面显示处于限制模式&#xff0c;改为【信任】三、测试四、总结 【运行环境】win 11 相关文章&#xff1a; 【大模型】直接在VS Code(Visual Studio Code)上安装CodeGeeX插件的过程 【问题】之前在 VS Code上安装 CodeGeeX 插件后&…

52、Qt/窗口、常用类、ui相关学习20240321

一、使用Qt 自由发挥登录窗口的应用场景&#xff0c;实现一个登录窗口界面。 要求&#xff1a; 1. 需要使用Ui界面文件进行界面设计 2. ui界面上的组件相关设置&#xff0c;通过代码实现 3. 需要添加适当的动图。 代码&#xff1a; #include "widget.h" #incl…

quartz整合前端vue加后端springboot

因工作需求&#xff0c;需要能修改定时的任务&#xff0c;前端vue3&#xff0c;后端是springboot 看看页面效果&#xff1a; 首先maven加上引入 <dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><versi…

BufferedInputStream解读

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java之IO流啦&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好习惯&am…

hash冲突四种解决办法,hash冲突除了拉链法还有什么?

1. 看hashmap 源码&#xff0c;有个问题&#xff0c;key 存放是 先hash 再与hash值的高16位值 进行异或运算。再与槽位size() 求模取余。如果多个不同的key 得出de数组位置相同。则采用链表依次存储。 2. 那么除了拉链法还有什么其他解决hash冲突的方法呢&#xff1f; a. 建立…

python程序打包

目录 1. 命令2. 安装2.1 PyInstaller2.2 cx_Freeze(笔者未用过) 3. 打包示例3.1 在 pycharm 中执行3.2 若使用打包命令时报错3.3 路径问题 python打包成可执行文件&#xff0c;用于在没有Python环境的地方运行该程序&#xff0c;与qt打包类似。&#xff08;笔者写的qt打包地址&…

Beans模块之工厂模块BeanNameAware

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

无人驾驶中的坐标转换

无人驾驶中的坐标转换 无人车上拥有各种各样的传感器&#xff0c;每个传感器的安装位置和角度又不尽相同。对于传感器的提供商&#xff0c;开始并不知道传感器会以什么角度&#xff0c;安装在什么位置&#xff0c;因此只能根据传感器自身建立坐标系。无人驾驶系统是一个多传感器…

Jenkins的快速入门

文章目录 一、Jenkins是什么&#xff1f;二、Jenkins安装和持续集成环境配置1.持续集成流程说明2.Gitlab代码托管服务器安装Gitlab简介&#xff1a;Gitlab安装Gitlab的使用切换中文添加组创建用户将用户添加到组创建项目idea中代码上传Gitlab 3.Jenkins持续集成环境服务器安装J…

牛客网python练习题库记录

python格式化输出 python 读入整数数字并且换行输出 python规范输出小数点后几位 afloat(input()) format_a{.2f}.format(a) print(format_a) 小数化整数 afloat(input()) bint(a) print(b) 为整数增加小数点 input_integer int(input()) float_number float(input…

快速上手 Elasticsearch:Docker Compose 部署详解

最近面试竞争日益激烈&#xff0c;Elasticsearch作为一款广泛应用的中间件&#xff0c;几乎成为面试中必考的知识点。最近&#xff0c;AIGC也备受关注&#xff0c;而好多的AI项目中也采用了Elasticsearch作为向量数据库&#xff0c;因此我们迫切希望学习Elasticsearch。对于学习…

【Linux】Centos7安装redis

目录 下载安装包安装1.解压2.环境安装3.查看redis的安装路径4.将之前redis的配置文件&#xff0c;复制到安装路径下&#xff08;新建一个文件夹并复制&#xff09;5.redis 设置默认后台启动&#xff0c;修改配置文件6.启动redis服务默认启动通过配置文件启动查看进程 7.开放637…

【Python小工具系列】使用 Python 循环批量打开网页链接

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…