1

我一直在尝试将 GPU 作为我项目的一部分。我研究过 CUDA 和 OpenCL,但缺乏向您展示如何将它们引入项目的信息令人震惊。甚至他们专门的论坛组也死了。所以现在,我正在研究 DirectCompute。

据我所知,它只是一种使用 HLSL 的新型着色器文件。我的问题是,我的程序(除了 DirectX 10 / 11 之外)是否需要更改其结构?

我的意思是,这仅仅是创建 CS 文件的情况,像我对任何其他着色器一样在项目中进行设置,然后观看魔术发生吗?

任何有关这方面的信息将不胜感激。

4

3 回答 3

2

是的,CS 适合通常的 DirectX 编程结构。它的工作方式与 CUDA/OpenCL 类似。这是一个很好的简单示例:

http://openvidia.sourceforge.net/index.php/DirectCompute

如果您的项目不涉及图形,我个人建议使用 CUDA/OpenCL 而不是使用 DirectCompute 路线。我认为 CUDA/OpenCL 更适合通用计算。查找文档可能有点困难,但这些是 GPU 编程的主要方面:

  • 在 CPU 上设置数据以传递给 GPU。

  • 了解需要在 GPU 上启动多少扭曲/线程,线程可能需要如何通信等。

  • 在 GPU 上计算,在 CPU 上读回数据

于 2012-03-06T09:27:52.807 回答
1

最简单的方法 - 是制作使用 CSC#SlimDX.

是一个很好的网站,其中包含如何在 C# 代码中使用 CS 的基础知识。

C++稍后您可以使用和进行全面的 CS 探索DirectX 11

于 2012-05-22T14:30:35.237 回答
1

另一种选择是 C++ AMP - 请点击此处的链接以获取更多信息,并随时发布问题:http: //blogs.msdn.com/b/nativeconcurrency/archive/2011/09/13/c-amp -in-a-nutshell.aspx

于 2012-03-16T22:18:01.987 回答