2012-05-15 4 views
3

모든 논문에서 나는 GPU가 멀티 프로세서로 구성되어 있고 각 멀티 프로세서에 병렬로 단일 워프를 실행할 수있는 8 개의 프로세서가 있다는 것을 읽었습니다.
내가 사용하고있는 GPU는 Nvidia 560이며 각 멀티 프로세서에는 7 개의 멀티 프로세서가 있지만 48 개의 프로세서 만 있습니다. 이것은 Nvidia 560의 모든 멀티 프로세서가 6 개의 워프를 병렬로 실행할 수 있다는 것을 의미합니까?
Nvidia 560에서 병렬로 실행되는 최대 스레드 수는 병렬로 32 * 6 * 7 = 1344 스레드라고 할 수 있습니까? (32 = 워프, 7 = 다중 고객, 6 = 병렬로 실행되는 6 =)GPU 아키텍처 (Nvidia)

가장 빠른 Nvidia GPU에있는 멀티 프로세서의 수는 얼마입니까? 이 GPU는 무엇입니까? 가장 큰 GPU가 가지고있는 전역 메모리의 최대 크기는 얼마입니까?

답변

2

읽고있는 용지가 오래되었습니다. 첫 두 세대의 CUDA GPU는 MP 당 8 코어를 가지고 있으며, 단일 워프로부터 명령을 내립니다 (단순화하려면 각 워프를 8 코어에서 4 번 실행하여 단일 워프를 처리하십시오).

가지고 계신 페르미 카드는 더 새롭고 다른 카드입니다. 다중 프로세서 당 두 개의 서로 다른 워프에서 명령어를 "이중 발행"합니다 (따라서 각 워프 명령어는 16 코어에서 두 번 실행됩니다).코드 스트림이 그것을 허용하면, 나머지 16 개의 코어들, 즉 2 개의 워프들 중 하나로부터 추가적인 명령이 발행 될 수있다. 제한된 형태의 순서에 벗어난 실행. 후자의 기능은 컴퓨팅 기능 2.1 장치에서만 사용할 수 있습니다. 컴퓨팅 기능 2.0 장치에는 다중 프로세서 당 32 개의 코어 만 있습니다. 그러나 임의의 주어진 쉐이더 클럭 사이클에서 멀티 프로세서 당 MP 퇴직 명령에 따른 워프 수는입니다. 두 경우 모두입니다. 다소 깊이있는 명령 파이프 라인이 있으므로 문제와 폐기 사이에 상당한 대기 시간이 있고 임의의 순간에 활성 멀티 프로세서 당 최대 48 개가 있습니다.

GTX 560의 7 개의 멀티 프로세서에서 14 개의 워프 또는 336 개의 워프 중 하나를 선택합니다. 채택하려는 "실행중인 병렬"의 정의에 따라 다릅니다. 이 질문에 답하는 데 주로 사용 된 정보는 현재 프로그래밍 가이드의 부록 F에 나와 있습니다.

3
CUDA Programming Guide 4.2 가입일

:

[...] 모든 명령 발행시에 휘어짐 스케줄러는 다음 명령어 (경사의 활성 스레드)를 실행할 준비 스레드를 갖는 경사 선택되고 스레드에 명령을 발행합니다.

따라서 SM 당 최대 동시 waprs 수는 워프 스케줄러 (WS)의 수와 같습니다.

컴퓨팅 능력 2.X의 장치 용

는 다중이 구성 :

GeForce는 580 2.1 구조를 갖는다 [...] 2 경사 스케줄러

이것이 의미

, 각각 SM GPU는 2 개의 워프 = 64 개의 스레드를 동시에 실행할 수 있으므로 총 448 개의 스레드가됩니다. 가 높은 것보다 훨씬 더 많은 스레드를 사용하는 것이 좋습니다, 그러나, 참고 :

다음은 워프는 다음 명령이 대기 시간이라고 을 실행할 수있는 상태가 될 때까지 걸리는 클럭 사이클의 수, 전체 모든 워프 스케줄러가 항상 에 대한 명령어를 가지고있을 때, 사용 시간은 입니다. 대기 시간 ( ) 동안, 즉 대기 시간이 완전히 "숨겨져있을 때", 모든 클럭 사이클에서 어떤 워프에 대해이 발생합니다.

다른 질문에 대해서는 GeForce GTX690에 3072 CUDA 코어가 있습니다. 그러나 CUDA의 경우 1536 개의 코어가있는 2 개의 별도 GPU처럼 보일 수 있으므로 2 개의 GeForce 680보다 좋지 않으며 후자는 수많은 온라인 리뷰로 쉽게 오버 클러킹됩니다. GPU 중 가장 큰 메모리는 nVidia Tesla M2090 : 6GiB의 GDDR5 (512 CUDA 코어)에 설치됩니다. Kepler 6xx와 같은 Kepler 아키텍처를 기반으로 한 새로운 테슬라 가족이 곧 출시 될 예정이지만 공식 발표는 들어 보지 못했습니다.

+0

GTX680은 이론적으로 8 SM * 4 스케줄러/SM * 2 명령어/스케줄러 * 32 스레드/명령 = 2048 스레드/사이클을 실행할 수 있습니다. CUDA 코어를 사용하면 사이클 당 스레드 명령어와 다른 초당 부동 소수점 연산을 얻을 수 있습니다. GF100은 사이클 당 16 * 2 * 1 * 32 = 1024 스레드를 실행할 수 있습니다. –

관련 문제