相关疑难解决方法(0)

在 CUDA 中使用 sincos() 的最佳方法

我不清楚实现 sincos() 的最佳方法是什么。我到处都查过,但似乎一致认为它比单独计算 sin 和 cos 更好。下面基本上是我在内核中使用 sincos 的内容。然而,当我分别对 sin 和 cos 进行计时时,它的速度会变慢。我认为这与我如何使用 cPtr 和 sPtr 有关。有没有更好的办法?

int idx = blockIdx.x * blockDim.x + threadIdx.x;

if (idx < dataSize)
{
    idx += lower;
    double f = ((double) idx) * deltaF;
    double cosValue;
    double sinValue;
    double *sPtr = &sinValue;
    double *cPtr = &cosValue;
    sincos(twopit * f, sPtr, cPtr);

    d_re[idx - lower] = cosValue;
    d_im[idx - lower] = - sinValue;

    //d_re[idx - lower] = cos(twopit * f);
    //d_im[idx - lower] = - …
Run Code Online (Sandbox Code Playgroud)

cuda trigonometry

1
推荐指数
1
解决办法
3936
查看次数

标签 统计

cuda ×1

trigonometry ×1