2014-12-17 3 views
2

VS2013 : Community Edition 프로젝트에서 .cu 파일을 두 개 이상 사용할 수 있습니까?CUDA + Visual Studio 2013

응용 프로그램의 진입 점 역할을하는 main.cu와 일부 클래스의 메서드 구현을 유지하는 class.cu가 있다고 가정 해 봅시다. 컴파일 할 수 있습니까?

지금 당장 나는 이것과 정확히 같아 보이는 프로젝트를 가지고 있으며 사람들이 일반적으로 g ++/microsoft의 컴파일러로 코드를 컴파일하려고 할 때 나타나는 것과 같은 추력으로부터 오류를 얻는다. 하나의 .cu에있는 모든 것 - 코드 자체가 문제가되지 않는다는 것을 의미합니다.

VS에서 예제를 컴파일 할 수 있고 내 프로젝트를 컴파일하는 데 nvcc.exe -c class.cu main.cu을 사용하면 내 CUDA 설치가 문제가되지 않으며 잘 작동하고 .exe가 발생합니다.

내가 VS에서 만나는 forementioned 오류는 다음과 같습니다

Error 2 error C2027: use of undefined type 'thrust::detail::STATIC_ASSERTION_FAILURE<false>'  

어떤 아이디어? 미리 감사드립니다.

+0

리눅스 또는 windows? 아마 리눅스일까요? –

+1

예, 프로젝트에 하나 이상의 .cu 파일이있을 수 있습니다. 각 파일에는 자체 설정이있을 수 있으므로 class.cu 파일을 프로젝트에 추가 한 방식에 따라 다르게 동작 할 수 있습니다. VS에서이 오류를 생성하는 * 완전한 * 컴파일 출력을 제공하면 몇 가지 질문에 답할 수 있습니다. class.cu를 컴파일하기 위해'nvcc'를 사용하고 있습니까? 당신은 추력에 대해 class.cu에 적절한'#include' 문을 가지고 있습니까? CUDA 6.5를 사용하고 있습니까? –

답변

3

로버트의 대답은이 문제를 해결하는 데 크게 기여했습니다. 더 정확하게 말하자면 "각 파일에는 자체 설정이있을 수 있습니다. 이로 인해 class.cu 파일이 다른 방식으로 동작 할 수 있습니다. 그것을 프로젝트에 추가했습니다. "

결국 나는 class.cu의 속성으로 이동해야했고 "일반"탭에서 항목 유형 필드를 CUDAC/C++로 변경했습니다. 기본적으로 일반 C/C++로 설정되었습니다.

이제 VS2013에서 아무런 문제없이 컴파일되고 실행됩니다.