CUDA 与 Direct X 10 的并行数学比较。 你对此有什么想法吗?

发布于 2024-07-14 21:51:17 字数 46 浏览 5 评论 0原文

CUDA 与 Direct X 10 的并行数学比较。 你对此有什么想法吗?

CUDA vs Direct X 10 for parallel mathematics. any thoughs you have about it ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

别靠近我心 2024-07-21 21:51:17

如果您知道您的目标架构正在使用 nVidia 芯片,那么 CUDA 可能是更好的选择。 您可以完全控制数据传输、指令路径和操作顺序。 当您在较低级别工作时,您还可以减少 __syncthreads 调用。

我认为 DirectX 10 会更容易交互,但如果你真的想推动速度优化,你必须绕过额外的层。 DirectX 10 也不知道何时使用纹理内存、恒定内存和共享内存,具体取决于您的特定算法。

如果您可以使用 Tesla C1060 或类似设备,那么 CUDA 无疑是更好的选择。 如果您了解 GPGPU 的具体情况,您确实可以加快速度 - 我已经看到 Tesla 上的一种特定算法与我的台式机上的速度提高了 188 倍。

CUDA is probably a better option, if you know your target architecture is using nVidia chips. You have complete control over your data transfers, instruction paths and order of operations. You can also get by with a lot less __syncthreads calls when you're working on the lower level.

DirectX 10 will be easier to interface against, I should think, but if you really want to push your speed optimization, you have to bypass the extra layer. DirectX 10 will also not know when to use texture memory versus constant memory versus shared memory as well as you will depending on your particular algorithm.

If you have access to a Tesla C1060 or something like that, CUDA is by far the better choice hands down. You can really speed things up if you know the specifics of your GPGPU - I've seen 188x speedups in one particular algorithm on a Tesla versus my desktop.

终弃我 2024-07-21 21:51:17

我觉得CUDA很尴尬。 它不是 C,而是它的一个子集。 它本身不支持双精度浮点并且是模拟的。 对于单精度来说还是可以的。 这取决于您投入的任务类型。 您必须花费更多的时间进行并行计算,而不是传递数据,这样数据才值得使用。 但这个问题并不是 CUDA 所独有的。

我会等待 Apple 的 OpenCL,它似乎将成为并行计算的行业标准。

I find CUDA awkward. It's not C, but a subset of it. It doesn't support double precision floating point natively and is emulated. For single precision it's okay though. It depends on the type of task you throw at it. You have to spend more time computing in parallel than you spend passing the data around for it to be worth using. But that issue is not unique to CUDA.

I'd wait for Apple's OpenCL which seems like it will be the industry standard for parallel computing.

你好,陌生人 2024-07-21 21:51:17

嗯,CUDA 是可移植的...如果你问我的话,这是一个巨大的胜利...

Well, CUDA is portable... That's a big win if you ask me...

晨曦慕雪 2024-07-21 21:51:17

CUDA 与支持双精度浮点运算无关。
这取决于可用的硬件。 9、100、200和Tesla系列支持双精度浮点运算tesla

CUDA has nothing to do about supporting double precision floating point operations.
This is dependent on the hardware available. The 9, 100, 200 and Tesla series support double precision floating point operations tesla.

天气好吗我好吗 2024-07-21 21:51:17

在它们之间做出决定应该很容易。

如果您的应用程序可以容忍特定于 Windows,您仍然可以考虑 DirectX Compute。 否则,请使用 CUDA 或 OpenCL。

如果您的应用程序无法容忍 NVIDIA 上的供应商锁定,则您无法使用 CUDA,而必须使用 OpenCL 或 DirectX Compute。

如果您的应用程序正在进行 DirectX 互操作,请考虑 CUDA/OpenCL 将在执行图形 API 互操作时产生上下文切换开销,而 DirectX 计算不会。

除非这些标准中的一个或多个影响您的应用程序,否则请使用大规模并行工具链的鼻祖:CUDA。

It should be easy to decide between them.

If your app can tolerate being Windows specific, you can still consider DirectX Compute. Otherwise, use CUDA or OpenCL.

If your app cannot tolerate a vendor lock on NVIDIA, you cannot use CUDA, you must use OpenCL or DirectX Compute.

If your app is doing DirectX interop, consider that CUDA/OpenCL will incur context switch overhead doing graphics API interop, and DirectX Compute will not.

Unless one or more of those criteria affect your application, use the great granddaddy of massively parallel toolchains: CUDA.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文