【问题标题】:Is it possible to use SAL(Scientific Algorithm Library) in CUDA device?是否可以在 CUDA 设备中使用 SAL(科学算法库)?
【发布时间】:2015-05-20 20:15:48
【问题描述】:

我有一些包含 SAL 功能的主机代码。 SAL 函数用于处理大数据。我想在 CUDA 设备中调整相同的功能并分析主机和设备的执行时间。但是由于 SAL 函数是用于主机/CPU 的,GPU 上如何允许这些函数,或者是否可以从 GPU 端调用 SAL 函数?

例如,

cvabsx((COMPLEX *)in, 2, out, 1, size, 0);

上述 SAL 函数计算复数的大小。现在我想在 GPU 端进行调整。这个怎么做?或者还有其他比 SAL 执行得更快的库吗?

【问题讨论】:

  • 我从未听说过 SAL。你指的是this open source project吗?根据您使用的库中的哪些函数,CUBLAS、Thrust 或 NPP 可能适合将代码移植到 GPU,以及一些自定义内核。当您对您的代码几乎一无所知时,很难提出具体的建议。
  • @njuffa 是的,openSAL 仅用于台式机,但 SAL 用于将其移植到实际的 PowerPC 目标板,主要用于雷达应用。所以我用 GPU 板试了一下,不管它是不是便携的..

标签: c cuda gpu


【解决方案1】:

您不能在设备上使用已为 x86 用途(即纯粹用于主机代码,仅使用主机代码编译器)编译的库。

显然,CUBLAS 等 GPU 兼容库和许多其他库都可以与 GPU 一起使用。但是对于大多数普通的编译库,它们不能直接在设备代码中与 GPU 一起使用。

如果你可以访问库的源代码,那么(理论上)应该可以通过库源代码,并根据需要用__host____device__装饰函数,然后重新编译带有nvcc 编译器的库源,以生成具有可在设备代码中使用的功能的版本。 (如果是模板/头库,可能只是修饰库代码,然后重新编译您的应用程序。)

根据库的实现,这可能是一项非常复杂的任务。

【讨论】:

  • 你建议我在哪个库中找到大部分数学和信号处理函数?是否可以同时使用不同的库?
猜你喜欢
  • 2013-08-24
  • 2020-12-29
  • 2017-03-27
  • 1970-01-01
  • 2013-06-20
  • 1970-01-01
  • 1970-01-01
  • 2022-07-26
  • 1970-01-01
相关资源
最近更新 更多