0
장치의 호스트 기능을 어떻게 사용할 수 있습니까? 아래 기능의 예를 들어
, 나는 값장치의 호스트 기능 사용
__device__ float magnitude2(void) {
return r * r + i * i;
}
을 반환하려면하지만이 기능은 장치 기능이며,이 오류 접수 :
calling a host function from a __device__/__global__ function is not allowed
이 문제에 대한 가장 좋은 방법은 무엇입니까? 나는이 구조체 정의 할
: 코드에 추가 코멘트
이제 우리는 질문 C++ 구조를 포함 알고
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);
}
};
컴파일 오류를 생성하는보다 구체적인 코드 예제를 게시 할 수 있습니까? 당신이 게시하고 쓴 것은 특별히 동의하거나별로 의미가 없습니다. – talonmies
[code] __ host__ __device __ [/ code] 함수를 선언 할 수 있습니다. 즉, 컴파일러에서 호스트 코드와 장치 코드의 두 가지 버전을 생성합니다. – njuffa
동의 함, 해당 오류 메시지는 해당 장치 기능에 대한 호출에서 오는 것 같지 않습니다. – harrism