2012-05-10 3 views
0

CUDA GPU 컴퓨팅 SDK 및 CUDA 컴퓨팅 툴킷을 4.1로 업그레이드했습니다. simpleStreams 프로그램을 테스트했지만 일관되게 비 스트림 실행보다 많은 시간이 걸립니다. 내 장치는 컴퓨팅 기능 2.1이고 VS2008, Windows OS를 사용하고 있습니다.cuda sdk SDK 4.1의 simpleStreams가 작동하지 않습니다.

+0

어떤 버전의 Windows입니까? – talonmies

+0

Windows 7 및 CUDA 드라이버는 현재 사이트 –

+0

에서 사용할 수 있습니다. Windows를 문제의 일부로 확인합니다. 당분간 이유를 설명 할 수는 없지만. 나는 2 개의 GPU (8800GTS 및 GTX660)와 함께 Win8 32bit 및 Ubuntu 12.04 32bit를 내 데스크탑에 나란히 설치했다. 이 샘플은 Ubuntu에서 완벽하게 실행됩니다 (이 추적은 memCopy와 커널 사이의 명확한 중복을 보여줍니다). 그러나 Win8에서 중복되지 않습니다. –

답변

1

저는 Cuda에 새로워서 도움을 줄 수는 없지만 일반적으로 코드를 게시하지 않으면 도움을주기가 매우 어렵습니다. 게시가 불가능한 경우 Nvidia's visual profiler을 살펴 보시기 바랍니다. 그것의 십자가 플래트 홈은 당신이 병목다는 것을 보여줄 수있다.

+0

나는 examples 디렉토리에서 실행하려고한다. 내 코드가 아니다. 나는 새로운 코드에 버그가 있다고 생각한다. –

+0

코드에 대한 문서를 확인하라. 나는 당신이 사용하고있는 예제 디렉토리가 'cuda by example'에 포함되어 있었는지 모르지만, CPU 버전과 GPU 버전이 포함 된 코드를 가지고있을 것입니다. 실수로 CPU 버전을 실행했을 수도 있습니다. – Lostsoul

+0

src 폴더에 없습니다. simpleStreams 예제를 실행 중입니다 ... 스트리밍 된 버전이 스트리밍되지 않은 버전보다 시간이 오래 걸리는 이유는 무엇입니까? –

1

이 샘플에는 끊임없이 문제가 있습니다. 커널과 메모리 복사본에 대해 샘플 길이를 동일하게 조정하면 오버랩이 개선됩니다. 일반적으로 첫 번째 전송은 동시성이 더 좋습니다. 그러나 WDDM OS에서이 샘플은 커널을 시작한 직후 메모리 복사본을 발행하면 일반적으로 더 잘 겹칩니다.

1

나는 이것을 또한 알아 차렸다. 나는 그것이 나 였다고 생각했지만 어떤 개선점도 발견하지 못했고 포럼 검색을 시도했지만 그 누구도 찾지 못했습니다.

나는 또한 Cuda By Example 책에서 소스 코드를 실행했다. (정말 도움이된다. GPU 프로그래밍에 대해 진지한 마음으로 생각해 보면된다.)

10 장 예제에는 스트림을 사용해야하는 방법을 보여주는 예제가 있습니다. http://developer.nvidia.com/content/cuda-example-introduction-general-purpose-gpu-programming-0

그러나 비교 (기본적으로 단일 스트림 버전입니다) 1. 비 스트리밍 버전 2.하여 (제대로 asyncmemcpy 및 커널 스트리밍 대기 3. 스트리밍 (잘못 asyncmemcpy 및 커널 출시를 대기) 실행)

나는 cuda 스트림을 사용할 때 이점이 없다. Win Vista가 cuda 스트림을 올바르게 지원하지 않는다는 것을 온라인에서 몇 가지 소스를 통해 발견 했으므로 win7 문제 일 수 있습니다.

제가 링크 된 예를 통해 무엇을 찾았는지 알려주세요. 제 설정은 Win7 64bit Pro, Cuda 4.1, Dual Geforce GTX460 카드, 8GB RAM입니다.

+0

나는 그것이 Win7 문제 일 수 있다고 생각하지는 않았지만, Linux에서 확인하도록하겠습니다. –

관련 문제