나는 내 자신의 CUDA 커널을 프로그래밍했다. CPU 코드와 비교할 때 커널 코드는 CPU보다 10 배 빠릅니다.CUDA 성능을 평가하는 방법은 무엇입니까?
하지만 실험에 대한 질문이 있습니다.
모든 GPU 코어, 적절한 공유 메모리 사용, 적절한 등록 횟수, 충분한 점유 공간을 사용하여 내 프로그램이 완벽하게 최적화되어 있습니까?
커널 코드의 성능을 어떻게 평가할 수 있습니까?
이론적으로 어떻게 CUDA의 최대 처리량을 계산할 수 있습니까?
나는 CPU의 GFLOPS와 GPU의 GFLOPS와 GFLOPS 속도를 비교할 때 그 이론적 인 결과가 투명합니까?
미리 감사드립니다.
감사합니다. Roger. 귀하의 의견은 나를 위해 좋은 것입니다. –
추가 질문이 있습니다. 가정하자 CPU : 2.8GHz의 1 개 코어 GPU : 1.6GHz의 384 코어 (GTX 560 티 사양)이 예에서 , CPU의 예상 성능은 2.8GHz의 X 1 개 코어 = 2.8GHz의 · 코어 GPU의 예상 성능은 0.8GHz x 384 코어 = 307.2GHz * 코어 이 계산은 유효합니까? –
GHz 단위로 성능을 측정 할 수 없습니다. 이론적 인 성능을 찾으려면 각 클럭 사이클에서 CPU/GPU가 수행 할 수있는 작업을 찾아야합니다. 앞서 언급 한 고려 사항은 얻을 수있는 성과에 영향을 미칩니다. 예를 들어 인텔 샌디 브릿지의 성능을 살펴보면 명령 당 8 회의 SP 작업을 수행 할 수있는 AVX라는 명령 세트가 있다는 것을 고려해야합니다. –