我可以在不更改代码的情况下使用c#中的GPU内核吗

本文关键字:中的 GPU 内核 情况下 代码 我可以 | 更新日期: 2023-09-27 18:21:13

我意识到这个主题有几个问题,但我相信我的角度是独一无二的。

我有一个成熟的C#应用程序,用于科学的数字运算。在代码中,我在我的24个HyperThread(即,我有两个CPU,每个CPU有6个核/12个线程)工作站上启动了24个C#线程。我运行Windows7,它处理得很好——我能够充分利用我的处理能力来完成我的工作。

我看到一些GPU宣传"448核心"。如果我买了其中一个,我的c#应用程序能使用它们吗?我的意思是不以任何主要方式重写我的代码。我启动的线程会被GPU内核占用,而不是像现在这样被CPU超线程占用吗?

后续问题

嗨,我很感激我得到的答案——即使是否定的。

我是否应该考虑其他硬件(不太贵),这些硬件可以为我提供大量核心,但可以在不重写的情况下运行我的c#代码?

我可以在不更改代码的情况下使用c#中的GPU内核吗

您需要重写代码才能真正使用gpu。这些链接可能很有用:-

CUDA.NET-通过.NET应用程序实现CUDA功能。

CUDA Sharp-nVidia Toolkit 的C#包装器

这些是基于英伟达CUDA系统,所以你当然需要一张nVidia卡。

嘿。。。不,不可能,不可能。那些"核心"并不相同。要利用任何GPU计算,您需要以非常特定的方式编写计算。也许可以试试OpenCL。但你的问题的答案是否定的。


至于你的编辑,唯一可能的改变很少的东西(取决于你目前的结构)是一个处理器。如果你不是在制作通用软件,你可能会运行48个非HT的单个内核。也许这不是瓶颈。你可以增加你的RAM,使一切都在一定程度上更快。

编号。网络线程不会自动利用GPU内核进行处理。它们与普通处理器内核非常不同。您需要更改程序以利用GPU处理。