내 문제는 다음과 같습니다. Mac OS X에서 Mountain Lion에서 Nvidia의 nsight 응용 프로그램을 사용하여 CUDA 응용 프로그램을 작성하고 있습니다. :. 소스 코드는 내가 다음과 같은 선언과 HelloCUDA.h 헤더가CUDA : __device__ 및 __global__ 오류 : "unsigned"/ "void"이전에 예상되는 생성자, 소멸자 또는 형식 변환 "
.H/.CU/cpp를 믹스입니다 :
//yep, both taken from examples.
__device__ unsigned int bitreverse2(unsigned int number);
__global__ void bitreverse(void *data);
을 그리고 난이 방법을 정의하는 HelloCUDA.cu 파일이 :
__device__ unsigned int bitreverse3(unsigned int number) {
//definition
return number;
}
__global__ void bitreverse4(void *data) {
//another definition...
bitreverse3(idata[threadIdx.x]);
}
이클립스 (nsight)의 새로운 클래스 마법사를 사용하여 새로운 C++ 클래스 파일 (.h/.cpp)을 추가 할 때까지 작동했습니다. 이제 그 것을 만들려고 할 때 :
프로젝트 설정을 확인한 결과 아무 것도 변경되지 않았다고 생각합니다.
그래서 무엇을 제공합니까? 아무도 제발 저걸 도와 줄 수 없나요?
'idata'란 무엇입니까? 어디에도 정의되어 있지 않습니다. – talonmies
HelloCUDA.h가 .cu 파일 대신 .cpp 파일에 포함되면 작동하지 않습니다. .cpp 파일이'__device__' 또는'__global__ '이 무엇인지 알지 못하는 호스트 컴파일러로 보내집니다. 어쨌든 .cpp 파일에 헤더 (이 질문에 게시 된 내용을 기반으로)가 필요하지 않습니다. –
idata는 코드의 일부일뿐입니다. 그것은 중요하지 않으며, 그것은 문제가 아닙니다. –