问题标签 [directcompute]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3960 浏览

cuda - 用于 GPU 编程的 DirectCompute 与 OpenCL?

我有一些(财务)任务应该很好地映射到 GPU 计算,但我不确定我应该使用 OpenCL 还是 DirectCompute。我做了一些 GPU 计算,但那是很久以前(3 年)。我是通过 OpenGL 完成的,因为当时没有任何替代方案。

我看过一些 OpenCL 演示,它看起来非常好。我还没有看到有关 DirectCompute 的任何信息,但我希望它也很好。

目前我对跨平台兼容性不感兴趣,此外,我希望这两个模型足够相似,不会在尝试从一个模型转换到另一个模型时引起大麻烦。

那么,你用过这两个中的任何一个吗?特别是 DirectCompute?它与 OpenCL(和 CUDA)相比如何?

0 投票
5 回答
21607 浏览

c++ - 在哪里可以找到一些深入的 DirectX 11 教程?

到目前为止,我能找到的唯一教程是在directx11tutorials.com上,它们基本上是从现有示例中推断出来的。有谁知道在哪里可以找到其他教程或使用 DirectX 11 的更好的开源项目?(使用 DirectX 11 的项目代码加分 :))

0 投票
5 回答
21012 浏览

opencl - OpenCL 与 DirectCompute?

我正在寻找OpenCLDirectCompute之间的比较,但我没有找到任何东西。OpenCL 的跨平台优势和支持范围更广的 GPU 对我来说并不重要。我可以在 Windows 上仅针对 DX11 GPU 进行编码。假设,每个 API 的优缺点是什么?

我知道之前有人提出过这个问题,但我正在寻找更多细节。

我对 CUDA 不感兴趣,因为我不想仅限于 Nvidia 硬件。

0 投票
2 回答
949 浏览

directx - DirectCompute真的可以用在DX10.1 GPU上吗?

在 DX10.1 GPU 上使用 DirectCompute 是否有任何限制?我将在 DX11 台式机上进行大部分开发,但我想在 DX10.1 笔记本电脑上演示代码。它将是在 Bootcamp 中运行 Win7 的 Macbook Pro。GPU是Nvidia 330M。我可以期待什么限制?

编辑:我找到了一个关于在 DX10 上使用计算着色器的页面,但我并不完全清楚这些是否是严重的限制。

编辑 2:我的目标是学习一些关于量化金融和解决 PDE 的知识。

0 投票
1 回答
469 浏览

parallel-processing - 调度超过 65535 个线程

我正在尝试使用 DirectCompute 对顶点进行蒙皮。所采用的蒙皮方法是,您可以拥有影响每个顶点的可变权重(例如,Md5 网格以这种方式定义)。

基本上计算着色器的输入是。

输出是

现在计算着色器应该在顶点缓冲区中的每个元素运行一次,并使用 SV_DispatchThreadID 着色器尝试为 VerticesBuffer 中的每个顶点填充 SkinnedVerticesBuffer 中的相应 SkinnedVertex(1:1 对应)。

所以问题是许多网格有超过 65535 个顶点,而 DispatchThreadID 命令只允许在每个维度上调度那么多线程。现在我理论上可以写一些东西,将很多数字分成小于 65535 的三个因子的组合,但我不可能对素数这样做。

因此,例如,当一些具有 71993 (质数)顶点的网格出现时,我想不出一种方法来处理它。

我不能用 context->Dispatch( 36000, 2, 0 ) 过度调度说 72000 个线程,因为这样 DispatchThreadID 将用完我的缓冲区边界。

现在我倾向于一个保持顶点数量的恒定缓冲区,然后过度调度到最接近的 2 次方,然后简单地做

这是我唯一的选择吗?其他任何人都会遇到这个障碍。

0 投票
1 回答
1532 浏览

c++ - C++ AMP 会在没有兼容 GPU 的机器上运行吗?

我知道 C++ AMP 由支持 DirectX 11 的 GPU 加速。
但是,我的问题是,如果编译后的 C++ AMP 程序在没有 DirectX 11 兼容 GPU 的机器上运行,会发生什么?

它是否被 DirectCompute 的某些软件实现模拟?
它是否在 CPU 上执行(可能使用 SSE 样式指令)?
或者,它只是无法执行?

0 投票
1 回答
687 浏览

encryption - 使用 DirectCompute 进行 AES 加密/解密的示例代码

有人会碰巧知道使用 DirectCompute(包括 HLSL 源代码)的 AES 加密/解密(任何类型)的实现吗?

我已经阅读了一些在 GPU 上讨论 AES 的论文,它们倾向于参考 CUDA 或 OpenCL。我想学习将它们移植到 DirectCompute 可能是一个很好的练习,但由于它不是微不足道的,我不介意从一开始就看到 HLSL 是如何正确完成的。

谢谢!

0 投票
3 回答
1558 浏览

directx - 直接计算信息

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

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

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

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

0 投票
1 回答
1630 浏览

format - 从 R8G8B8A8_UNORM 资源创建 R32_UINT 视图

我需要使用 DirectCompute 进行图像编辑 - ala:http: //msdn.microsoft.com/en-us/library/ff728749%28v=vs.85%29.aspx

我的后备缓冲区是 R8G8B8A8_UNORM,我需要创建一个格式为 R32_UINT 的 UAV,以便我在计算着色器中同时读取和写入。

当我这样做时,从我的调试输出中引用:

“CreateUnorderedAccessView:创建视图时,格式(0x2a,R32_UINT)无效;资源已使用完全限定的格式创建,该格式不可转换(0x1c,R8G8B8A8_UNORM)”

引用上面链接中的文档:

“大多数每元素 32 位格式支持转换为 DXGI_FORMAT_R32_UINT”

我错过了什么吗?

0 投票
1 回答
845 浏览

loops - 如何将此递归函数展开为循环?

我正在 DirectCompute 中为教育编写一个简单的扩散路径跟踪器。DirectCompute不允许递归函数,所以我需要弄清楚如何将这个递归语句变成一个循环:

通用伪代码或 C 示例将不胜感激