2013-07-15 4 views
9

Visual Studio 2012 솔루션에 몇 가지 C++ 프로젝트가 있습니다. 해당 프로젝트에 많은 양의 파일이 포함되어 있으며 코드 생성 속도를 높이기 위해 /MP을 사용합니다.Visual Studio의 Cuda 병렬 코드 생성

비슷한 방법으로 NVCC의 속도를 높이는 방법이 있는지 궁금합니다. CUDA 커널을 포함하는 프로젝트에서/MP를 사용하면 컴파일 시간에 아무런 이점도 없으므로 직장에서 코어 하나만 볼 수 있습니다.

그래서 질문 : CUDA 컴파일 속도를 높이기 위해 어떻게 멀티 코어 PC를 사용할 수 있습니까?

답변

4

CUDA 5.5부터 nvcc에는 MSVC/MP와 동등한 것이 없으므로 .cu 파일의 빌드 병렬 처리는 NVCC를 호출하는 빌드 도구에서 가져와야합니다.

GNU Make (예 : Cygwin 또는 Linux/Unix/OS X 시스템)를 사용하여 빌드 할 수있는 경우 -j 옵션을 사용하여 parallel building functionality 옵션을 사용하면 여러 개의 래서 피를 병렬로 처리하게됩니다.

Here is a nice blog post Windows에서 여러 병렬 빌드 옵션을 열거합니다. 일부 옵션은 NVCC에서 작동합니다.

MSVC 및 NVCC를 지원하는 진정한 분산/병렬 빌드 시스템의 경우 Incredibuild을 시도 할 수 있습니다.

+0

저는 Visual Studio를위한 솔루션에 관심이 있습니다. 마지막 링크는 두 가지 가능성을 나열합니다 : 이미 언급 한/MP와 더 느린/maxcpucount [: n]. –

+0

Incredibuild에 대한 링크를 추가했습니다.이 링크는 현재 Visual Studio의 유일한 실제 솔루션입니다. – harrism

2

당신은 IncrediBuild의

를 사용할 수 있지만이 오류가 발생할 수 있습니다
치명적인 오류 C1041을 열 수 없습니다 프로그램 데이터베이스 '...'; 여러 개의 CL.EXE가 같은 .PDB 파일에 쓰여지면/FS

을 사용하십시오.이를 방지하려면 프로젝트 -> 등록 정보 -> CUDA C/C++ -> 호스트 -> 추가 컴파일러 옵션 ->/FS를 설정하십시오.

자세한 내용은 this blog을 참조하십시오.