如何使用 CUDA 在 GPU 上并行化 Python 模拟脚本?

如何使用 CUDA 在 GPU 上并行化 Python 模拟脚本?

我想在 GPU 上使用并行化测试运行一些有限差分时域 (FDTD) 模拟,并将其速度与基于 CPU 的模拟运行进行比较。这基本上是我第一次尝试使用 GPU 加速进行科学计算。

我的系统配置:

CPU: Intel Core i7-4930K @ 3.40 GHz
GPU: Gigabte GeForce GTX 1650 OC LP 4.0 GB
RAM: 32.0 GB (16.0 GB usable)
OS: Windows 7 Home Premium 64-bit

该 GPU 具有896 个 CUDA 核心计算能力 7.5,因此与在“仅” 12 个 CPU 核心上运行模拟相比,我预计速度会显著加快。

模拟脚本使用fdtd模拟包,为了方便起见,我使用了 Jupyter 笔记本。如果您对一些实际的代码参考感兴趣,我建议您查看fdtdGitHub 页面上的简短示例脚本。

我安装了 CUDA ToolKit 10.2 版,因为这似乎是最后一个支持 Windows 7 的版本。至少根据下载页面(有人能证实这一点吗?)。

我还安装了++ torch,只是因为torchvisiontorchaudioPyTorch 包含这些包在安装过程中。然而,我在尝试安装时卡住了PythonCUDA ToolKit似乎需要另一个包nvidia-pyindex名为不适用于 Windows。此外,我对 CUDA 10.2 的 PyTorch 安装命令感到困惑,它说"CUDA-10.2 PyTorch builds are no longer available for Windows, please use CUDA-11.6",尤其是因为他们明确说明

支持的 Windows 发行版

以下 Windows 发行版支持 PyTorch:

Windows 7的及更高版本;建议使用 Windows 10 或更高版本。Windows Server 2008 r2 及更高版本

在 Python 解释器中,我得到了

Python 3.8.10 (tags/v3.8.10:3d8993a, May  3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
False

并尝试在模拟包中设置 CUDA 后端并返回

import fdtd

fdtd.set_backend("torch.cuda.float64")

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Input In [3], in <cell line: 35>()
     31 display(HTML("<style>.container {width:100% !important;}</style>"))
     33 #fdtd.set_backend("numpy")
     34 #fdtd.set_backend("torch.float64")
---> 35 fdtd.set_backend("torch.cuda.float64")

File C:\Program Files\Python38\lib\site-packages\fdtd\backend.py:376, in set_backend(name)
    374     raise RuntimeError("Torch backend is not available. Is PyTorch installed?")
    375 if name.startswith("torch.cuda") and not TORCH_CUDA_AVAILABLE:
--> 376     raise RuntimeError(
    377         "Torch cuda backend is not available.\n"
    378         "Do you have a GPU on your computer?\n"
    379         "Is PyTorch with cuda support installed?"
    380     )
    382 if name.count(".") == 0:
    383     dtype, device = "float64", "cpu"

RuntimeError: Torch cuda backend is not available.
Do you have a GPU on your computer?
Is PyTorch with cuda support installed?

我该如何继续前进?

答案1

看来你陷入了僵局。

您的工具显然具有一系列依赖关系,需要较新版本的 Windows。

Python CUDA 工具包需要 CUDA >= 11.6
您已经安装了先前版本的 CUDA(10.2)

您应该安装 CUDA 11.6。如果 Windows 7 不支持它(这就是您尝试使用 10.2 的原因),那么您需要升级到较新版本的 Windows,然后升级到更新版本的 CUDA。

Windows 7 自 2020 年 1 月 14 日起不再受支持。对于尚未更新的旧工具来说,它可能是一个很好的主力,但当周围的世界继续变化时坚持使用它是不值得的。

相关内容