全中文网首发,可以收藏本教程纪念一下
这篇是之前Tensorflow-DirectML的姊妹篇,如果对TF感兴趣的可以搜索我的博文。
首先我们丢一个官网地址,但是官网那个会误导新人如果你按那个操作的话。
https://docs.microsoft.com/en-us/windows/ai/directml/gpu-pytorch-windows
本篇博文,我们将安装PyTorch 1.8.0
PS:MS对FB还是蛮厚道的,编译了比较新的版本,不像TF,给了个1.X,太坏了,至少给个2.X吧
这里用我的方法操作:
首先声明一下,因为我的显卡是AMD RX6600,不带XT(性能和RTX3060 12G版本半斤八两),所以目前没有最新的WSL2驱动,如果有了的话欢迎告知我,所以我这里就用Windows本地演示。
第一步:安装AMD DirectML支持的SDK,相当于A卡的Cuda
可以参考:
https://blog.csdn.net/weixin_44029053/article/details/121581870
这篇博文Flag部分安装驱动的描述。
第二步:安装Pytorch-DirectML
1:下载安装Conda完整版或MiniConda,这边如果硬盘够大我推荐Conda完整版,地址:
https://www.anaconda.com/products/individual
下载Anaconda Individual Edition版,这个是个人免费版
Python版本随意,反正我们后面单独创建Python环境
2:在Conda下创建Python虚拟环境:
我这创建了两个,一个给Pytorch用,一个给Tensoflow用,因为我本来用Miniconda的,官方的
Pytorch-DirectML教程把我之前的Tensoflow-DirectML环境整没了,很难还原回去,所以。。
废话不多说,我们管理员权限打开PowerShell,输入
conda create -n your_env_name python=x.x
创建Python虚拟环境,your_env_name 是环境名字,x.x是python版本,这里我的是
conda create -n torch_dml python=3.8
必须用python38.
以下都用我的名字torch_dml 演示
然后激活torch_dml :
conda activate torch_dml
3:在激活的条件下,安装我们的Pytorch依赖库:
conda install pandas
conda install tensorboard
conda install matplotlib
conda install tqdm
conda install pyyaml
pip install opencv-python
pip install wget
pip install torchvision==0.9.0
PS:上面代码在安装torchvision的时候,会自动下载一个Pytorch CPU版本,这个没关系,他只是一个上层,我们在后面底层Tensor变量可以转化为GPU版本
上面说的“安装torchvision的时候,会自动下载一个Pytorch CPU版本”,并且后面要安装的Pytorch-DirectML也会覆盖CPU版本的代码,这样的确代码是可以运行的,但是这样其实并不严谨,实际上我看了官方那个,CPU版本其实并不需要,强迫症的可以执行:
pip uninstall torch
上面安装代码你可以一行一行复制到PowerShell安装,防止某个安装失败
PS:博主是在开飞机的条件下安装的,如果没有飞机,那么你可以切换国内源
参考:
https://www.cnblogs.com/weiyunpeng/p/11893222.html
4:安装Pytorch-DirectML
依然在我们的Conda虚拟环境torch_dml下安装:
pip install pytorch-directml
5:安装VSCODE设置环境运行代码

输入代码运行:
import torch
tensor1 = torch.tensor([1]).to("dml")
tensor2 = torch.tensor([2]).to("dml")
dml_algebra = tensor1 + tensor2
print("result:",dml_algebra.item())

如果你出现我上面的“result: 3”这个结果,那么恭喜你,大获成功!
更多demo可以访问官方GitHub:
https://github.com/microsoft/DirectML/tree/master/PyTorch
还有没有好玩的?有哦,下一步,我们将用Pytorch-DirectML或Tensorflow-DirectML导出onnx,用我们的ONNX-DirectML版或者Vulkan在AMD GPU(Windows本地平台)进行GPU加速推理,敬请期待!

这篇是之前Tensorflow-DirectML的姊妹篇,如果对TF感兴趣的可以搜索我的博文。首先我们丢一个官网地址,但是官网那个会误导新人如果你按那个操作的话。https://docs.microsoft.com/en-us/windows/ai/directml/gpu-pytorch-windows这里用我的方法操作:首先声明一下,因为我的显卡是AMD RX6600,不带XT(性能和RTX3060 12G版本半斤八两),所以目前没有最新的WSL2驱动,如果有了的话欢迎告知我,所以我这里就.
DirectML
DirectML是用于机器学习的高性能,硬件加速的DirectX 12库。 DirectML通过广泛支持的硬件和驱动程序为常见的机器学习任务提供GPU加速,包括来自AMD,Intel,NVIDIA和Qualcomm等供应商的所有支持DirectX 12的GPU。
当独立使用时,DirectML API是低级DirectX 12库,适用于高性能,低延迟的应用程序,例如框架,游戏和其他实时应用程序。 DirectML与Direct3D 12的无缝互操作性,以及其较低的开销和跨硬件的一致性,使得DirectML非常适合在既需要高性能又需要跨硬件的结果的可靠性和可预测性的情况下加速机器学习。
有关DirectML的更多信息,请参见DirectML。
DirectML入门
DirectML作为Windows 10的系统组件分发,并且在Windows 10版本1903(10.0
三、实验内容
1、实验方法及步骤:
方法:由于电脑是AMD显卡故下载tensorflow-cpu版本,python,Anaconda,pycharm,顺便搭建了pytorch环境和图像识别的opencv-python的运行环境。
步骤:先下载Anaconda,anaconda中自带python3.6.5,我自己创建了2个环境,分别为python3.6.2+tensorflow;以及python3.6.2+pyto
import torch.nn.functional as F
from torch.autograd import Variable
import matplotlib.pyplot as plt
# 构造数据
n_data = torch.ones(100, 2)
x0 = torch.normal(3*n_data, 1)
x1 = torch.normal(-3*n_data, 1)
# 标记为y0=0,y1=1两类标签
y0 = torch.zeros(100)
y1 = torch.ones(100)
# 通过.cat连接数据
x = torc
PyTorch直接
PyTorch-Direct在现有PyTorch DNN框架的基础上为GPU添加了零拷贝访问功能。 当目标数据分散在主机内存中时,为GPU允许零复制访问大大提高了PCIe上的数据传输效率。 当输入数据在训练时间之前无法装入GPU内存,并且在训练时间期间需要传输数据时,此功能特别有用。 使用PyTorch-Direct,可以通过在现有CPU张量之上声明“统一张量”来使用零拷贝访问功能。 PyTorch-Direct的当前实现基于PyTorch-1.8.0的夜间版本。
由于我们修改了PyTorch的源代码,因此无法通过诸如pip类的众所周知的工具来安装我们的实现。 要编译并安装我们代码的修改后的版本,请按照。
在原始的PyTorch中,GPU可以访问主机中的分散数据,如以下示例所示:
# input_tensor: A given input 2D te
首先这里推荐的系统比如Win10不要太老,尽量新一点,特别是针对WSL2
本人用的显卡是AMD Radeon RX6600(后面不带XT,很重要!因为还有XT版嘛,性能差20%左右)
CPU:i5 12600KF(目前的神卡,干翻上一代i9 K)
系统WIn10专业版,内部版本号:19042,版本不要太老,太老自己Windows更新那边升级一下到最新。
这里出现了两个分叉,一个是用我们本地Window环境,一个是用WSL2,如果你是准备用WSL2那么你最好是安装Window10/11.
PyTorch-DirectML是一个用于深度学习的深度神经网络库,它基于PyTorch框架,并且使用DirectML作为后端加速器。DirectML是微软的机器学习加速器,它提供了对DirectX 12的访问,可以在Windows 10设备上实现高性能的深度学习推理。
PyTorch-DirectML可以利用DirectML的强大功能来加速深度神经网络的推理过程,从而提高性能并降低延迟。它还提供了一系列的工具和函数,可以帮助用户轻松地在PyTorch中使用DirectML加速器。
使用PyTorch-DirectML,您可以将现有的PyTorch模型转换为DirectML模型,并通过DirectML加速器进行推理。这样可以充分利用DirectML的硬件加速特性,提高深度学习模型的性能和效率。
总而言之,PyTorch-DirectML是一个用于深度学习推理加速的库,它结合了PyTorch框架和DirectML加速器,为用户提供了高性能和低延迟的深度学习推理解决方案。
qiwen1530:
【AMD显卡在WIndow10/11部署带GPU支持的深度学习环境(Tensorflow-DirectML篇)】
zhhxcsdn:
【AMD显卡在WIndow10/11部署带GPU支持的深度学习环境(Pytorch-DirectML篇)】
应惜艳阳年: