我正在考虑利用GPU来处理一些方程式,但无法弄清楚我如何从C#中访问它.我知道XNA和DirectX框架允许您使用着色器来访问GPU,但是如果没有这些框架,我将如何访问它?
我没有用C#做过,但基本上你使用的是CUDA(假设你当时正在使用nVidia卡)SDK和CUDA工具包将它拉下来.
nVidia已经移植(或编写?)BLAS实现,以便在支持CUDA的设备上使用.他们提供了很多关于如何进行数字运算的例子,尽管你必须弄清楚如何从C#中取出它.我敢打赌,你将不得不在非托管C或C++中编写一些内容并与之链接.
如果你没有使用C#,请看看Theano.这可能对你的需求有点过分,因为他们正在构建一个框架,用于从Python上对GPU进行机器学习,但是......它的工作原理非常好.
如何梵天(LINQ到GPU)?
一定要爱LINQ!
如果你的GPU是NVidia,你可以使用CUDA.
这里有一个例子,它解释了所有的链,包括一些C/C++代码:CUDA与C#的集成
这里有一个名为CUDA.NET的库:CUDA.NET
如果您的GPU是ATI,则有ATI Stream..NET支持对我来说不太清楚.也许Open Toolkit Library有OpenCL支持.
最后,有一个名为" Accelerator " 的Microsoft Research项目,它有一个托管包装器,可以在任何硬件上运行(前提是它支持DirectX 9).