如何在 windows 上的 Nvidia GPU 上将 exe 文件强制为 运行

How to force exe file to run on Nvidia GPU on windows

我有一个用 C++ 语言编写的程序。我的整个代码只包含 3 个文件:一个我自己 class 的头文件,一个带有 class 代码实现的 cpp 文件和一个我有 main() 方法的第三个 cpp 文件。

我需要进行非常复杂的计算,正常情况下 CPU 我的代码需要大约 3 个月才能完成执行。这就是为什么我尝试 运行 我的 Nvidia GPU 上的程序。代码是在Visual Studio IDE上开发的,我制作了一个EXE文件。

这是我尝试做的:

  1. 进入图形设置 -> 选择相关的 Exe 文件 -> 将文件设置为 Nvidia 卡的高性能。这没有用。
  2. 我再次打开 Nvidia 控制面板 -> 应用程序设置 -> 选择相关的 Exe 文件 -> select Nvidia GPU 以获得高性能。另外,这里没有运气。

两种方式都失败了,我的代码 运行ning 在我的 Intel GPU 上而不是在我的 Nvidia 卡上。

如何在 Nvidia 卡上强制执行 Exe 文件到 运行?

是否有三种方法可以通过命令行(或任何其他方式)编译我的 C++ 代码并在我的 Nvidia GPU 上运行?

NVIDIA 提供了一个高性能的 C++ 编译器,它可以生成代码,将您的一些工作负载转移到 GPU 上。 这在使用 C++17 并行算法时效果最佳。

可能 - 您必须 re-write 一些现有的 C++ 代码,然后使用 NVIDIA 的 C++ 编译器对其进行编译。

您的 code/algorithm 必须支持某种形式的并行性。

这里有一些链接,其中包含有关 NVIDIA 的 HPC C++ 编译器的信息。

https://developer.nvidia.com/hpc-compilers

https://developer.nvidia.com/hpc-sdk

https://developer.nvidia.com/nvidia-hpc-sdk-downloads

据我所知,没有简单的 and/or 自动编译要在 GPU 中执行的通用 C++ 代码的方法。您必须使用某些特定的 API 进行 GPU 计算,或者以某种工具能够自动为 GPU 生成代码的方式实现代码。

我所知道的用于 GPU 编程的 C++ API是:

不幸的是,如果您想使用这些选项之一,您将需要重写部分代码。我相信 SYCL 将是更容易的选择,并且需要对 C++ 代码进行更少的修改(我真的鼓励你看一下教程,SYCL 非常容易使用)。另外,似乎 Visual Studio 已经支持 SYCL: https://developer.codeplay.com/products/computecpp/ce/guides/platform-support/targeting-windows