1

cuda カーネルの実装について質問があります。

cuDoubleComplex 変数の要素を追加したい cude カーネルを生成しました。後で、要素に対していくつかの乗算も実行したいと考えています。

いくつかの方法を試しましたが、解決策が見つかりませんでした。

私の機能は次のとおりです。

 __global__ void process(double *fieldRange, double *fieldAzimut, double **recPosition, double **transPosition, double *TimeAxisPulse, double timeStep, cuDoubleComplex *rawData, int nmbrPulses, int nmbrSamples, double carrierFrequency, cuDoubleComplex *result)

私が何かをしようとするところ

result[tid]=result[tid]+newValue

ここで、newValue も cuDoubleComplex です。cublasZaxpy 関数を使用しようとしましたが、グローバル関数からホスト関数を呼び出すことは許可されていないと言われました

cuDoubleComplex 変数を使用してカーネル内で単純な追加を行うにはどうすればよいですか?

4

1 に答える 1

3

cuCaddたとえば、次のように関数を呼び出すことができます。

result[tid]=cuCadd(result[tid],newValue);

また、パスの設定に従って、#include "cuComplex.h"またはどちらかが機能することを確認してください。#include <cuComplex.h>

于 2013-03-07T12:07:29.080 に答える