본문 바로가기
IT/Hardware/Graphics

NVIDIA GeForce GTX 460 아키텍처의 숨겨진 비밀 1부

by 에비뉴엘 2010. 7. 31.
반응형
● 프로세서 클러스터 구조를 크게 변경 NVIDIA 

 NVIDIA 퍼포먼스 클래스의 GPU "GeForce GTX 460 (GF104)"를 발표했다. GeForce GTX 460 예상을 크게 빗나갔다. 
GF104은 사실 예상을 크게 넘어 급진적 아키텍처의 GPU이었다.

  최대중요 포인트는 다음과 같이.우선, GF104는, 상위의「GeForce GTX 480(GF100)」을 베이스로 대폭적인 아키텍쳐상의 확장을 더한 것이었다. 프로그래밍상의 일관성은, GF100에 대해서 거의 유지되고 있어 깎아진 부분은 거의 없다.그 한편, 그래픽스 작업의 부담량으로 중요해지는 퍼포먼스 효율도 향상되었다.그 때문에, 다이 당의 그래픽스 퍼포먼스 효율이 높다.즉, NVIDIA는 그래픽스 전용으로 특화한 GPU를 만드는 것이 아니라, 그래픽스시에 고효율이지만, 프로그래밍상은 상위 GPU와 같게 보이는 GPU를 만들었다.

 GF104 의 내부 아키텍쳐를 보면, 이걸  잘 알수있다. GF104에서는, Fermi 초대의 GF100와 비교하면, 프로세서의 집합인 SM(Streaming Multiprocessor) 내의 CUDA 코어(Fermi 아키텍쳐로의 연산 프로세서) 수가 150%로 늘어났다.

각 SM는 48개의 CUDA 코어(16 코어×3 클러스터), 8개의 Special Function Unit(SFU), 8개의 texture 제네레이터와 texture 필터링 유닛, 16개의 로드/스토어 유닛을 갖춘다.

  즉 GF104의 SM는, GF100보다 CUDA 코어는 16개, SFU는 4개, texture 유닛은 4개 증가했다.또, SM내에서의 명령 순서는, 지금까지의 2 명령(2 Warp) 발행(2 사이클마다)으로부터 4 명령(4 Warp) 발행(2 사이클마다)으로 증가 되었다.3 명령에서 4 명령 발행이 된 점은 중요하고, 연산 자원이 증가했던 것 뿐만 아니라, 연산 유닛의 가동률이 이론상, 큰폭으로 향상했다.아키텍쳐적으로 보면, GF104의 단위 다이 면적 당의 퍼포먼스 효율은 GF100보다 상대적으로 높아질 것이다.마이크로 아키텍쳐의 이 변경은, 그래픽스 작업의 부담량의 명령 믹스에 최적화한 결과라고 한다.GF104의 SM를, GF100와 비교한 그림은 아래대로다.SM의 자세한 것은 다음의 기사로 리포트하고 싶다.


GeForce GTX 460(GF104) Streraming Mutliprocessor


GeForce GTX 480(GF100) Streraming Mutliprocessor



NVIDIA GPU의 프로세서 유닛의 비교



●GPU의 프로그래밍 모델의 일관성을 고집하는 NVIDIA 
  초대 Fermi(GF100 다이)가 가지는, HPC(High Performance Computing)에 최적화된 기능 가운데, 소수의 기능이 GF104 다이에서는줄여졌다.GF104는, GF100 다이의 특징인 메모리에 대한 ECC 보호 기능을 가지지 않는다(GeForce GTX 480은 다이에 실장되고 있지만 무효화되고 있다).

  다만, 배정도 부동 소수점 연산은, throughput는 억제되었지만, GF104에서도 지원된다.Tesla 버젼의 Fermi에서는, 배정도 연산은 단정도에 대해서1:2(50%)의 피크 성능이지만, GF104에서는1:12( 약 8%)의 피크 성능이다.즉, HPC를 위한 기능은, 프로그래밍에 관련되는 부분은, GF104에서는 제지당했다.그리고, 그 이외의 대부분의 GF100의 기술 요소는, 그래픽스와 범용(General Purpose)의 양쪽 모두에 향한 기능이 모두 계승해졌다.

  전체의 구조를 보면, GF104에서는, 각 SM에 DirectX 11의 테셀레이타(평면 분할 유닛)를 갖출 수 있어 4개의 SM가 래스터라이저 회전과 함께「GPC(Graphics Processing Cluster)」로서 정리하고 있다.이것은 GF100와 같은 구성이다.GF104의 SM내부의 라이타브르메모리는, GF100와 같이 64 KB로 L1캐쉬와 공유 메모리의 콘피규아라불형.내부 버스는 쌍방향의 크로스바 스윗치로, 메모리콘트로라 측에 라이타불 L2캐쉬를 갖춘다.이러한 메모리 계층과 버스 구조는 GF100와 같고, Fermi 아키텍쳐의 독특한 기능인, 복수의 커넬 프로그램의 병렬 실행이나, 40-bit 애드레싱의 통합 메모리아드레스 공간등도 모두 계승해지고 있다.


GF104 GPC의 개요


GF104(1 GB) 전체의 개요


  그 때문에, GF104는, 그래픽스 기능 뿐만이 아니라 프로그래밍상에서 보이는 부분도 안보이는 부분도, 상위의 GF100계와 거의 완전한 호환성을 가진다.차이는, 성능 최적화에 관한 일부 요소 정도라고 볼 수 있다.즉, NVIDIA는, 프로그래밍상의 일관성을 유지하면서, 게다가 그래픽스의 퍼포먼스 효율을 올린다고 하는, 상반되는 목표를 GF104로 달성하고 있다.이것은, 꽤 이례다.왜냐하면, 상응하는 엔지니어링 노력이 필요하기 때문이다.

●프로세서의 효율성이 높은 GF104 아키텍쳐 
  이것은, GPU에 유연한 프로그램성을 갖게하고, HPC로부터 가정용까지, 일관한 프로그래밍 모델로 커버한다고 하는 NVIDIA의 사상이, 확고한 것임을 나타내고 있다.현세대에서는, 배정도 연산에 이르기까지, 하위 GPU로 서포트되기 때문이다.

  이것은, GPU 프로그래밍 커뮤니티에 있어서는 좋은 뉴스다. 저가격의 비디오 카드로 달리게 한 프로그램을, 그대로 Tesla나 큰 GPU 클러스터에서도 달리게 할 수 있기 때문이다.GPU 프로그래밍이 퍼지면, 그 만큼 GPU를 사용한 범용 어플리케이션이 나오기 위해, 최종 사용자에 있어서도 이점이 된다.

  그 한편, 그래픽스 성능 중심의 유저에게 있어서는, GF104에는 고효율의 퍼포먼스라고 하는 이점이 있다.GF104의 이점은, 연산 자원이 많은 일 뿐만이 아니라, 가동률에 높은 헤드 룸이 있는 것이다.고급 지향 GF100의 SM는 피크의 IPC(Instruction-per-Clock)가 2(단정도의 경우)이지만, 하위의 GF104의 IPC는 피크가 4로 실효 IPC의 목표치가 3이다(다양한 제약에 의해 실효 IPC가 떨어지는 케이스가 싶은).즉, 1개의 SM가, 1 사이클에 의해 많은 명령을 실행할 수 있다.

  예를 들면, 찹 전체로의 실행 명령수를 계산하면, GF100가 480 Instruction/Core Clock(15 SM/2 IPC시)인데 대하고, GF104는 이론상의 피크가 448 Inst/Clk(7 SM/4 IPC시)로, 실효가 336 Inst/Clk(7 SM/3 IPC시)가 된다.GF100는 이론치와 실효가의 괴리가 적을 것이지만, 그런데도 GF104의 효율은 die size비를 생각하면 상대적으로 높다.

  물론 GF104에도 약점이 있지만, 이론상은 캐쉬 히트 하는 한, 고효율로 계속 돈다.아래는, 이상 IPC시의 GF104의 Warp 스케줄링의 예다.Warp 스케줄링의 구조는 후의 기사로 상세 해설 하지만, GF104에서는 이상치에서는 연산 코어가 풀 가동할 수 있는 것을 알 수 있다.GF100에서는, 이것은 이상 상태에서도 할 수 없다.

  전체를 보면, NVIDIA가 잘 Fermi 아키텍쳐를 유지하면서, 퍼포먼스 효율이 어느 정도 높은 파생 아키텍쳐를 만든 것을 알 수 있다.염려된 GPU 컴퓨팅을 위한 제품과 그래픽스를 위한 제품에의 프로그래밍 모델상의 분리는 없다.이 설계 사상은, 아마 패밀리에서 일관해서 있어 한층 더 하위의 GPU 제품에도 계승해진다고 추정된다.CUDA 프로그래밍 체제아래에, 일관한 GPU 패밀리를 만들어내려 하고 있다고 생각할 수 있다.그러기 위해서는, 엔지니어링 코스트를 들이고, 아키텍쳐를 확장하는 일도 싫어하지 않는 것 같다.



●종래의 퍼포먼스 GPU와는 완전히 다른 파생 
  지난 주의 기사에서는, GF104는「GeForce GTX 280(GT200)」을 베이스로 하고 있을 가능성이 높다고 예상했다.결과적으로 예상은 실수였지만, 
그것은, NVIDIA가 여기까지 노력을 걸치는 것을 상정할 수 없었기 때문이다.

 GF104 를 GT200 베이스라고 추정한 근거는, GPU가 탑재하는 프로세서수가 24의 배수이며, 32의 배수가 아니기 때문이다.NVIDIA GPU는 일정한 단위로 Warp(NVIDIA GPU로의 SIMT 실행의 단위, 32 스렛드)의 스케줄링을 행하고 있어 그 입도를 무너뜨릴 수 없다.GT200의 경우는 입도는 24 프로세서, GF100의 경우는 32 프로세서다.

 NVIDIA 아키텍쳐에서는, 1개의 SM(Streaming Multiprocessor)안에 탑재하는 실행 프로세서수를 바꾸려고 하면, 명령 발행 유닛을 확장할 필요가 있다.또, 실효성능을 높게 유지하려고 한다면 레지스터수나 Warp 스케줄링도 확장해야 한다.즉, 프로세서로서의 기본 요소의 대부분을 변경할 필요가 있어, 엔지니어링 노력이 방대하게 된다.그 때문에, 그러한 변경은 행하지 않는다고 추측했다.

  실제, GPU 벤더는 고급 지향 GPU로부터 파생시킨 퍼포먼스 클래스의 GPU에 대해서는, 거기까지의 개량을 행하지 않는 것이 일반적이다.통상은, 고급 지향 GPU의 아키텍쳐 그대로, 유닛수만큼을 반감시킨 GPU를 퍼포먼스 가격대에 투입한다.아키텍쳐에 손보는 경우도, 특정의 기능을 깎는「뺄셈」방식으로 행한다.이번 같게, 프로세서 아키텍쳐를「덧셈」로 확장하는 것은 이례다.또, 전기일로 추측한 것처럼, 구세대의 GPU 아키텍쳐를, 하위 제품으로서 연명시키는 경우도 많았다.

  그러나, 이번은 다르다.프로세서 아키텍쳐 자체의 확장의 정도로 보면, GeForce 8800(G80)으로부터 GT200에의 변화와 동일한 정도로, GF100로부터 GF104도 대변화다 .왜냐하면, 프로세서의 근본이라고도 말할 수 있는 명령 발행과 메인의 실행 파이프라인이 확장되고 있기 때문이다(GT200에서는 명령 발행은 확장되지 않았다).

  즉, GF104는 단순한 GF100의 축소판이 아니고, 아키텍쳐 레벨로부터 재설계된 신GPU다.말해 보면 Fermi 버젼 2가 GF104다.이번은, 초대 GPU인 GF100로부터 반년도 지나기 전에, 발전 아키텍쳐가 등장한 점은 이례적이라 말할 수 있다.


●메모리 대역과의 밸런스를 잡힌2/3전략의 GPU 
  이번 GF104는, 퍼포먼스 클래스의 GPU로서는 이례적이다.아키텍쳐 레벨로부터 재설계된 것 뿐만이 아니고, die size나 프로세서 코어수도 퍼포먼스 GPU로서는 이례적이다. die size는 300평방 mm중반으로 AMD(ATI)의 하이엔드 GPU 클래스에서 수준이다, GF100 다이의 거의2/3의 면적이다.트랜지스터 카운트는 19억 5 천만으로, 이것도 GF100의 32억의 약2/3.

다이에 실장되고 있는 프로세서 개수는 384개로, GF100 다이의 약75%.대략적으로 말하면, GF100의 것2/3한 버젼이 GF104다.
이것은, 2번째 GPU가 하이엔드GPU의 1/2한 버젼이었던 지금까지와는 다르다.

  무엇보다, 순수하게 아키텍쳐의 관점에서 보면, 이 전략은 정곡을 찌르고 있다.왜냐하면, GPU의 메모리인타페이스폭은, GF100가 384-bit폭으로, GF104가 256-bit폭이기 때문이다.과거에는 고급 지향 GPU가 512-bit폭 혹은 256-bit폭으로, 하위의 GPU가 그 반의 256-bit폭 또는 128-bit폭이라고 하는 것이 많았다.그 경우는1/2의 메모리 대역과의 밸런스로,1/2의 프로세싱 퍼포먼스가 적당하다.

  그러나, 이번 같게 고급 지향이 384-bit가 되면, 하위 GPU가 192-bit폭도 수습이 나쁘기 때문에, 256-bit폭의 선택도 자연스럽다.하위 GPU가2/3의 메모리 대역이 되면,2/3의 퍼포먼스가, 아키텍쳐적으로는 이익에 필적하게 된다.예를 들면, 메모리 대역의 제약등의 조건이, 상위의 GPU와 닮은 것이 되기 때문이다.

  실제, GF100와 GF104에서는, GF104의 IPC가 3으로서 계산했을 경우, 메모리 대역과 실행 명령수의 밸런스를 거의 잡히고 있다.즉, 마케팅상에서 보면 이례이지만, 아키텍쳐적으로 보면 합리적인 것이 GF104의 사이즈다.이것도, NVIDIA가 아키텍쳐 주도가 되어 온 것을 나타내 보이는 싸인일지도 모르다.




반응형

댓글