Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CUDA vs Direct X 10用于并行数学。你对此有什么想法吗?_Cuda - Fatal编程技术网

CUDA vs Direct X 10用于并行数学。你对此有什么想法吗?

CUDA vs Direct X 10用于并行数学。你对此有什么想法吗?,cuda,Cuda,CUDA vs Direct X 10用于并行数学。你有什么想法吗?嗯,CUDA是便携式的。。。如果你问我这是一个巨大的胜利…嗯,CUDA是便携式的。。。如果你问我这是一个很大的胜利…我觉得CUDA很尴尬。它不是C,而是它的一个子集。它本机不支持双精度浮点,并且是仿真的。但对于单精度,这是可以的。这取决于你的任务类型。为了使数据值得使用,并行计算所花费的时间比传递数据所花费的时间要多。但这并不是CUDA独有的问题 我会等待苹果的OpenCL,它似乎将成为并行计算的行业标准。我觉得CUDA很尴尬。

CUDA vs Direct X 10用于并行数学。你有什么想法吗?

嗯,CUDA是便携式的。。。如果你问我这是一个巨大的胜利…

嗯,CUDA是便携式的。。。如果你问我这是一个很大的胜利…

我觉得CUDA很尴尬。它不是C,而是它的一个子集。它本机不支持双精度浮点,并且是仿真的。但对于单精度,这是可以的。这取决于你的任务类型。为了使数据值得使用,并行计算所花费的时间比传递数据所花费的时间要多。但这并不是CUDA独有的问题


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

我觉得CUDA很尴尬。它不是C,而是它的一个子集。它本机不支持双精度浮点,并且是仿真的。但对于单精度,这是可以的。这取决于你的任务类型。为了使数据值得使用,并行计算所花费的时间比传递数据所花费的时间要多。但这并不是CUDA独有的问题


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

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

我认为,DirectX 10将更容易与之对抗,但如果你真的想推动速度优化,你必须绕过额外的层。DirectX 10也不知道何时使用纹理内存、常量内存和共享内存,这取决于您的特定算法


如果你可以使用特斯拉C1060或类似的产品,CUDA无疑是更好的选择。如果你知道你的GPGPU的具体情况,你真的可以加快速度。我在特斯拉和我的桌面上看到一个特定的算法有188x的加速。如果你知道你的目标架构使用的是nVidia芯片,CUDA可能是一个更好的选择。您可以完全控制数据传输、指令路径和操作顺序。当您在较低级别上工作时,还可以使用更少的同步线程调用

我认为,DirectX 10将更容易与之对抗,但如果你真的想推动速度优化,你必须绕过额外的层。DirectX 10也不知道何时使用纹理内存、常量内存和共享内存,这取决于您的特定算法


如果你可以使用特斯拉C1060或类似的产品,CUDA无疑是更好的选择。如果你知道你的GPGPU的细节,你真的可以加快速度。我在特斯拉和我的桌面上看到过一个特定算法的188x加速。CUDA与支持双精度浮点运算无关。
这取决于可用的硬件。91000、200和特斯拉系列支持双精度浮点运算。

CUDA与支持双精度浮点运算无关。
这取决于可用的硬件。91000、200和特斯拉系列支持双精度浮点运算。

在它们之间做出选择应该很容易

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

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

如果您的应用程序正在做DirectX互操作,请考虑CUDA/OpenCL将在图形API交互中引发上下文切换开销,DirectX计算将不会。


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

在它们之间做出选择应该很容易

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

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

如果您的应用程序正在做DirectX互操作,请考虑CUDA/OpenCL将在图形API交互中引发上下文切换开销,DirectX计算将不会。


除非其中一个或多个条件影响您的申请,使用大规模并行工具链的老祖宗:CUDA。

CUDA可以从Windows移植到Linux——或者我理解——但不能从NVidia GPU移植到ATI。CUDA可以从Windows移植到Linux——或者我理解——但不能从NVidia GPU移植到ATI。你确定双精度吗?你确定双精度吗?你确定吗还应该研究OpenCL,它应该是跨平台的(windows/linux/etc)和跨供应商的(nvidia/ati)。您还应该研究OpenCL,它应该是跨平台的(windows/linux/etc)和跨供应商的(nvidia/ati)