2010-06-02 3 views
1

nVidia의 CUDA SDK의 성능을 활용하도록 애플리케이션을 다시 작성하고자한다면 C++, Java, Python 등 다양한 SDK 제품간에 런타임 성능에 차이가 있습니까?다른 CUDA SDK의 성능 차이는 무엇입니까?

명백한 언어 외에도이 3 SDK 사이에는 어떤 차이점이 있습니까?

답변

3

CPU 처리량에 측정 가능한 성능 영향이 있습니다. 예를 들어 CUDA 데이터가 GPU에 도달하기 전에 사전 처리가 필요한 경우 Python에서 수치 루틴을 작성하는 것이 차선책입니다.

CUDA 루틴이 계산 시간을 지배하면 (CPU가 비교적 유휴 상태로 유지되는 경우) 바인딩 중 하나를 선택하는 것이 좋습니다.

먼저 Python과 같은 언어로 프로토 타입을 작성하는 것이 가장 좋을 수 있으며 성능 병목 현상을 식별하면 해당 코드를 C++로 옮길 수 있습니다.

+0

세 가지 사례 (C++, Java, Python)에서 CUDA 커널 자체는 본질적으로 동일하지만 차이점은 API 바인딩을 사용하여 GPU에서 커널을 설정하고 실행하는 것입니다. 따라서 일단 커널이 실제로 실행되면, theatrus가 말했듯이 차이는 없습니다. – Tom