デバイス1でホスト機能を使用するにはどうすればよいですか?
たとえば、以下の関数では、値を返したい
__device__ float magnitude2( void ) {
return r * r + i * i;
}
しかし、この関数はデバイス関数であり、このエラーを受け取りました:
calling a host function from a __device__/__global__ function is not allowed
この問題の最善のアプローチは何ですか?
コードに関する追加のコメント:
この構造体を定義したい:
struct cuComplex {
float r;
float i;
cuComplex( float a, float b ) : r(a), i(b) {}
__device__ float magnitude2( void ) {
return r * r + i * i;
}
__device__ cuComplex operator*(const cuComplex& a) {
return cuComplex(r*a.r - i*a.i, i*a.r + r*a.i);
}
__device__ cuComplex operator+(const cuComplex& a) {
return cuComplex(r+a.r, i+a.i);
}
};