2013-05-17 1 views
1

내가 VS2012와 CUDA 5 프로젝트를 컴파일 그리고 난이 오류가 발생하고있어 허용되지 않습니다 fmod는 math.h에 정의되어 있습니다.CUDA의 FMOD __global__ 기능에서 __host__ 함수를 호출은

어떻게 그들 사이를 명확하게 할 수 있습니까?

+0

math.h를 포함 시켰습니까? –

+0

아니요, 아마 다른 곳에 포함되었을 것입니다. 그것은 큰 프로젝트이고 나는 단지 그것의 일부일 뿐이다. –

+2

디바이스 측에서 지원되는 fmod (float, int) 변형이 없으므로 컴파일러는 디바이스에서 호출 할 수없는 호스트 측 버전 만 찾는다. . CUDA는 fmod (float, float), fmod (double, double)과 같은 오버로드 된 변형을 지원합니다. 케이스 중 하나에 사례를 매핑하는 것이 중요합니다. – njuffa

답변

5

템플릿 인수가 일치하지 않아 이러한 현상이 발생합니다. 부동 소수점 인수와 정수 인수가있는 fmod을 호출합니다. 단일 정밀도 또는 배정 밀도 부동 소수점 인수 쌍에 대한 장치 템플릿 인수 만 있습니다 (here 참조).

아마도 당신이 찾고있는 것은 fmod(float, (float)int) ....

+0

이것은 또한 바닥에 대한 문제를 해결했습니다. 감사! – ikku100

관련 문제