【问题标题】:Complex arithmetics in CUDACUDA 中的复杂算术
【发布时间】:2013-07-08 20:50:39
【问题描述】:

我经常在 CUDA 中使用复数算术,并且需要定义我自己的实现,例如复数的超越函数(sincosexp、...)。我现在想通过编写此类函数的库来明确解决问题,以便考虑“大量”案例并避免在任何时候因新实现而陷入困境。

我知道,对于其中一些人来说,从准确性和计算复杂性之间的权衡角度来看,编写代码可能并非易事。尽管如此,我也知道 C++ 有自己的complex math library

是否有可能为 CUDA 目的“回收”现有的 C++ 解决方案?

【问题讨论】:

  • 我们在CUDA Complex Library Download Page共享了一个__device__函数和复数运算符库,包括以下函数:realimagabsangle、@987654331 @,log,log10,polar,sqrt,sin,cos,tan,exp,pow,acosh,acosh,acosh,@987654342 sinhcoshtanhasinatanacos。在可下载的压缩文件中,有一个 Stand-Along Complex 目录以及一个 Visual Studio 使用示例。我们希望它对社区有用。当然,欢迎任何批评:-)

标签: c++ cuda


【解决方案1】:

可能你已经找到了答案,但这是我的:

有可能“回收”sources for complex C++ ISO library

更新:

CUDA 相关:cusp::complex< float > Struct Template Reference

我认为你可以尝试与以下作者合作:

an implementation of C++ std::complex for CUDA devices (i.e. compiles with nvcc)

【讨论】:

  • 感谢您的回答。从 fast 查看您指定的库,我不确定implementation 似乎依赖于内置函数...
  • 内置在哪里?在 CPU/GPU 中?你能举个例子说明你想依赖哪些内置函数吗?
  • 看看这个source fileasin 的定义依赖于 __builtin_casinf 函数。与此相反,我想在实参上依赖 CUDA 内置函数并将它们扩展到复杂情况。
  • 同时,我已经向 NVIDIA 提交了“增强请求”。我认为您的第二个链接非常有用,几乎正是我正在寻找的。非常感谢。 +1 并接受答案。
猜你喜欢
  • 2012-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
相关资源
最近更新 更多